diff --git a/Documentation/WKB_vs_Numerics/FT.py b/Documentation/WKB_vs_Numerics/FT.py
deleted file mode 100755
index 30ff1f7..0000000
--- a/Documentation/WKB_vs_Numerics/FT.py
+++ /dev/null
@@ -1,201 +0,0 @@
-from numpy import log10
-
-
-class FT():
-
-    '''
-    Logarithmic tick format for matplotlib. Change M_x,M_y to change the format fo the ticks.
-
-    _M_xticks,_M_yticks: lists of major ticks
-    _M_xticks_exception,_M_yticks_exception: lists of major ticks that will not be labeled
-    _m_xticks,_m_yticks:lists of minor ticks
-    '''
-
-    def __init__(self,_M_xticks,_M_yticks,_M_xticks_exception,_M_yticks_exception,_m_xticks,_m_yticks,
-                     xmin='',xmax='',ymin='',ymax='',xscale='log',yscale='log'):
-        self._M_xticks=_M_xticks
-        self._M_yticks=_M_yticks
-        self._M_xticks_exception=_M_xticks_exception
-        self._M_yticks_exception=_M_yticks_exception
-        self._m_xticks=_m_xticks
-        self._m_yticks=_m_yticks
-        self.xmin=xmin
-        self.xmax=xmax
-        self.ymin=ymin
-        self.ymax=ymax
-        self.xscale=xscale
-        self.yscale=yscale
-
-
-    def format_ticks(self,plt,sub):
-        '''
-        plt: matplotlib.pyplot (usually we call 'import matplotlib.pyplot as plt')
-        sub: the subplot (assumed  something like sub = fig.add_subplot...)
-        '''
-        
-        _M_xticks=self._M_xticks
-        _M_yticks=self._M_yticks
-        _M_xticks_exception=self._M_xticks_exception
-        _M_yticks_exception=self._M_yticks_exception
-        _m_xticks=self._m_xticks
-        _m_yticks=self._m_yticks
-        xmin=self.xmin
-        xmax=self.xmax
-        ymin=self.ymin
-        ymax=self.ymax
-        xscale=self.xscale
-        yscale=self.yscale
-        
-        
-        sub.set_xscale(xscale)
-        sub.set_yscale(yscale)
-
-        #these have to be here!
-        #if you don't change all limits, I will do it automatically (min and max of _M_xticks and _M_yticks)
-        if not '' in [xmin,xmax,ymin,ymax]:
-            sub.set_xlim(xmin,xmax)
-            sub.set_ylim(ymin,ymax)
-        else:
-            print('Empty axis limits. Using automatic ones.')
-            sub.set_xlim(min(_M_xticks),max(_M_xticks))
-            sub.set_ylim(min(_M_yticks),max(_M_yticks))
-
-        #set functions that format the ticks
-        #value is the number on the axis, tick_number the number of the corresponding tick
-        if xscale=='log':
-            def M_x(value, tick_number):
-                if value in _M_xticks_exception:
-                    return ''
-
-                if value==1:
-                    return '$1$'
-
-                if value==10:
-                    return '$10$'
-
-                if value==0:
-                    return '$0$'
-
-                if value!=0:
-                    exp=int(log10(value))
-                    _v=value/10**exp
-                    if round(_v,2)==1.:
-                        return '$10^{0}{1}{2}$'.format('{', exp ,'}')
-                    else:
-                        return  '${0}{1}10^{2}{3}{4}$'.format(_v ,r'\times', '{', exp ,'}')
-        if xscale=='symlog':
-            def M_x(value, tick_number):
-
-                
-                if value in _M_xticks_exception:
-                    return ''
-                if value==1:
-                    return '$1$'
-                if value==-1:
-                    return '$-1$'
-                if value==10:
-                    return '$10$'
-                if value==-10:
-                    return '$-10$'
-                if value==0:
-                    return '$0$'
-                if value!=0 and value>0:
-                    exp=int(log10(value))
-                    _v=value/10**exp
-                    if round(_v,2)==1.:
-                        return '$10^{0}{1}{2}$'.format('{', exp ,'}')
-                    else:
-                        return  '${0}{1}10^{2}{3}{4}$'.format(_v ,r'\times', '{', exp ,'}')
-                if value!=0 and value<0:
-                    exp=int(log10(-value))
-                    _v=-value/10**exp
-                    if round(_v,2)==1.:
-                        return '$-10^{0}{1}{2}$'.format('{', exp ,'}')
-                    else:
-                        return  '$-{0}{1}10^{2}{3}{4}$'.format(_v ,r'\times', '{', exp ,'}')
-                    
-                    
-        if xscale=='linear':
-            def M_x(value, tick_number):
-                if int(value)==float(value):
-                    return '${}$'.format(int(value))
-                else:
-                    return '${}$'.format(value)
-
-                
-
-        if yscale=='log':
-            def M_y(value, tick_number):
-                if value in _M_yticks_exception:
-                    return ''
-                if value==1:
-                    return '$1$'
-
-                if value==10:
-                    return '$10$'
-
-                if value==0:
-                    return '$0$'
-
-                if value!=0:
-                    exp=int(log10(value))
-                    _v=value/10**exp
-                    if round(_v,2)==1.:
-                        return '$10^{0}{1}{2}$'.format('{', exp ,'}')
-                    else:
-                        return  '${0}{1}10^{2}{3}{4}$'.format(_v ,r'\times', '{', exp ,'}')
-        if yscale=='symlog':
-            def M_y(value, tick_number):
-
-                
-                if value in _M_yticks_exception:
-                    return ''
-                if value==1:
-                    return '$1$'
-                if value==-1:
-                    return '$-1$'
-                if value==10:
-                    return '$10$'
-                if value==-10:
-                    return '$-10$'
-                if value==0:
-                    return '$0$'
-                if value!=0 and value>0:
-                    exp=int(log10(value))
-                    _v=value/10**exp
-                    if round(_v,2)==1.:
-                        return '$10^{0}{1}{2}$'.format('{', exp ,'}')
-                    else:
-                        return  '${0}{1}10^{2}{3}{4}$'.format(_v ,r'\times', '{', exp ,'}')
-                if value!=0 and value<0:
-                    exp=int(log10(-value))
-                    _v=-value/10**exp
-                    if round(_v,2)==1.:
-                        return '$-10^{0}{1}{2}$'.format('{', exp ,'}')
-                    else:
-                        return  '$-{0}{1}10^{2}{3}{4}$'.format(_v ,r'\times', '{', exp ,'}')
-                    
-                    
-        if yscale=='linear':
-            def M_y(value, tick_number):
-                if int(value)==float(value):
-                    return '${}$'.format(int(value))
-                else:
-                    return '${}$'.format(value)
-        
-        
-        def _minor(value, tick_number):
-            return ''
-
-        #set the major ticks
-        sub.xaxis.set_major_locator(plt.FixedLocator(_M_xticks))
-        sub.xaxis.set_major_formatter(plt.FuncFormatter(M_x))
-
-        sub.yaxis.set_major_locator(plt.FixedLocator(_M_yticks))
-        sub.yaxis.set_major_formatter(plt.FuncFormatter(M_y))
-
-        #set the mionor ticks
-        sub.xaxis.set_minor_locator(plt.FixedLocator(_m_xticks))
-        sub.xaxis.set_minor_formatter(plt.FuncFormatter(_minor))
-        sub.yaxis.set_minor_locator(plt.FixedLocator(_m_yticks))
-        sub.yaxis.set_minor_formatter(plt.FuncFormatter(_minor))
diff --git a/Documentation/WKB_vs_Numerics/Kination.dat b/Documentation/WKB_vs_Numerics/Kination.dat
deleted file mode 100644
index 27f6eb5..0000000
--- a/Documentation/WKB_vs_Numerics/Kination.dat
+++ /dev/null
@@ -1,100 +0,0 @@
-1.000000000000000021e-02 1.000000000000000000e+10 9.477527313606244619e-03 1.003297273027949021e+00 9.879305087519539449e-06
-1.000000000000000021e-02 1.232846739442067909e+10 9.476702480364473935e-03 9.748594336138627359e-01 1.218530423156422964e-05
-1.000000000000000021e-02 1.519911082952932930e+10 9.471216061761829341e-03 9.464419504098158242e-01 1.498385853183585067e-05
-1.000000000000000021e-02 1.873817422860387039e+10 9.480784484433570428e-03 9.200236807628346947e-01 1.834279667017138944e-05
-1.000000000000000021e-02 2.310129700083158112e+10 9.484093245714513704e-03 8.934308476212131644e-01 2.259978634571294841e-05
-1.000000000000000021e-02 2.848035868435805130e+10 9.481953999328187471e-03 8.678761304575834945e-01 2.761468484979680014e-05
-1.000000000000000021e-02 3.511191734215128326e+10 9.459369038197834242e-03 8.393769090409276545e-01 3.399399496728457869e-05
-1.000000000000000021e-02 4.328761281083061218e+10 9.478894609973132629e-03 8.175376173073034547e-01 4.213120452232296012e-05
-1.000000000000000021e-02 5.336699231206301880e+10 9.486010365692512311e-03 7.943882487559046357e-01 5.185896042071243197e-05
-1.000000000000000021e-02 6.579332246575682068e+10 9.480371229726071089e-03 7.705396056510169789e-01 6.385887787210519349e-05
-1.000000000000000021e-02 8.111308307896888733e+10 9.440044449678143546e-03 7.445953817306604217e-01 7.847998433472746160e-05
-1.000000000000000021e-02 1.000000000000000000e+11 9.463761014002702865e-03 7.249271982581423357e-01 9.688115654466446171e-05
-1.000000000000000021e-02 1.232846739442062988e+11 9.476706741339668144e-03 7.048234196403346807e-01 1.190274801900535973e-04
-1.000000000000000021e-02 1.519911082952933044e+11 9.478021684694890731e-03 6.845458381224679423e-01 1.459358175630514969e-04
-1.000000000000000021e-02 1.873817422860386963e+11 9.437954257001666611e-03 6.608707331841540134e-01 1.799701791842808025e-04
-1.000000000000000021e-02 2.310129700083157959e+11 9.447050898946342951e-03 6.421936324568566778e-01 2.223932860109803988e-04
-1.000000000000000021e-02 2.848035868435805054e+11 9.449508277740886406e-03 6.240278933199916445e-01 2.729080215817935185e-04
-1.000000000000000021e-02 3.511191734215128174e+11 9.467692906353254376e-03 6.070339385855110237e-01 3.358746728070112248e-04
-1.000000000000000021e-02 4.328761281083062134e+11 9.423749478037729554e-03 5.857917447993009619e-01 4.132253970059934843e-04
-1.000000000000000021e-02 5.336699231206301880e+11 9.425832226349781240e-03 5.690669466679765254e-01 5.072834857206777372e-04
-1.000000000000000021e-02 6.579332246575682373e+11 9.444138713782711247e-03 5.536379079026606531e-01 6.227367796033339651e-04
-1.000000000000000021e-02 8.111308307896888428e+11 9.455804282938379268e-03 5.381424588140610865e-01 7.688289212972869869e-04
-1.000000000000000021e-02 1.000000000000000000e+12 9.459765658949629424e-03 5.226772871134672815e-01 9.509010657651141476e-04
-1.000000000000000021e-02 1.232846739442062988e+12 9.463272664408977491e-03 5.076295863627512395e-01 1.171920110421200952e-03
-1.000000000000000021e-02 1.519911082952933105e+12 9.419466168059852096e-03 4.902922970638475264e-01 1.430335210834431971e-03
-1.000000000000000021e-02 1.873817422860386963e+12 9.431158815221718505e-03 4.765841730399139053e-01 1.763801373134027102e-03
-1.000000000000000021e-02 2.310129700083158203e+12 9.443985676100184745e-03 4.633832798494664784e-01 2.171676898162475805e-03
-1.000000000000000021e-02 2.848035868435805176e+12 9.451874753267646909e-03 4.505104139146972053e-01 2.676042869353860171e-03
-1.000000000000000021e-02 3.511191734215126953e+12 9.403580636533261788e-03 4.348758811614321096e-01 3.308095916000924029e-03
-1.000000000000000021e-02 4.328761281083062012e+12 9.412171715584550374e-03 4.226431351849104234e-01 4.090091383654377924e-03
-1.000000000000000021e-02 5.336699231206301758e+12 9.424091692627679928e-03 4.110654225693058939e-01 5.013189064022151656e-03
-1.000000000000000021e-02 6.579332246575682617e+12 9.431359212433019362e-03 3.996070016704945105e-01 6.137940840161435797e-03
-1.000000000000000021e-02 8.111308307896888672e+12 9.446632194375975330e-03 3.887451094609005176e-01 7.620196429165186115e-03
-1.000000000000000021e-02 1.000000000000000000e+13 9.449986877934692456e-03 3.775871962893063150e-01 9.397302740513939837e-03
-1.000000000000000021e-02 1.232846739442063086e+13 9.393135306399638673e-03 3.643725957232122892e-01 1.162588415356015023e-02
-1.000000000000000021e-02 1.519911082952933008e+13 9.401685867983287578e-03 3.542897072247123136e-01 1.421408987796912021e-02
-1.000000000000000021e-02 1.873817422860387109e+13 9.418084561052758250e-03 3.448092465073636093e-01 1.743478128867539945e-02
-1.000000000000000021e-02 2.310129700083157812e+13 9.425566526516344218e-03 3.352313559938498999e-01 2.171239021967663954e-02
-1.000000000000000021e-02 2.848035868435805078e+13 9.431008569665057586e-03 3.260061615630284182e-01 2.665760305247812101e-02
-1.000000000000000021e-02 3.511191734215126953e+13 9.443266485337151184e-03 3.172051212068855985e-01 3.242374513234327904e-02
-1.000000000000000021e-02 4.328761281083061719e+13 9.440716164823887216e-03 3.081570473010309952e-01 3.988819408609259320e-02
-1.000000000000000021e-02 5.336699231206302344e+13 9.388392345373211545e-03 2.979194130478783897e-01 5.022480273083260172e-02
-1.000000000000000021e-02 6.579332246575682031e+13 9.406891975013181861e-03 2.902238089247051733e-01 6.267751964963230726e-02
-1.000000000000000021e-02 8.111308307896889062e+13 9.423128620679266029e-03 2.826682740901901858e-01 7.821886722391513391e-02
-1.000000000000000021e-02 1.000000000000000000e+14 9.425721403818599839e-03 2.749712646855593801e-01 9.804623875675166911e-02
-1.000000000000000021e-02 1.232846739442062969e+14 9.428014716069589227e-03 2.675475370885667115e-01 1.229247357096503040e-01
-1.000000000000000021e-02 1.519911082952933125e+14 9.446292146185914299e-03 2.612016353293167836e-01 1.520252281365525870e-01
-1.000000000000000021e-02 1.873817422860386875e+14 9.462606926773321422e-03 2.548965086525774026e-01 1.867481035422751956e-01
-1.000000000000000021e-02 2.310129700083158125e+14 9.468612010391884784e-03 2.483246979716809133e-01 2.279521484422573074e-01
-1.000000000000000021e-02 2.848035868435805000e+14 9.447353218770460428e-03 2.414873732612067003e-01 2.784178893175867087e-01
-1.000000000000000021e-02 3.511191734215141875e+14 9.489966268230858384e-03 2.365632019970914102e-01 3.425174799952974136e-01
-1.000000000000000021e-02 4.328761281083061875e+14 9.490605530374401563e-03 2.305681340744120122e-01 4.180617789763877989e-01
-1.000000000000000021e-02 5.336699231206301875e+14 9.471385761320640778e-03 2.243161931907134976e-01 5.093329808869954123e-01
-1.000000000000000021e-02 6.579332246575682500e+14 9.448085676308309866e-03 2.183378970450580991e-01 6.199298927050128638e-01
-1.000000000000000021e-02 8.111308307896888750e+14 9.448961360769857210e-03 2.129477660725062893e-01 7.626622940337921541e-01
-1.000000000000000021e-02 1.000000000000000000e+15 9.456203209350115199e-03 2.077313468376643102e-01 9.367183263432626861e-01
-1.000000000000000021e-02 1.232846739442064000e+15 9.441493725260556927e-03 2.021025062170873077e-01 1.135407417571419053e+00
-1.000000000000000021e-02 1.519911082952933000e+15 9.421494049992734654e-03 1.966306850600353096e-01 1.379034055626692012e+00
-1.000000000000000021e-02 1.873817422860387000e+15 9.414294623698240758e-03 1.917067875079571937e-01 1.683716021372392957e+00
-1.000000000000000021e-02 2.310129700083158000e+15 9.355554462588556303e-03 1.860774281480118975e-01 2.023906196008153024e+00
-1.000000000000000021e-02 2.848035868435805000e+15 9.361402407980425056e-03 1.816815295269189057e-01 2.437670597439114850e+00
-1.000000000000000021e-02 3.511191734215142000e+15 9.340018347338921792e-03 1.769763260466475918e-01 2.960713957585029199e+00
-1.000000000000000021e-02 4.328761281083062000e+15 9.283531791059456903e-03 1.721690650689240987e-01 3.584580717751276069e+00
-1.000000000000000021e-02 5.336699231206302000e+15 9.308843637112687933e-03 1.686442651798646941e-01 4.282798788850673333e+00
-1.000000000000000021e-02 6.579332246575682000e+15 9.245440004639553233e-03 1.638935542676696888e-01 5.098713430088196219e+00
-1.000000000000000021e-02 8.111308307896889000e+15 9.202714198622247849e-03 1.594149792171405122e-01 6.183607917109098295e+00
-1.000000000000000021e-02 1.000000000000000000e+16 9.163447007308056849e-03 1.549813549746694996e-01 7.391392710325291660e+00
-1.000000000000000021e-02 1.232846739442063000e+16 9.132401694728420685e-03 1.506554662001663991e-01 9.018803405311054178e+00
-1.000000000000000021e-02 1.519911082952927000e+16 9.019613987408947250e-03 1.454915080736710054e-01 1.102139646253558070e+01
-1.000000000000000021e-02 1.873817422860387200e+16 8.923794712928952502e-03 1.404790939392659976e-01 1.313374190095738925e+01
-1.000000000000000021e-02 2.310129700083158000e+16 8.931797413227407154e-03 1.363578865782600069e-01 1.523198576184717012e+01
-1.000000000000000021e-02 2.848035868435792800e+16 8.750451976573323312e-03 1.304097333794146940e-01 1.759670133487777122e+01
-1.000000000000000021e-02 3.511191734215142000e+16 8.690540750081004323e-03 1.253413529012180061e-01 2.000437893142672863e+01
-1.000000000000000021e-02 4.328761281083062400e+16 8.441064985922180561e-03 1.187992987761729985e-01 2.339141159765062028e+01
-1.000000000000000021e-02 5.336699231206302400e+16 8.193129492413176590e-03 1.118627883095706932e-01 2.744363528512401018e+01
-1.000000000000000021e-02 6.579332246575710400e+16 8.012549993250094038e-03 1.051996398729015958e-01 3.286380338859225958e+01
-1.000000000000000021e-02 8.111308307896889600e+16 7.861546065042796308e-03 9.869982828138243458e-02 3.980877322988506961e+01
-1.000000000000000021e-02 1.000000000000000000e+17 7.757537302280450783e-03 9.257489424037097792e-02 4.770350361036690146e+01
-1.000000000000000021e-02 1.232846739442063040e+17 7.704103826496914650e-03 8.678734463789221365e-02 5.828494115738281778e+01
-1.000000000000000021e-02 1.519911082952927040e+17 7.675991472098466287e-03 8.142292647649647386e-02 7.140575437205548326e+01
-1.000000000000000021e-02 1.873817422860386880e+17 7.656860197834898345e-03 7.637528430920083322e-02 8.737364395822639551e+01
-1.000000000000000021e-02 2.310129700083158080e+17 7.614064642290281106e-03 7.146289073004771786e-02 1.074090875771423015e+02
-1.000000000000000021e-02 2.848035868435792960e+17 7.463952272658830669e-03 6.626693163742547465e-02 1.324679958787419878e+02
-1.000000000000000021e-02 3.511191734215141760e+17 7.469017148150128987e-03 6.205470205025696850e-02 1.637673818482979868e+02
-1.000000000000000021e-02 4.328761281083061760e+17 7.482178947491311023e-03 5.811271191465316316e-02 2.028102364889494993e+02
-1.000000000000000021e-02 5.336699231206300800e+17 7.489420728419353586e-03 5.437681094862072129e-02 2.514913892753799871e+02
-1.000000000000000021e-02 6.579332246575709440e+17 7.354385922912915971e-03 5.037667544922783819e-02 3.123478738704881152e+02
-1.000000000000000021e-02 8.111308307896889600e+17 7.351743440575996685e-03 4.706814963728966905e-02 3.887426670778376092e+02
-1.000000000000000021e-02 1.000000000000000000e+18 7.371802190349725781e-03 4.402535852169309899e-02 4.844845427084921994e+02
-1.000000000000000021e-02 1.232846739442074112e+18 7.249807922657240146e-03 4.077489832959599325e-02 6.057513387111620204e+02
-1.000000000000000021e-02 1.519911082952926976e+18 7.277853150854627327e-03 3.811604531915790961e-02 7.580504080407743004e+02
-1.000000000000000021e-02 1.873817422860387072e+18 7.164732267193590215e-03 3.527848494122697021e-02 9.516585575178381760e+02
-1.000000000000000021e-02 2.310129700083158016e+18 7.190876498118564317e-03 3.292076482971390688e-02 1.195944000611860019e+03
-1.000000000000000021e-02 2.848035868435792896e+18 7.092062307175793154e-03 3.043906541292529938e-02 1.508724496658431917e+03
-1.000000000000000021e-02 3.511191734215141888e+18 7.134295918290400884e-03 2.837058441566405950e-02 1.909710968036376926e+03
-1.000000000000000021e-02 4.328761281083061760e+18 7.041194935787638970e-03 2.616857956175766900e-02 2.426283239858921206e+03
-1.000000000000000021e-02 5.336699231206301696e+18 6.937842159375887108e-03 2.407996560200351133e-02 3.094175381308806209e+03
-1.000000000000000021e-02 6.579332246575709184e+18 6.839149504821128572e-03 2.212199209919981854e-02 3.959292060541601131e+03
-1.000000000000000021e-02 8.111308307896889344e+18 6.746090204844026883e-03 2.028734056462816113e-02 5.091842551991165237e+03
-1.000000000000000021e-02 1.000000000000000000e+19 6.786808426211623363e-03 1.873063230972871890e-02 6.583820866887071134e+03
diff --git a/Documentation/WKB_vs_Numerics/Matter.dat b/Documentation/WKB_vs_Numerics/Matter.dat
deleted file mode 100644
index ab980ae..0000000
--- a/Documentation/WKB_vs_Numerics/Matter.dat
+++ /dev/null
@@ -1,100 +0,0 @@
-1.000000000000000021e-02 1.000000000000000000e+10 7.939048545844373805e-03 4.405210238533148748e-01 2.761502377417980858e-13
-1.000000000000000021e-02 1.232846739442067909e+10 7.985784193843490850e-03 4.299591460286474875e-01 3.797273012615549879e-13
-1.000000000000000021e-02 1.519911082952932930e+10 7.924839775320116630e-03 4.182008904479302958e-01 5.220276802565053170e-13
-1.000000000000000021e-02 1.873817422860387039e+10 7.972574557245631216e-03 4.081930309221104003e-01 7.248404337085666899e-13
-1.000000000000000021e-02 2.310129700083158112e+10 7.912600139317722825e-03 3.970595281506248964e-01 9.979091383387321038e-13
-1.000000000000000021e-02 2.848035868435805130e+10 7.962017406733596508e-03 3.875696447519103027e-01 1.373153494727470058e-12
-1.000000000000000021e-02 3.511191734215128326e+10 7.902739011403918379e-03 3.770344728244398036e-01 1.896564090305245809e-12
-1.000000000000000021e-02 4.328761281083061218e+10 7.952032089122106767e-03 3.680988521034141980e-01 2.601437924901083945e-12
-1.000000000000000021e-02 5.336699231206301880e+10 7.891738604500878745e-03 3.581710421303800906e-01 3.573523481528072933e-12
-1.000000000000000021e-02 6.579332246575682068e+10 7.941640957296533521e-03 3.497074236790703727e-01 4.947455824283909196e-12
-1.000000000000000021e-02 8.111308307896888733e+10 7.882576969730900260e-03 3.402946299524517992e-01 6.859030885990060364e-12
-1.000000000000000021e-02 1.000000000000000000e+11 7.933994877989807362e-03 3.322937935033496992e-01 9.483891558855587205e-12
-1.000000000000000021e-02 1.232846739442062988e+11 7.984584267692895060e-03 3.245205455897716140e-01 1.300234868952837073e-11
-1.000000000000000021e-02 1.519911082952933044e+11 7.927634905741413537e-03 3.159091021246763775e-01 1.796528135993491933e-11
-1.000000000000000021e-02 1.873817422860386963e+11 7.977685544897819558e-03 3.085872871148853114e-01 2.468512137321258843e-11
-1.000000000000000021e-02 2.310129700083157959e+11 7.919371732010070317e-03 3.004461714759579793e-01 3.377113493782651958e-11
-1.000000000000000021e-02 2.848035868435805054e+11 7.969779628392077708e-03 2.935225679551072830e-01 4.687146555389619180e-11
-1.000000000000000021e-02 3.511191734215128174e+11 7.912513330918717266e-03 2.858298102501282134e-01 6.519045455845898378e-11
-1.000000000000000021e-02 4.328761281083062134e+11 7.962826459460937284e-03 2.792734886793358240e-01 9.110054505677113608e-11
-1.000000000000000021e-02 5.336699231206301880e+11 8.009812997163037740e-03 2.729018079719485179e-01 1.276989040034780066e-10
-1.000000000000000021e-02 6.579332246575682373e+11 7.891167460780576168e-03 2.654536551620241824e-01 1.778214688051446055e-10
-1.000000000000000021e-02 8.111308307896888428e+11 7.955076481923523818e-03 2.594814032986331731e-01 2.471582323363295851e-10
-1.000000000000000021e-02 1.000000000000000000e+12 8.058961703953183842e-03 2.543945189099717785e-01 3.400605484124953189e-10
-1.000000000000000021e-02 1.232846739442062988e+12 8.019391260691351164e-03 2.483903255430041090e-01 4.690109884047664535e-10
-1.000000000000000021e-02 1.519911082952933105e+12 8.004422798922536386e-03 2.427800766009078903e-01 6.426256455290047700e-10
-1.000000000000000021e-02 1.873817422860386963e+12 8.061340926344988736e-03 2.377570648970840916e-01 8.800939290362360891e-10
-1.000000000000000021e-02 2.310129700083158203e+12 8.012395382655947140e-03 2.321503095969444930e-01 1.194646411272213024e-09
-1.000000000000000021e-02 2.848035868435805176e+12 8.007512426295847197e-03 2.270234539111846972e-01 1.614647920394243008e-09
-1.000000000000000021e-02 3.511191734215126953e+12 8.107510654278022449e-03 2.226864742587414958e-01 2.189815633357370974e-09
-1.000000000000000021e-02 4.328761281083062012e+12 8.012548253331256559e-03 2.171967013920796108e-01 2.993691576835579038e-09
-1.000000000000000021e-02 5.336699231206301758e+12 8.033370244728072623e-03 2.125115958705071084e-01 4.100843722705128864e-09
-1.000000000000000021e-02 6.579332246575682617e+12 7.953553809563919733e-03 2.072528926179044995e-01 5.607880228075718022e-09
-1.000000000000000021e-02 8.111308307896888672e+12 7.989867741400910606e-03 2.027654519472104067e-01 7.620628469654910574e-09
-1.000000000000000021e-02 1.000000000000000000e+13 7.923669793264925473e-03 1.978416443479658893e-01 1.038977899476331948e-08
-1.000000000000000021e-02 1.232846739442063086e+13 7.862874266797593298e-03 1.931619556138872984e-01 1.429465627511150973e-08
-1.000000000000000021e-02 1.519911082952933008e+13 7.809165466164742081e-03 1.887134919015875933e-01 1.964222356854549099e-08
-1.000000000000000021e-02 1.873817422860387109e+13 7.764377847420698107e-03 1.844634323852510915e-01 2.684400003592216969e-08
-1.000000000000000021e-02 2.310129700083157812e+13 7.729170967254703033e-03 1.803665523719958919e-01 3.644781308568601158e-08
-1.000000000000000021e-02 2.848035868435805078e+13 7.703731096612587842e-03 1.764246980526494035e-01 4.988937389393741064e-08
-1.000000000000000021e-02 3.511191734215126953e+13 7.573625808634391714e-03 1.722445868540931069e-01 6.837844627430812113e-08
-1.000000000000000021e-02 4.328761281083061719e+13 7.575539522054039812e-03 1.687464810776551083e-01 9.329579619081888579e-08
-1.000000000000000021e-02 5.336699231206302344e+13 7.478165596123339219e-03 1.649092844995883045e-01 1.272289498968861112e-07
-1.000000000000000021e-02 6.579332246575682031e+13 7.399223174007297198e-03 1.610538790738992865e-01 1.786323809637840873e-07
-1.000000000000000021e-02 8.111308307896889062e+13 7.339698076653042823e-03 1.572220736066365920e-01 2.426610640414414828e-07
-1.000000000000000021e-02 1.000000000000000000e+14 7.180981300439020359e-03 1.530837009157426098e-01 3.354689613550666976e-07
-1.000000000000000021e-02 1.232846739442062969e+14 7.044206776930827738e-03 1.490551634860773911e-01 4.584927435686185865e-07
-1.000000000000000021e-02 1.519911082952933125e+14 6.932685375391936348e-03 1.450919496809597864e-01 6.371315534307555451e-07
-1.000000000000000021e-02 1.873817422860386875e+14 6.723617812840710847e-03 1.407618183228643016e-01 8.826309379368963871e-07
-1.000000000000000021e-02 2.310129700083158125e+14 6.676549244153370637e-03 1.368455773874300008e-01 1.243953046887423928e-06
-1.000000000000000021e-02 2.848035868435805000e+14 6.535223885015089586e-03 1.326043444850678044e-01 1.729422059202236093e-06
-1.000000000000000021e-02 3.511191734215141875e+14 6.157332594736534062e-03 1.272982067185622901e-01 2.417627266885533942e-06
-1.000000000000000021e-02 4.328761281083061875e+14 5.880756097655729861e-03 1.226095968144328974e-01 3.288974106471276917e-06
-1.000000000000000021e-02 5.336699231206301875e+14 5.475764812142185252e-03 1.173482978114436942e-01 4.474106440625148997e-06
-1.000000000000000021e-02 6.579332246575682500e+14 5.126024927827041618e-03 1.118395364395353003e-01 6.249228999780297846e-06
-1.000000000000000021e-02 8.111308307896888750e+14 4.759039439248670053e-03 1.062843222155182010e-01 8.769161052372918537e-06
-1.000000000000000021e-02 1.000000000000000000e+15 4.750615641510761746e-03 1.016070659457891934e-01 1.278724967398865032e-05
-1.000000000000000021e-02 1.232846739442064000e+15 4.670775088365468862e-03 9.680033247410226027e-02 1.896249207885110165e-05
-1.000000000000000021e-02 1.519911082952933000e+15 4.635917005491186314e-03 9.222669631744935537e-02 2.835400400811119854e-05
-1.000000000000000021e-02 1.873817422860387000e+15 4.600955535804009990e-03 8.780644541357325583e-02 4.260069061120288743e-05
-1.000000000000000021e-02 2.310129700083158000e+15 4.571430852980628429e-03 8.357022011599790634e-02 6.438158718414210802e-05
-1.000000000000000021e-02 2.848035868435805000e+15 4.552448706573879872e-03 7.953479403606786291e-02 9.715433502761332990e-05
-1.000000000000000021e-02 3.511191734215142000e+15 4.538812376689217720e-03 7.568881238541115553e-02 1.472396083077304044e-04
-1.000000000000000021e-02 4.328761281083062000e+15 4.527770219189112579e-03 7.202424255458145241e-02 2.233711689019801975e-04
-1.000000000000000021e-02 5.336699231206302000e+15 4.518463854944245080e-03 6.853548635385983689e-02 3.391518844974238090e-04
-1.000000000000000021e-02 6.579332246575682000e+15 4.510309489214133286e-03 6.521653171034218210e-02 5.154987602569388681e-04
-1.000000000000000021e-02 8.111308307896889000e+15 4.502912968831356694e-03 6.206053654094476069e-02 7.822444258979256238e-04
-1.000000000000000021e-02 1.000000000000000000e+16 4.496011995138562978e-03 5.906047558868703778e-02 1.189726655742700916e-03
-1.000000000000000021e-02 1.232846739442063000e+16 4.489431744260614400e-03 5.620954612000954309e-02 1.807206906229178074e-03
-1.000000000000000021e-02 1.519911082952927000e+16 4.483056435138924045e-03 5.350060284119077109e-02 2.747493416741620970e-03
-1.000000000000000021e-02 1.873817422860387200e+16 4.476809044330332804e-03 5.092669789966206007e-02 4.173906182990404744e-03
-1.000000000000000021e-02 2.310129700083158000e+16 4.470637863671023116e-03 4.848077839418853119e-02 6.345968573252590804e-03
-1.000000000000000021e-02 2.848035868435792800e+16 4.464507531856947743e-03 4.615644482220143674e-02 9.640441792860568460e-03
-1.000000000000000021e-02 3.511191734215142000e+16 4.589391207222688618e-03 4.410113252309023901e-02 1.465409555588731948e-02
-1.000000000000000021e-02 4.328761281083062400e+16 4.583372210630205605e-03 4.199278021601549754e-02 2.228371277055872859e-02
-1.000000000000000021e-02 5.336699231206302400e+16 4.577337166085617380e-03 3.998758984439854808e-02 3.387126505521609321e-02
-1.000000000000000021e-02 6.579332246575710400e+16 4.571272626695509211e-03 3.807951413826078657e-02 5.148858553563261109e-02
-1.000000000000000021e-02 8.111308307896889600e+16 4.565165820160690599e-03 3.626326722698904742e-02 7.809064589541303558e-02
-1.000000000000000021e-02 1.000000000000000000e+17 4.559003532575289265e-03 3.453354129416078000e-02 1.186179521405040932e-01
-1.000000000000000021e-02 1.232846739442063040e+17 4.552770321570335718e-03 3.288527714977462768e-02 1.802925929284202866e-01
-1.000000000000000021e-02 1.519911082952927040e+17 4.546448353173731388e-03 3.131393446523905028e-02 2.740136122634558857e-01
-1.000000000000000021e-02 1.873817422860386880e+17 4.540016437108110141e-03 2.981504836146820978e-02 4.165706691721117183e-01
-1.000000000000000021e-02 2.310129700083158080e+17 4.533447874044798688e-03 2.838464943045827110e-02 6.334454816197827576e-01
-1.000000000000000021e-02 2.848035868435792960e+17 4.526711031707814428e-03 2.701882394778071933e-02 9.640535039115618599e-01
-1.000000000000000021e-02 3.511191734215141760e+17 4.539658914639902246e-03 2.572795433603424983e-02 1.462075628277599959e+00
-1.000000000000000021e-02 4.328761281083061760e+17 4.566249697314286697e-03 2.450298517209313978e-02 2.226445455737827039e+00
-1.000000000000000021e-02 5.336699231206300800e+17 4.573153315665536185e-03 2.331854985072857878e-02 3.374866003343512055e+00
-1.000000000000000021e-02 6.579332246575709440e+17 4.573111755804148797e-03 2.218159927511062848e-02 5.126886477364881678e+00
-1.000000000000000021e-02 8.111308307896889600e+17 4.574387886520410104e-03 2.109501203202664155e-02 7.802729080451911159e+00
-1.000000000000000021e-02 1.000000000000000000e+18 4.565512079330418839e-03 2.004999139299509098e-02 1.183686590267491923e+01
-1.000000000000000021e-02 1.232846739442074112e+18 4.685604579062521355e-03 1.912033310012497059e-02 1.800286542405698853e+01
-1.000000000000000021e-02 1.519911082952926976e+18 4.675342745287508657e-03 1.816105160411090116e-02 2.729420374727562049e+01
-1.000000000000000021e-02 1.873817422860387072e+18 4.664000072372331829e-03 1.724347162397291133e-02 4.143872427672800995e+01
-1.000000000000000021e-02 2.310129700083158016e+18 4.651320743779186265e-03 1.636586851411929097e-02 6.293393763510496086e+01
-1.000000000000000021e-02 2.848035868435792896e+18 4.636988060892200010e-03 1.552649863687909949e-02 9.554830642043519617e+01
-1.000000000000000021e-02 3.511191734215141888e+18 4.620610230675108177e-03 1.472371311038424974e-02 1.449189890853760971e+02
-1.000000000000000021e-02 4.328761281083061760e+18 4.601702306548255579e-03 1.395577490231268009e-02 2.203141108221931006e+02
-1.000000000000000021e-02 5.336699231206301696e+18 4.709974329632954197e-03 1.327241767444485923e-02 3.337160194768767951e+02
-1.000000000000000021e-02 6.579332246575709184e+18 4.684800289576500180e-03 1.256676740500260042e-02 5.047869558565503780e+02
-1.000000000000000021e-02 8.111308307896889344e+18 4.654978081711915600e-03 1.189061269455479047e-02 7.649582756282356968e+02
-1.000000000000000021e-02 1.000000000000000000e+19 4.750140547914474126e-03 1.128748938876088931e-02 1.156855633995033941e+03
diff --git a/Documentation/WKB_vs_Numerics/RD.dat b/Documentation/WKB_vs_Numerics/RD.dat
deleted file mode 100644
index 7e411d9..0000000
--- a/Documentation/WKB_vs_Numerics/RD.dat
+++ /dev/null
@@ -1,100 +0,0 @@
-1.000000000000000021e-02 1.000000000000000000e+10 9.528766915397111556e-03 2.066991088308479885e+00 6.058844949758213352e-08
-1.000000000000000021e-02 1.232846739442067909e+10 9.440882060751361674e-03 1.978187558489199915e+00 7.642821329006278618e-08
-1.000000000000000021e-02 1.519911082952932930e+10 9.456698890505887273e-03 1.918491663275055048e+00 9.829736448021215435e-08
-1.000000000000000021e-02 1.873817422860387039e+10 9.438835908451875811e-03 1.852982764766845980e+00 1.239264446324862945e-07
-1.000000000000000021e-02 2.310129700083158112e+10 9.467102531524171707e-03 1.800372603143471917e+00 1.567629305720222039e-07
-1.000000000000000021e-02 2.848035868435805130e+10 9.509935812187482809e-03 1.754046683982108945e+00 2.009685940556804924e-07
-1.000000000000000021e-02 3.511191734215128326e+10 9.454309248155474618e-03 1.682960796760156974e+00 2.571754069551960788e-07
-1.000000000000000021e-02 4.328761281083061218e+10 9.460146963468042333e-03 1.630974786685716049e+00 3.209386610136952263e-07
-1.000000000000000021e-02 5.336699231206301880e+10 9.436590157018724320e-03 1.573934998560468035e+00 4.116987344308254952e-07
-1.000000000000000021e-02 6.579332246575682068e+10 9.476337066569612277e-03 1.531154641746875100e+00 5.346228220534396512e-07
-1.000000000000000021e-02 8.111308307896888733e+10 9.417287037467001604e-03 1.466902087768162000e+00 6.657991477400142740e-07
-1.000000000000000021e-02 1.000000000000000000e+11 9.410983348720626529e-03 1.418155628119694978e+00 8.459093338993424180e-07
-1.000000000000000021e-02 1.232846739442062988e+11 9.443756236141482435e-03 1.378146603230776090e+00 1.094803053473520051e-06
-1.000000000000000021e-02 1.519911082952933044e+11 9.386678324215658523e-03 1.322197916897392966e+00 1.397345980288565998e-06
-1.000000000000000021e-02 1.873817422860386963e+11 9.434129892776211765e-03 1.287032064204713944e+00 1.788787038634188941e-06
-1.000000000000000021e-02 2.310129700083157959e+11 9.408340529982560721e-03 1.240809675911783039e+00 2.276813486579049891e-06
-1.000000000000000021e-02 2.848035868435805054e+11 9.426914354655924200e-03 1.201863201591548025e+00 2.891596690132080854e-06
-1.000000000000000021e-02 3.511191734215128174e+11 9.385091503388214712e-03 1.155407141128933057e+00 3.722820657985226830e-06
-1.000000000000000021e-02 4.328761281083062134e+11 9.355842348144316825e-03 1.112819452323650093e+00 4.771388863020740988e-06
-1.000000000000000021e-02 5.336699231206301880e+11 9.437060063358019071e-03 1.086595311376044926e+00 5.967795441392637611e-06
-1.000000000000000021e-02 6.579332246575682373e+11 9.395698430401116727e-03 1.044843997855098960e+00 7.631962314072054796e-06
-1.000000000000000021e-02 8.111308307896888428e+11 9.332063700864120029e-03 1.001278877407618895e+00 9.727339117345695682e-06
-1.000000000000000021e-02 1.000000000000000000e+12 9.405085522721444782e-03 9.770011034399899152e-01 1.239554308621752988e-05
-1.000000000000000021e-02 1.232846739442062988e+12 9.366222922779646534e-03 9.399186757699435901e-01 1.577907237136892021e-05
-1.000000000000000021e-02 1.519911082952933105e+12 9.348776566832433035e-03 9.049131316327049257e-01 2.010612814685396835e-05
-1.000000000000000021e-02 1.873817422860386963e+12 9.373708600820004552e-03 8.768812462888804227e-01 2.562351756066391092e-05
-1.000000000000000021e-02 2.310129700083158203e+12 9.372034307985046761e-03 8.476250742651246783e-01 3.274956848548363014e-05
-1.000000000000000021e-02 2.848035868435805176e+12 9.347745364425227160e-03 8.157150330268394534e-01 4.169871822114358241e-05
-1.000000000000000021e-02 3.511191734215126953e+12 9.308461183692180035e-03 7.836761635853134456e-01 5.362493406884427161e-05
-1.000000000000000021e-02 4.328761281083062012e+12 9.355476596378243387e-03 7.610538534504929231e-01 6.890185092412621506e-05
-1.000000000000000021e-02 5.336699231206301758e+12 9.356645127889027733e-03 7.357157736645566493e-01 8.771763515035769696e-05
-1.000000000000000021e-02 6.579332246575682617e+12 9.332127294480305549e-03 7.077549189740115487e-01 1.118493869642641996e-04
-1.000000000000000021e-02 8.111308307896888672e+12 9.306775960726654251e-03 6.815167708791990409e-01 1.435874057349124976e-04
-1.000000000000000021e-02 1.000000000000000000e+13 9.362635686566766341e-03 6.622296603469097764e-01 1.842891171695371989e-04
-1.000000000000000021e-02 1.232846739442063086e+13 9.331846897760931112e-03 6.365908966581317330e-01 2.355732882068372095e-04
-1.000000000000000021e-02 1.519911082952933008e+13 9.334800988550809656e-03 6.154933001495596079e-01 2.996221492894103004e-04
-1.000000000000000021e-02 1.873817422860387109e+13 9.310203829054177274e-03 5.918723089389652525e-01 3.842709103571279841e-04
-1.000000000000000021e-02 2.310129700083157812e+13 9.290120584508280988e-03 5.704698238823412426e-01 4.884573077730029137e-04
-1.000000000000000021e-02 2.848035868435805078e+13 9.287780646340448865e-03 5.503607008174153936e-01 6.251339057759996076e-04
-1.000000000000000021e-02 3.511191734215126953e+13 9.329962364385629980e-03 5.338734646773843906e-01 8.098199385538888294e-04
-1.000000000000000021e-02 4.328761281083061719e+13 9.311359684719765217e-03 5.141547363303721196e-01 1.026307422563903964e-03
-1.000000000000000021e-02 5.336699231206302344e+13 9.308995293229099452e-03 4.965679631096950875e-01 1.310524154947965026e-03
-1.000000000000000021e-02 6.579332246575682031e+13 9.305380812721497988e-03 4.789372092970792805e-01 1.690644109596986045e-03
-1.000000000000000021e-02 8.111308307896889062e+13 9.277097397447645749e-03 4.608812645484403059e-01 2.159557296202361133e-03
-1.000000000000000021e-02 1.000000000000000000e+14 9.278146674260089738e-03 4.450256667798181964e-01 2.787794763810481132e-03
-1.000000000000000021e-02 1.232846739442062969e+14 9.264515939592226149e-03 4.289568898209125125e-01 3.568619157434121166e-03
-1.000000000000000021e-02 1.519911082952933125e+14 9.252365889438460625e-03 4.136707609122193263e-01 4.551574687600134020e-03
-1.000000000000000021e-02 1.873817422860386875e+14 9.246061579628287938e-03 3.992365827475433115e-01 5.853701541942877076e-03
-1.000000000000000021e-02 2.310129700083158125e+14 9.249088547786537412e-03 3.854742838594932830e-01 7.588523666242410863e-03
-1.000000000000000021e-02 2.848035868435805000e+14 9.296916825290357442e-03 3.741247927820973151e-01 9.694274530090214032e-03
-1.000000000000000021e-02 3.511191734215141875e+14 9.292623724644670513e-03 3.613606764284068018e-01 1.241047055550105992e-02
-1.000000000000000021e-02 4.328761281083061875e+14 9.292659152781905171e-03 3.489536161712857854e-01 1.604373419988518873e-02
-1.000000000000000021e-02 5.336699231206301875e+14 9.282308159421931784e-03 3.365316875756803050e-01 2.063618666045737016e-02
-1.000000000000000021e-02 6.579332246575682500e+14 9.286035907573297540e-03 3.253703807582771779e-01 2.615287696198781084e-02
-1.000000000000000021e-02 8.111308307896888750e+14 9.271134339302912475e-03 3.136598163634046754e-01 3.382707807239908326e-02
-1.000000000000000021e-02 1.000000000000000000e+15 9.268682140865876565e-03 3.030657167248954065e-01 4.435749455121233004e-02
-1.000000000000000021e-02 1.232846739442064000e+15 9.279932903302780950e-03 2.935011512416345059e-01 5.738744504755931980e-02
-1.000000000000000021e-02 1.519911082952933000e+15 9.273987214466126311e-03 2.835184810672232159e-01 7.608220050860639572e-02
-1.000000000000000021e-02 1.873817422860387000e+15 9.266491896760426297e-03 2.739127000979237891e-01 1.003040280606171952e-01
-1.000000000000000021e-02 2.310129700083158000e+15 9.268594818631048157e-03 2.650882476848729907e-01 1.302121901946325933e-01
-1.000000000000000021e-02 2.848035868435805000e+15 9.353733731894117720e-03 2.591490101967510729e-01 1.662502389143070136e-01
-1.000000000000000021e-02 3.511191734215142000e+15 9.348849263989341893e-03 2.508281338506067049e-01 2.111335966932406938e-01
-1.000000000000000021e-02 4.328761281083062000e+15 9.305383049462654863e-03 2.419233122021789972e-01 2.708555644678750096e-01
-1.000000000000000021e-02 5.336699231206302000e+15 9.368036306949954761e-03 2.364087070184570094e-01 3.445237125106421772e-01
-1.000000000000000021e-02 6.579332246575682000e+15 9.342631622895064200e-03 2.284283669303474873e-01 4.342891256644518250e-01
-1.000000000000000021e-02 8.111308307896889000e+15 9.313368606784604153e-03 2.210687335168833867e-01 5.535665523669995869e-01
-1.000000000000000021e-02 1.000000000000000000e+16 9.309452312586695422e-03 2.145023021989994061e-01 7.076627633877128343e-01
-1.000000000000000021e-02 1.232846739442063000e+16 9.292429569816060275e-03 2.076191449975914871e-01 8.946071435161218055e-01
-1.000000000000000021e-02 1.519911082952927000e+16 9.274904859787430969e-03 2.009002355425542896e-01 1.144580803653570955e+00
-1.000000000000000021e-02 1.873817422860387200e+16 9.190507319106963613e-03 1.933559516162748071e-01 1.435527680551996976e+00
-1.000000000000000021e-02 2.310129700083158000e+16 9.192124949251728738e-03 1.877983767804095039e-01 1.809020272919646066e+00
-1.000000000000000021e-02 2.848035868435792800e+16 9.198199689998654352e-03 1.824805694119202015e-01 2.298603188669153141e+00
-1.000000000000000021e-02 3.511191734215142000e+16 9.130294634560460337e-03 1.762457530673594008e-01 2.897850108155159976e+00
-1.000000000000000021e-02 4.328761281083062400e+16 9.068726063612890173e-03 1.705475629907834967e-01 3.584456933038724813e+00
-1.000000000000000021e-02 5.336699231206302400e+16 9.017777609710047465e-03 1.652395349187074924e-01 4.478419844723915411e+00
-1.000000000000000021e-02 6.579332246575710400e+16 8.887681290007665158e-03 1.589115582011688121e-01 5.660385631396954054e+00
-1.000000000000000021e-02 8.111308307896889600e+16 8.768940392529119693e-03 1.527776321982843022e-01 7.361932111520586020e+00
-1.000000000000000021e-02 1.000000000000000000e+17 8.668129931288683435e-03 1.468860352554219872e-01 9.397255002789178135e+00
-1.000000000000000021e-02 1.232846739442063040e+17 8.590991888154604628e-03 1.410960696691770100e-01 1.151970017745476049e+01
-1.000000000000000021e-02 1.519911082952927040e+17 8.435655692366645156e-03 1.344065640527231931e-01 1.356819588910003915e+01
-1.000000000000000021e-02 1.873817422860386880e+17 8.078259162012293298e-03 1.258571679173706992e-01 1.608072403209445866e+01
-1.000000000000000021e-02 2.310129700083158080e+17 7.629010794737639718e-03 1.167560468906892052e-01 1.945861851223119032e+01
-1.000000000000000021e-02 2.848035868435792960e+17 6.979460566011242047e-03 1.055088870150508035e-01 2.404857402155851176e+01
-1.000000000000000021e-02 3.511191734215141760e+17 6.728666051232502950e-03 9.666099961000085283e-02 3.044783754600506143e+01
-1.000000000000000021e-02 4.328761281083061760e+17 6.444201991069665666e-03 8.764872029031443856e-02 3.923385156890400083e+01
-1.000000000000000021e-02 5.336699231206300800e+17 6.212010356321000931e-03 7.923858486036372550e-02 5.142644839180864125e+01
-1.000000000000000021e-02 6.579332246575709440e+17 6.180551882800294078e-03 7.224218186302809597e-02 6.843281188282483640e+01
-1.000000000000000021e-02 8.111308307896889600e+17 6.049788867513186674e-03 6.525758441910081697e-02 9.196767514705709345e+01
-1.000000000000000021e-02 1.000000000000000000e+18 5.946073605323444651e-03 5.894582324200209333e-02 1.245109315667132961e+02
-1.000000000000000021e-02 1.232846739442074112e+18 6.003218852429555163e-03 5.374929175359711292e-02 1.695751638035781923e+02
-1.000000000000000021e-02 1.519911082952926976e+18 5.931937607095581245e-03 4.857734975254802273e-02 2.314431833258909990e+02
-1.000000000000000021e-02 1.873817422860387072e+18 5.869510626721186758e-03 4.392109608156932743e-02 3.177443209056941100e+02
-1.000000000000000021e-02 2.310129700083158016e+18 5.954008305139363647e-03 4.008949616187974796e-02 4.359702328236595008e+02
-1.000000000000000021e-02 2.848035868435792896e+18 5.902363111468244238e-03 3.626820901389211926e-02 5.986804576548668138e+02
-1.000000000000000021e-02 3.511191734215141888e+18 5.852881129995769240e-03 3.281323332209878929e-02 8.243029322785437216e+02
-1.000000000000000021e-02 4.328761281083061760e+18 5.804174848238072282e-03 2.968182117099520123e-02 1.134753190216272060e+03
-1.000000000000000021e-02 5.336699231206301696e+18 5.897013191937213947e-03 2.708442665517962061e-02 1.562647435568459969e+03
-1.000000000000000021e-02 6.579332246575709184e+18 5.847911183474290356e-03 2.447172657116335887e-02 2.150937119779751811e+03
-1.000000000000000021e-02 8.111308307896889344e+18 5.937647293384739136e-03 2.229671885368526146e-02 2.961068334240189870e+03
-1.000000000000000021e-02 1.000000000000000000e+19 5.884999749871338767e-03 2.010398241848070089e-02 4.081355519092676786e+03
diff --git a/Documentation/WKB_vs_Numerics/WKB_vs_numeric.ipynb b/Documentation/WKB_vs_Numerics/WKB_vs_numeric.ipynb
deleted file mode 100644
index 4fb5536..0000000
--- a/Documentation/WKB_vs_Numerics/WKB_vs_numeric.ipynb
+++ /dev/null
@@ -1,4222 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "code",
-   "execution_count": 1,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "import numpy as np#you usually need numpy\n",
-    "\n",
-    "#---these are for plots---#\n",
-    "import matplotlib\n",
-    "matplotlib.use('nbAgg')\n",
-    "import matplotlib.pyplot as plt\n",
-    "\n",
-    "plt.rcParams['font.size']=16\n",
-    "plt.rcParams['font.family']='dejavu sans'\n",
-    "\n",
-    "plt.rcParams['mathtext.fontset']='stix'\n",
-    "plt.rcParams['mathtext.rm']='custom'\n",
-    "plt.rcParams['mathtext.it']='stix:italic'\n",
-    "plt.rcParams['mathtext.bf']='stix:bold'\n",
-    "#-------------------------#"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 2,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "#load the module\n",
-    "from sys import path as sysPath\n",
-    "from os import path as osPath\n",
-    "sysPath.append(osPath.join(osPath.dirname('./'), '../../src'))\n",
-    "\n",
-    "from interfacePy.Axion import Axion \n",
-    "from interfacePy.WKB import WKB \n",
-    "from interfacePy.Cosmo import Hubble,s\n",
-    "from interfacePy.AxionMass import ma2\n",
-    "from interfacePy.FT import FT #easy tick formatting\n",
-    "from misc_dir import path"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 3,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "#load theta_i, fa, Tosc, theta_osc, relic\n",
-    "\n",
-    "#for RD universe\n",
-    "RDDat=np.loadtxt('RD.dat')\n",
-    "#for Matter\n",
-    "MatterDat=np.loadtxt('Matter.dat')\n",
-    "#for Kination\n",
-    "KinationDat=np.loadtxt('Kination.dat')"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 4,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "def Matter(fa):\n",
-    "    return WKB.getPoints(3,2,fa,'../../Examples/InputExamples/MatterInput.dat')\n",
-    "    \n",
-    "def Kination(fa):\n",
-    "    return WKB.getPoints(3,2,fa,'../../Examples/InputExamples/KinationInput.dat')\n",
-    "\n",
-    "def RD(fa):\n",
-    "    return WKB.getPoints(3,2,fa,'../../Examples/InputExamples/RDinput.dat')\n"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 5,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "Matter_diff_i=[]\n",
-    "Matter_diff_osc=[]\n",
-    "gamma_osc=[]\n",
-    "for theta_i,fa,theta_osc,T_osc,Omegah2 in MatterDat:\n",
-    "    _gamma_osc,_gamma,Tosc,Tini,ratio_ini=Matter(fa)\n",
-    "    \n",
-    "    gamma_osc.append(_gamma_osc)\n",
-    "    \n",
-    "    Matter_diff_i.append(np.abs(Omegah2-WKB.relic(T_osc,theta_i,_gamma))/Omegah2)\n",
-    "    \n",
-    "    theta_osc_approx=WKB.theta_osc(Tini,ratio_ini,Tosc,theta_i,_gamma_osc)\n",
-    "    Matter_diff_osc.append(np.abs(Omegah2-WKB.relic(T_osc,theta_osc_approx,_gamma))/Omegah2)\n",
-    "\n",
-    "    \n",
-    "Matter_diff_i=np.array(Matter_diff_i)\n",
-    "Matter_diff_osc=np.array(Matter_diff_osc)\n",
-    "\n",
-    "# Kination_diff_i=[]\n",
-    "# Kination_diff_osc=[]\n",
-    "# for theta_i,fa,theta_osc,T_osc,Omegah2 in KinationDat:\n",
-    "#     _gamma_osc,_gamma,Tosc,Tini,ratio_ini=Kination(fa)\n",
-    "#     Kination_diff_i.append(np.abs(Omegah2-WKB.relic(T_osc,theta_i))/Omegah2)\n",
-    "#     theta_osc_approx=WKB.theta_osc(Tini,ratio_ini,Tosc,theta_i)\n",
-    "#     Kination_diff_osc.append(np.abs(Omegah2-WKB.relic(T_osc,theta_osc_approx))/Omegah2)\n",
-    "# Kination_diff_i=np.array(Kination_diff_i)\n",
-    "# Kination_diff_osc=np.array(Kination_diff_osc)\n",
-    "\n",
-    "RD_diff_i=[]\n",
-    "RD_diff_osc=[]\n",
-    "\n",
-    "for theta_i,fa,theta_osc,T_osc,Omegah2 in RDDat:\n",
-    "    _gamma_osc,_gamma,Tosc,Tini,ratio_ini=RD(fa)\n",
-    "    \n",
-    "    RD_diff_i.append(np.abs(Omegah2-WKB.relic(T_osc,theta_i))/Omegah2)\n",
-    "    \n",
-    "    theta_osc_approx=WKB.theta_osc(Tini,ratio_ini,Tosc,theta_i)\n",
-    "    RD_diff_osc.append(np.abs(Omegah2-WKB.relic(T_osc,theta_osc_approx))/Omegah2)\n",
-    "\n",
-    "    \n",
-    "RD_diff_i=np.array(RD_diff_i)\n",
-    "RD_diff_osc=np.array(RD_diff_osc)"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 6,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "application/javascript": [
-       "/* Put everything inside the global mpl namespace */\n",
-       "/* global mpl */\n",
-       "window.mpl = {};\n",
-       "\n",
-       "mpl.get_websocket_type = function () {\n",
-       "    if (typeof WebSocket !== 'undefined') {\n",
-       "        return WebSocket;\n",
-       "    } else if (typeof MozWebSocket !== 'undefined') {\n",
-       "        return MozWebSocket;\n",
-       "    } else {\n",
-       "        alert(\n",
-       "            'Your browser does not have WebSocket support. ' +\n",
-       "                'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
-       "                'Firefox 4 and 5 are also supported but you ' +\n",
-       "                'have to enable WebSockets in about:config.'\n",
-       "        );\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n",
-       "    this.id = figure_id;\n",
-       "\n",
-       "    this.ws = websocket;\n",
-       "\n",
-       "    this.supports_binary = this.ws.binaryType !== undefined;\n",
-       "\n",
-       "    if (!this.supports_binary) {\n",
-       "        var warnings = document.getElementById('mpl-warnings');\n",
-       "        if (warnings) {\n",
-       "            warnings.style.display = 'block';\n",
-       "            warnings.textContent =\n",
-       "                'This browser does not support binary websocket messages. ' +\n",
-       "                'Performance may be slow.';\n",
-       "        }\n",
-       "    }\n",
-       "\n",
-       "    this.imageObj = new Image();\n",
-       "\n",
-       "    this.context = undefined;\n",
-       "    this.message = undefined;\n",
-       "    this.canvas = undefined;\n",
-       "    this.rubberband_canvas = undefined;\n",
-       "    this.rubberband_context = undefined;\n",
-       "    this.format_dropdown = undefined;\n",
-       "\n",
-       "    this.image_mode = 'full';\n",
-       "\n",
-       "    this.root = document.createElement('div');\n",
-       "    this.root.setAttribute('style', 'display: inline-block');\n",
-       "    this._root_extra_style(this.root);\n",
-       "\n",
-       "    parent_element.appendChild(this.root);\n",
-       "\n",
-       "    this._init_header(this);\n",
-       "    this._init_canvas(this);\n",
-       "    this._init_toolbar(this);\n",
-       "\n",
-       "    var fig = this;\n",
-       "\n",
-       "    this.waiting = false;\n",
-       "\n",
-       "    this.ws.onopen = function () {\n",
-       "        fig.send_message('supports_binary', { value: fig.supports_binary });\n",
-       "        fig.send_message('send_image_mode', {});\n",
-       "        if (fig.ratio !== 1) {\n",
-       "            fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n",
-       "        }\n",
-       "        fig.send_message('refresh', {});\n",
-       "    };\n",
-       "\n",
-       "    this.imageObj.onload = function () {\n",
-       "        if (fig.image_mode === 'full') {\n",
-       "            // Full images could contain transparency (where diff images\n",
-       "            // almost always do), so we need to clear the canvas so that\n",
-       "            // there is no ghosting.\n",
-       "            fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
-       "        }\n",
-       "        fig.context.drawImage(fig.imageObj, 0, 0);\n",
-       "    };\n",
-       "\n",
-       "    this.imageObj.onunload = function () {\n",
-       "        fig.ws.close();\n",
-       "    };\n",
-       "\n",
-       "    this.ws.onmessage = this._make_on_message_function(this);\n",
-       "\n",
-       "    this.ondownload = ondownload;\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._init_header = function () {\n",
-       "    var titlebar = document.createElement('div');\n",
-       "    titlebar.classList =\n",
-       "        'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n",
-       "    var titletext = document.createElement('div');\n",
-       "    titletext.classList = 'ui-dialog-title';\n",
-       "    titletext.setAttribute(\n",
-       "        'style',\n",
-       "        'width: 100%; text-align: center; padding: 3px;'\n",
-       "    );\n",
-       "    titlebar.appendChild(titletext);\n",
-       "    this.root.appendChild(titlebar);\n",
-       "    this.header = titletext;\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n",
-       "\n",
-       "mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n",
-       "\n",
-       "mpl.figure.prototype._init_canvas = function () {\n",
-       "    var fig = this;\n",
-       "\n",
-       "    var canvas_div = (this.canvas_div = document.createElement('div'));\n",
-       "    canvas_div.setAttribute(\n",
-       "        'style',\n",
-       "        'border: 1px solid #ddd;' +\n",
-       "            'box-sizing: content-box;' +\n",
-       "            'clear: both;' +\n",
-       "            'min-height: 1px;' +\n",
-       "            'min-width: 1px;' +\n",
-       "            'outline: 0;' +\n",
-       "            'overflow: hidden;' +\n",
-       "            'position: relative;' +\n",
-       "            'resize: both;'\n",
-       "    );\n",
-       "\n",
-       "    function on_keyboard_event_closure(name) {\n",
-       "        return function (event) {\n",
-       "            return fig.key_event(event, name);\n",
-       "        };\n",
-       "    }\n",
-       "\n",
-       "    canvas_div.addEventListener(\n",
-       "        'keydown',\n",
-       "        on_keyboard_event_closure('key_press')\n",
-       "    );\n",
-       "    canvas_div.addEventListener(\n",
-       "        'keyup',\n",
-       "        on_keyboard_event_closure('key_release')\n",
-       "    );\n",
-       "\n",
-       "    this._canvas_extra_style(canvas_div);\n",
-       "    this.root.appendChild(canvas_div);\n",
-       "\n",
-       "    var canvas = (this.canvas = document.createElement('canvas'));\n",
-       "    canvas.classList.add('mpl-canvas');\n",
-       "    canvas.setAttribute('style', 'box-sizing: content-box;');\n",
-       "\n",
-       "    this.context = canvas.getContext('2d');\n",
-       "\n",
-       "    var backingStore =\n",
-       "        this.context.backingStorePixelRatio ||\n",
-       "        this.context.webkitBackingStorePixelRatio ||\n",
-       "        this.context.mozBackingStorePixelRatio ||\n",
-       "        this.context.msBackingStorePixelRatio ||\n",
-       "        this.context.oBackingStorePixelRatio ||\n",
-       "        this.context.backingStorePixelRatio ||\n",
-       "        1;\n",
-       "\n",
-       "    this.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
-       "\n",
-       "    var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n",
-       "        'canvas'\n",
-       "    ));\n",
-       "    rubberband_canvas.setAttribute(\n",
-       "        'style',\n",
-       "        'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n",
-       "    );\n",
-       "\n",
-       "    // Apply a ponyfill if ResizeObserver is not implemented by browser.\n",
-       "    if (this.ResizeObserver === undefined) {\n",
-       "        if (window.ResizeObserver !== undefined) {\n",
-       "            this.ResizeObserver = window.ResizeObserver;\n",
-       "        } else {\n",
-       "            var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n",
-       "            this.ResizeObserver = obs.ResizeObserver;\n",
-       "        }\n",
-       "    }\n",
-       "\n",
-       "    this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n",
-       "        var nentries = entries.length;\n",
-       "        for (var i = 0; i < nentries; i++) {\n",
-       "            var entry = entries[i];\n",
-       "            var width, height;\n",
-       "            if (entry.contentBoxSize) {\n",
-       "                if (entry.contentBoxSize instanceof Array) {\n",
-       "                    // Chrome 84 implements new version of spec.\n",
-       "                    width = entry.contentBoxSize[0].inlineSize;\n",
-       "                    height = entry.contentBoxSize[0].blockSize;\n",
-       "                } else {\n",
-       "                    // Firefox implements old version of spec.\n",
-       "                    width = entry.contentBoxSize.inlineSize;\n",
-       "                    height = entry.contentBoxSize.blockSize;\n",
-       "                }\n",
-       "            } else {\n",
-       "                // Chrome <84 implements even older version of spec.\n",
-       "                width = entry.contentRect.width;\n",
-       "                height = entry.contentRect.height;\n",
-       "            }\n",
-       "\n",
-       "            // Keep the size of the canvas and rubber band canvas in sync with\n",
-       "            // the canvas container.\n",
-       "            if (entry.devicePixelContentBoxSize) {\n",
-       "                // Chrome 84 implements new version of spec.\n",
-       "                canvas.setAttribute(\n",
-       "                    'width',\n",
-       "                    entry.devicePixelContentBoxSize[0].inlineSize\n",
-       "                );\n",
-       "                canvas.setAttribute(\n",
-       "                    'height',\n",
-       "                    entry.devicePixelContentBoxSize[0].blockSize\n",
-       "                );\n",
-       "            } else {\n",
-       "                canvas.setAttribute('width', width * fig.ratio);\n",
-       "                canvas.setAttribute('height', height * fig.ratio);\n",
-       "            }\n",
-       "            canvas.setAttribute(\n",
-       "                'style',\n",
-       "                'width: ' + width + 'px; height: ' + height + 'px;'\n",
-       "            );\n",
-       "\n",
-       "            rubberband_canvas.setAttribute('width', width);\n",
-       "            rubberband_canvas.setAttribute('height', height);\n",
-       "\n",
-       "            // And update the size in Python. We ignore the initial 0/0 size\n",
-       "            // that occurs as the element is placed into the DOM, which should\n",
-       "            // otherwise not happen due to the minimum size styling.\n",
-       "            if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n",
-       "                fig.request_resize(width, height);\n",
-       "            }\n",
-       "        }\n",
-       "    });\n",
-       "    this.resizeObserverInstance.observe(canvas_div);\n",
-       "\n",
-       "    function on_mouse_event_closure(name) {\n",
-       "        return function (event) {\n",
-       "            return fig.mouse_event(event, name);\n",
-       "        };\n",
-       "    }\n",
-       "\n",
-       "    rubberband_canvas.addEventListener(\n",
-       "        'mousedown',\n",
-       "        on_mouse_event_closure('button_press')\n",
-       "    );\n",
-       "    rubberband_canvas.addEventListener(\n",
-       "        'mouseup',\n",
-       "        on_mouse_event_closure('button_release')\n",
-       "    );\n",
-       "    // Throttle sequential mouse events to 1 every 20ms.\n",
-       "    rubberband_canvas.addEventListener(\n",
-       "        'mousemove',\n",
-       "        on_mouse_event_closure('motion_notify')\n",
-       "    );\n",
-       "\n",
-       "    rubberband_canvas.addEventListener(\n",
-       "        'mouseenter',\n",
-       "        on_mouse_event_closure('figure_enter')\n",
-       "    );\n",
-       "    rubberband_canvas.addEventListener(\n",
-       "        'mouseleave',\n",
-       "        on_mouse_event_closure('figure_leave')\n",
-       "    );\n",
-       "\n",
-       "    canvas_div.addEventListener('wheel', function (event) {\n",
-       "        if (event.deltaY < 0) {\n",
-       "            event.step = 1;\n",
-       "        } else {\n",
-       "            event.step = -1;\n",
-       "        }\n",
-       "        on_mouse_event_closure('scroll')(event);\n",
-       "    });\n",
-       "\n",
-       "    canvas_div.appendChild(canvas);\n",
-       "    canvas_div.appendChild(rubberband_canvas);\n",
-       "\n",
-       "    this.rubberband_context = rubberband_canvas.getContext('2d');\n",
-       "    this.rubberband_context.strokeStyle = '#000000';\n",
-       "\n",
-       "    this._resize_canvas = function (width, height, forward) {\n",
-       "        if (forward) {\n",
-       "            canvas_div.style.width = width + 'px';\n",
-       "            canvas_div.style.height = height + 'px';\n",
-       "        }\n",
-       "    };\n",
-       "\n",
-       "    // Disable right mouse context menu.\n",
-       "    this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n",
-       "        event.preventDefault();\n",
-       "        return false;\n",
-       "    });\n",
-       "\n",
-       "    function set_focus() {\n",
-       "        canvas.focus();\n",
-       "        canvas_div.focus();\n",
-       "    }\n",
-       "\n",
-       "    window.setTimeout(set_focus, 100);\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._init_toolbar = function () {\n",
-       "    var fig = this;\n",
-       "\n",
-       "    var toolbar = document.createElement('div');\n",
-       "    toolbar.classList = 'mpl-toolbar';\n",
-       "    this.root.appendChild(toolbar);\n",
-       "\n",
-       "    function on_click_closure(name) {\n",
-       "        return function (_event) {\n",
-       "            return fig.toolbar_button_onclick(name);\n",
-       "        };\n",
-       "    }\n",
-       "\n",
-       "    function on_mouseover_closure(tooltip) {\n",
-       "        return function (event) {\n",
-       "            if (!event.currentTarget.disabled) {\n",
-       "                return fig.toolbar_button_onmouseover(tooltip);\n",
-       "            }\n",
-       "        };\n",
-       "    }\n",
-       "\n",
-       "    fig.buttons = {};\n",
-       "    var buttonGroup = document.createElement('div');\n",
-       "    buttonGroup.classList = 'mpl-button-group';\n",
-       "    for (var toolbar_ind in mpl.toolbar_items) {\n",
-       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
-       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
-       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
-       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
-       "\n",
-       "        if (!name) {\n",
-       "            /* Instead of a spacer, we start a new button group. */\n",
-       "            if (buttonGroup.hasChildNodes()) {\n",
-       "                toolbar.appendChild(buttonGroup);\n",
-       "            }\n",
-       "            buttonGroup = document.createElement('div');\n",
-       "            buttonGroup.classList = 'mpl-button-group';\n",
-       "            continue;\n",
-       "        }\n",
-       "\n",
-       "        var button = (fig.buttons[name] = document.createElement('button'));\n",
-       "        button.classList = 'mpl-widget';\n",
-       "        button.setAttribute('role', 'button');\n",
-       "        button.setAttribute('aria-disabled', 'false');\n",
-       "        button.addEventListener('click', on_click_closure(method_name));\n",
-       "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
-       "\n",
-       "        var icon_img = document.createElement('img');\n",
-       "        icon_img.src = '_images/' + image + '.png';\n",
-       "        icon_img.srcset = '_images/' + image + '_large.png 2x';\n",
-       "        icon_img.alt = tooltip;\n",
-       "        button.appendChild(icon_img);\n",
-       "\n",
-       "        buttonGroup.appendChild(button);\n",
-       "    }\n",
-       "\n",
-       "    if (buttonGroup.hasChildNodes()) {\n",
-       "        toolbar.appendChild(buttonGroup);\n",
-       "    }\n",
-       "\n",
-       "    var fmt_picker = document.createElement('select');\n",
-       "    fmt_picker.classList = 'mpl-widget';\n",
-       "    toolbar.appendChild(fmt_picker);\n",
-       "    this.format_dropdown = fmt_picker;\n",
-       "\n",
-       "    for (var ind in mpl.extensions) {\n",
-       "        var fmt = mpl.extensions[ind];\n",
-       "        var option = document.createElement('option');\n",
-       "        option.selected = fmt === mpl.default_extension;\n",
-       "        option.innerHTML = fmt;\n",
-       "        fmt_picker.appendChild(option);\n",
-       "    }\n",
-       "\n",
-       "    var status_bar = document.createElement('span');\n",
-       "    status_bar.classList = 'mpl-message';\n",
-       "    toolbar.appendChild(status_bar);\n",
-       "    this.message = status_bar;\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n",
-       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
-       "    // which will in turn request a refresh of the image.\n",
-       "    this.send_message('resize', { width: x_pixels, height: y_pixels });\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.send_message = function (type, properties) {\n",
-       "    properties['type'] = type;\n",
-       "    properties['figure_id'] = this.id;\n",
-       "    this.ws.send(JSON.stringify(properties));\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.send_draw_message = function () {\n",
-       "    if (!this.waiting) {\n",
-       "        this.waiting = true;\n",
-       "        this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
-       "    var format_dropdown = fig.format_dropdown;\n",
-       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
-       "    fig.ondownload(fig, format);\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_resize = function (fig, msg) {\n",
-       "    var size = msg['size'];\n",
-       "    if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n",
-       "        fig._resize_canvas(size[0], size[1], msg['forward']);\n",
-       "        fig.send_message('refresh', {});\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_rubberband = function (fig, msg) {\n",
-       "    var x0 = msg['x0'] / fig.ratio;\n",
-       "    var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n",
-       "    var x1 = msg['x1'] / fig.ratio;\n",
-       "    var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n",
-       "    x0 = Math.floor(x0) + 0.5;\n",
-       "    y0 = Math.floor(y0) + 0.5;\n",
-       "    x1 = Math.floor(x1) + 0.5;\n",
-       "    y1 = Math.floor(y1) + 0.5;\n",
-       "    var min_x = Math.min(x0, x1);\n",
-       "    var min_y = Math.min(y0, y1);\n",
-       "    var width = Math.abs(x1 - x0);\n",
-       "    var height = Math.abs(y1 - y0);\n",
-       "\n",
-       "    fig.rubberband_context.clearRect(\n",
-       "        0,\n",
-       "        0,\n",
-       "        fig.canvas.width / fig.ratio,\n",
-       "        fig.canvas.height / fig.ratio\n",
-       "    );\n",
-       "\n",
-       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_figure_label = function (fig, msg) {\n",
-       "    // Updates the figure title.\n",
-       "    fig.header.textContent = msg['label'];\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_cursor = function (fig, msg) {\n",
-       "    var cursor = msg['cursor'];\n",
-       "    switch (cursor) {\n",
-       "        case 0:\n",
-       "            cursor = 'pointer';\n",
-       "            break;\n",
-       "        case 1:\n",
-       "            cursor = 'default';\n",
-       "            break;\n",
-       "        case 2:\n",
-       "            cursor = 'crosshair';\n",
-       "            break;\n",
-       "        case 3:\n",
-       "            cursor = 'move';\n",
-       "            break;\n",
-       "    }\n",
-       "    fig.rubberband_canvas.style.cursor = cursor;\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_message = function (fig, msg) {\n",
-       "    fig.message.textContent = msg['message'];\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_draw = function (fig, _msg) {\n",
-       "    // Request the server to send over a new figure.\n",
-       "    fig.send_draw_message();\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_image_mode = function (fig, msg) {\n",
-       "    fig.image_mode = msg['mode'];\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n",
-       "    for (var key in msg) {\n",
-       "        if (!(key in fig.buttons)) {\n",
-       "            continue;\n",
-       "        }\n",
-       "        fig.buttons[key].disabled = !msg[key];\n",
-       "        fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n",
-       "    if (msg['mode'] === 'PAN') {\n",
-       "        fig.buttons['Pan'].classList.add('active');\n",
-       "        fig.buttons['Zoom'].classList.remove('active');\n",
-       "    } else if (msg['mode'] === 'ZOOM') {\n",
-       "        fig.buttons['Pan'].classList.remove('active');\n",
-       "        fig.buttons['Zoom'].classList.add('active');\n",
-       "    } else {\n",
-       "        fig.buttons['Pan'].classList.remove('active');\n",
-       "        fig.buttons['Zoom'].classList.remove('active');\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.updated_canvas_event = function () {\n",
-       "    // Called whenever the canvas gets updated.\n",
-       "    this.send_message('ack', {});\n",
-       "};\n",
-       "\n",
-       "// A function to construct a web socket function for onmessage handling.\n",
-       "// Called in the figure constructor.\n",
-       "mpl.figure.prototype._make_on_message_function = function (fig) {\n",
-       "    return function socket_on_message(evt) {\n",
-       "        if (evt.data instanceof Blob) {\n",
-       "            /* FIXME: We get \"Resource interpreted as Image but\n",
-       "             * transferred with MIME type text/plain:\" errors on\n",
-       "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
-       "             * to be part of the websocket stream */\n",
-       "            evt.data.type = 'image/png';\n",
-       "\n",
-       "            /* Free the memory for the previous frames */\n",
-       "            if (fig.imageObj.src) {\n",
-       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
-       "                    fig.imageObj.src\n",
-       "                );\n",
-       "            }\n",
-       "\n",
-       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
-       "                evt.data\n",
-       "            );\n",
-       "            fig.updated_canvas_event();\n",
-       "            fig.waiting = false;\n",
-       "            return;\n",
-       "        } else if (\n",
-       "            typeof evt.data === 'string' &&\n",
-       "            evt.data.slice(0, 21) === 'data:image/png;base64'\n",
-       "        ) {\n",
-       "            fig.imageObj.src = evt.data;\n",
-       "            fig.updated_canvas_event();\n",
-       "            fig.waiting = false;\n",
-       "            return;\n",
-       "        }\n",
-       "\n",
-       "        var msg = JSON.parse(evt.data);\n",
-       "        var msg_type = msg['type'];\n",
-       "\n",
-       "        // Call the  \"handle_{type}\" callback, which takes\n",
-       "        // the figure and JSON message as its only arguments.\n",
-       "        try {\n",
-       "            var callback = fig['handle_' + msg_type];\n",
-       "        } catch (e) {\n",
-       "            console.log(\n",
-       "                \"No handler for the '\" + msg_type + \"' message type: \",\n",
-       "                msg\n",
-       "            );\n",
-       "            return;\n",
-       "        }\n",
-       "\n",
-       "        if (callback) {\n",
-       "            try {\n",
-       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
-       "                callback(fig, msg);\n",
-       "            } catch (e) {\n",
-       "                console.log(\n",
-       "                    \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n",
-       "                    e,\n",
-       "                    e.stack,\n",
-       "                    msg\n",
-       "                );\n",
-       "            }\n",
-       "        }\n",
-       "    };\n",
-       "};\n",
-       "\n",
-       "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
-       "mpl.findpos = function (e) {\n",
-       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
-       "    var targ;\n",
-       "    if (!e) {\n",
-       "        e = window.event;\n",
-       "    }\n",
-       "    if (e.target) {\n",
-       "        targ = e.target;\n",
-       "    } else if (e.srcElement) {\n",
-       "        targ = e.srcElement;\n",
-       "    }\n",
-       "    if (targ.nodeType === 3) {\n",
-       "        // defeat Safari bug\n",
-       "        targ = targ.parentNode;\n",
-       "    }\n",
-       "\n",
-       "    // pageX,Y are the mouse positions relative to the document\n",
-       "    var boundingRect = targ.getBoundingClientRect();\n",
-       "    var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n",
-       "    var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n",
-       "\n",
-       "    return { x: x, y: y };\n",
-       "};\n",
-       "\n",
-       "/*\n",
-       " * return a copy of an object with only non-object keys\n",
-       " * we need this to avoid circular references\n",
-       " * http://stackoverflow.com/a/24161582/3208463\n",
-       " */\n",
-       "function simpleKeys(original) {\n",
-       "    return Object.keys(original).reduce(function (obj, key) {\n",
-       "        if (typeof original[key] !== 'object') {\n",
-       "            obj[key] = original[key];\n",
-       "        }\n",
-       "        return obj;\n",
-       "    }, {});\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.mouse_event = function (event, name) {\n",
-       "    var canvas_pos = mpl.findpos(event);\n",
-       "\n",
-       "    if (name === 'button_press') {\n",
-       "        this.canvas.focus();\n",
-       "        this.canvas_div.focus();\n",
-       "    }\n",
-       "\n",
-       "    var x = canvas_pos.x * this.ratio;\n",
-       "    var y = canvas_pos.y * this.ratio;\n",
-       "\n",
-       "    this.send_message(name, {\n",
-       "        x: x,\n",
-       "        y: y,\n",
-       "        button: event.button,\n",
-       "        step: event.step,\n",
-       "        guiEvent: simpleKeys(event),\n",
-       "    });\n",
-       "\n",
-       "    /* This prevents the web browser from automatically changing to\n",
-       "     * the text insertion cursor when the button is pressed.  We want\n",
-       "     * to control all of the cursor setting manually through the\n",
-       "     * 'cursor' event from matplotlib */\n",
-       "    event.preventDefault();\n",
-       "    return false;\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._key_event_extra = function (_event, _name) {\n",
-       "    // Handle any extra behaviour associated with a key event\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.key_event = function (event, name) {\n",
-       "    // Prevent repeat events\n",
-       "    if (name === 'key_press') {\n",
-       "        if (event.which === this._key) {\n",
-       "            return;\n",
-       "        } else {\n",
-       "            this._key = event.which;\n",
-       "        }\n",
-       "    }\n",
-       "    if (name === 'key_release') {\n",
-       "        this._key = null;\n",
-       "    }\n",
-       "\n",
-       "    var value = '';\n",
-       "    if (event.ctrlKey && event.which !== 17) {\n",
-       "        value += 'ctrl+';\n",
-       "    }\n",
-       "    if (event.altKey && event.which !== 18) {\n",
-       "        value += 'alt+';\n",
-       "    }\n",
-       "    if (event.shiftKey && event.which !== 16) {\n",
-       "        value += 'shift+';\n",
-       "    }\n",
-       "\n",
-       "    value += 'k';\n",
-       "    value += event.which.toString();\n",
-       "\n",
-       "    this._key_event_extra(event, name);\n",
-       "\n",
-       "    this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n",
-       "    return false;\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.toolbar_button_onclick = function (name) {\n",
-       "    if (name === 'download') {\n",
-       "        this.handle_save(this, null);\n",
-       "    } else {\n",
-       "        this.send_message('toolbar_button', { name: name });\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n",
-       "    this.message.textContent = tooltip;\n",
-       "};\n",
-       "\n",
-       "///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n",
-       "// prettier-ignore\n",
-       "var _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\n",
-       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
-       "\n",
-       "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
-       "\n",
-       "mpl.default_extension = \"png\";/* global mpl */\n",
-       "\n",
-       "var comm_websocket_adapter = function (comm) {\n",
-       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
-       "    // object with the appropriate methods. Currently this is a non binary\n",
-       "    // socket, so there is still some room for performance tuning.\n",
-       "    var ws = {};\n",
-       "\n",
-       "    ws.close = function () {\n",
-       "        comm.close();\n",
-       "    };\n",
-       "    ws.send = function (m) {\n",
-       "        //console.log('sending', m);\n",
-       "        comm.send(m);\n",
-       "    };\n",
-       "    // Register the callback with on_msg.\n",
-       "    comm.on_msg(function (msg) {\n",
-       "        //console.log('receiving', msg['content']['data'], msg);\n",
-       "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
-       "        ws.onmessage(msg['content']['data']);\n",
-       "    });\n",
-       "    return ws;\n",
-       "};\n",
-       "\n",
-       "mpl.mpl_figure_comm = function (comm, msg) {\n",
-       "    // This is the function which gets called when the mpl process\n",
-       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
-       "\n",
-       "    var id = msg.content.data.id;\n",
-       "    // Get hold of the div created by the display call when the Comm\n",
-       "    // socket was opened in Python.\n",
-       "    var element = document.getElementById(id);\n",
-       "    var ws_proxy = comm_websocket_adapter(comm);\n",
-       "\n",
-       "    function ondownload(figure, _format) {\n",
-       "        window.open(figure.canvas.toDataURL());\n",
-       "    }\n",
-       "\n",
-       "    var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n",
-       "\n",
-       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
-       "    // web socket which is closed, not our websocket->open comm proxy.\n",
-       "    ws_proxy.onopen();\n",
-       "\n",
-       "    fig.parent_element = element;\n",
-       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
-       "    if (!fig.cell_info) {\n",
-       "        console.error('Failed to find cell for figure', id, fig);\n",
-       "        return;\n",
-       "    }\n",
-       "    fig.cell_info[0].output_area.element.on(\n",
-       "        'cleared',\n",
-       "        { fig: fig },\n",
-       "        fig._remove_fig_handler\n",
-       "    );\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_close = function (fig, msg) {\n",
-       "    var width = fig.canvas.width / fig.ratio;\n",
-       "    fig.cell_info[0].output_area.element.off(\n",
-       "        'cleared',\n",
-       "        fig._remove_fig_handler\n",
-       "    );\n",
-       "    fig.resizeObserverInstance.unobserve(fig.canvas_div);\n",
-       "\n",
-       "    // Update the output cell to use the data from the current canvas.\n",
-       "    fig.push_to_output();\n",
-       "    var dataURL = fig.canvas.toDataURL();\n",
-       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
-       "    // the notebook keyboard shortcuts fail.\n",
-       "    IPython.keyboard_manager.enable();\n",
-       "    fig.parent_element.innerHTML =\n",
-       "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
-       "    fig.close_ws(fig, msg);\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.close_ws = function (fig, msg) {\n",
-       "    fig.send_message('closing', msg);\n",
-       "    // fig.ws.close()\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.push_to_output = function (_remove_interactive) {\n",
-       "    // Turn the data on the canvas into data in the output cell.\n",
-       "    var width = this.canvas.width / this.ratio;\n",
-       "    var dataURL = this.canvas.toDataURL();\n",
-       "    this.cell_info[1]['text/html'] =\n",
-       "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.updated_canvas_event = function () {\n",
-       "    // Tell IPython that the notebook contents must change.\n",
-       "    IPython.notebook.set_dirty(true);\n",
-       "    this.send_message('ack', {});\n",
-       "    var fig = this;\n",
-       "    // Wait a second, then push the new image to the DOM so\n",
-       "    // that it is saved nicely (might be nice to debounce this).\n",
-       "    setTimeout(function () {\n",
-       "        fig.push_to_output();\n",
-       "    }, 1000);\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._init_toolbar = function () {\n",
-       "    var fig = this;\n",
-       "\n",
-       "    var toolbar = document.createElement('div');\n",
-       "    toolbar.classList = 'btn-toolbar';\n",
-       "    this.root.appendChild(toolbar);\n",
-       "\n",
-       "    function on_click_closure(name) {\n",
-       "        return function (_event) {\n",
-       "            return fig.toolbar_button_onclick(name);\n",
-       "        };\n",
-       "    }\n",
-       "\n",
-       "    function on_mouseover_closure(tooltip) {\n",
-       "        return function (event) {\n",
-       "            if (!event.currentTarget.disabled) {\n",
-       "                return fig.toolbar_button_onmouseover(tooltip);\n",
-       "            }\n",
-       "        };\n",
-       "    }\n",
-       "\n",
-       "    fig.buttons = {};\n",
-       "    var buttonGroup = document.createElement('div');\n",
-       "    buttonGroup.classList = 'btn-group';\n",
-       "    var button;\n",
-       "    for (var toolbar_ind in mpl.toolbar_items) {\n",
-       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
-       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
-       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
-       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
-       "\n",
-       "        if (!name) {\n",
-       "            /* Instead of a spacer, we start a new button group. */\n",
-       "            if (buttonGroup.hasChildNodes()) {\n",
-       "                toolbar.appendChild(buttonGroup);\n",
-       "            }\n",
-       "            buttonGroup = document.createElement('div');\n",
-       "            buttonGroup.classList = 'btn-group';\n",
-       "            continue;\n",
-       "        }\n",
-       "\n",
-       "        button = fig.buttons[name] = document.createElement('button');\n",
-       "        button.classList = 'btn btn-default';\n",
-       "        button.href = '#';\n",
-       "        button.title = name;\n",
-       "        button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n",
-       "        button.addEventListener('click', on_click_closure(method_name));\n",
-       "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
-       "        buttonGroup.appendChild(button);\n",
-       "    }\n",
-       "\n",
-       "    if (buttonGroup.hasChildNodes()) {\n",
-       "        toolbar.appendChild(buttonGroup);\n",
-       "    }\n",
-       "\n",
-       "    // Add the status bar.\n",
-       "    var status_bar = document.createElement('span');\n",
-       "    status_bar.classList = 'mpl-message pull-right';\n",
-       "    toolbar.appendChild(status_bar);\n",
-       "    this.message = status_bar;\n",
-       "\n",
-       "    // Add the close button to the window.\n",
-       "    var buttongrp = document.createElement('div');\n",
-       "    buttongrp.classList = 'btn-group inline pull-right';\n",
-       "    button = document.createElement('button');\n",
-       "    button.classList = 'btn btn-mini btn-primary';\n",
-       "    button.href = '#';\n",
-       "    button.title = 'Stop Interaction';\n",
-       "    button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n",
-       "    button.addEventListener('click', function (_evt) {\n",
-       "        fig.handle_close(fig, {});\n",
-       "    });\n",
-       "    button.addEventListener(\n",
-       "        'mouseover',\n",
-       "        on_mouseover_closure('Stop Interaction')\n",
-       "    );\n",
-       "    buttongrp.appendChild(button);\n",
-       "    var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n",
-       "    titlebar.insertBefore(buttongrp, titlebar.firstChild);\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._remove_fig_handler = function (event) {\n",
-       "    var fig = event.data.fig;\n",
-       "    if (event.target !== this) {\n",
-       "        // Ignore bubbled events from children.\n",
-       "        return;\n",
-       "    }\n",
-       "    fig.close_ws(fig, {});\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._root_extra_style = function (el) {\n",
-       "    el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._canvas_extra_style = function (el) {\n",
-       "    // this is important to make the div 'focusable\n",
-       "    el.setAttribute('tabindex', 0);\n",
-       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
-       "    // off when our div gets focus\n",
-       "\n",
-       "    // location in version 3\n",
-       "    if (IPython.notebook.keyboard_manager) {\n",
-       "        IPython.notebook.keyboard_manager.register_events(el);\n",
-       "    } else {\n",
-       "        // location in version 2\n",
-       "        IPython.keyboard_manager.register_events(el);\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._key_event_extra = function (event, _name) {\n",
-       "    var manager = IPython.notebook.keyboard_manager;\n",
-       "    if (!manager) {\n",
-       "        manager = IPython.keyboard_manager;\n",
-       "    }\n",
-       "\n",
-       "    // Check for shift+enter\n",
-       "    if (event.shiftKey && event.which === 13) {\n",
-       "        this.canvas_div.blur();\n",
-       "        // select the cell after this one\n",
-       "        var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
-       "        IPython.notebook.select(index + 1);\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
-       "    fig.ondownload(fig, null);\n",
-       "};\n",
-       "\n",
-       "mpl.find_output_cell = function (html_output) {\n",
-       "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
-       "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
-       "    // IPython event is triggered only after the cells have been serialised, which for\n",
-       "    // our purposes (turning an active figure into a static one), is too late.\n",
-       "    var cells = IPython.notebook.get_cells();\n",
-       "    var ncells = cells.length;\n",
-       "    for (var i = 0; i < ncells; i++) {\n",
-       "        var cell = cells[i];\n",
-       "        if (cell.cell_type === 'code') {\n",
-       "            for (var j = 0; j < cell.output_area.outputs.length; j++) {\n",
-       "                var data = cell.output_area.outputs[j];\n",
-       "                if (data.data) {\n",
-       "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
-       "                    data = data.data;\n",
-       "                }\n",
-       "                if (data['text/html'] === html_output) {\n",
-       "                    return [cell, data, j];\n",
-       "                }\n",
-       "            }\n",
-       "        }\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "// Register the function which deals with the matplotlib target/channel.\n",
-       "// The kernel may be null if the page has been refreshed.\n",
-       "if (IPython.notebook.kernel !== null) {\n",
-       "    IPython.notebook.kernel.comm_manager.register_target(\n",
-       "        'matplotlib',\n",
-       "        mpl.mpl_figure_comm\n",
-       "    );\n",
-       "}\n"
-      ],
-      "text/plain": [
-       "<IPython.core.display.Javascript object>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    },
-    {
-     "data": {
-      "text/html": [
-       "<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4QAAAGQCAYAAAD2lq6fAAAgAElEQVR4nOzdd3QU1d8G8JtGEkJIpEQEpAgoBAQFQpFehB8gvfcqXaqCSAlVkK4IUkQEQZpKf4EAgoCCgKAEkN7T26buZss87x8xQ4ZsGklmNuT5nDPnmN07s3c3ufJ9du7cESAiIiIiIqJ8SWjdASIiIiIiItIGAyEREREREVE+xUBIRERERESUTzEQEhERERER5VMMhERERERERPkUAyEREREREVE+xUBIRERERESUTzEQEhERERER5VMMhERERERERPkUAyEREREREVE+xUBIRERERESUTzEQEhERERER5VMMhERERERERPkUA2EeYrFYsH37dixZskTrrhARERER0UuAgTAPkCQJO3fuhLe3N4QQGDhwYJptExMTsWTJEvTo0QPjx49Hq1atMHv2bBiNRvU6TEREREREeQIDYR7g7++PO3fu4Ntvv003EBqNRrz//vuoW7cuDAYDACA+Ph7vvvsu2rRpA7PZrGKviYiIiIjI1jEQ5iEnT55MNxDOnj0bQgj4+fkpHj948CCEEFixYoUKvSQiIiIioryCgTAPSS8QGgwGeHp6ws3NLdWZQKPRCFdXV5QqVQoWi0Wl3hIRERERka1jIMxD0guEZ86cgRACderUsbpvrVq1IITAn3/+afV5g8GA6OhoeYuKisK9e/eg0+kUj3Pjxo0bN27cuHHjltubTqfDkydPeDJDBQyEeUh6gXDt2rUQQqBz585W9+3QoQOEENiwYYPV5319fSGE4MaNGzdu3Lhx48bNZrYnT57kZDlNVjAQ5iHpBcLPP/8cQgj069fP6r69e/eGEAKLFi2y+vzzZwgfP34sD0KtvyHixo0bN27cuHHjlr+2J0+eQAgBnU6Xk+U0WcFAmIekFwiXL1+ebiDs168fhBD4/PPPM/Va0dHREEIgOjo6O10mIiIiIsoy1qLqYSDMQ9ILhNu3b4cQAl26dLG6b5cuXSBE2lNGn8dBSERERERaYS2qHgbCPCS9QPjnn39CCIH69etb3bdevXoQIu1FZZ7HQUhEREREWmEtqh4GwjwkvUBoNptRvHhxFC5cGJIkpXquUKFCKF68eKZXauIgBB48eJDqwmZHR0eULFkS3bt3x8WLF1PtM3DgQEV7BwcHeHp6okqVKujTpw92796N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+/dj7969OHz4sKLt/v37sW7dOqxevRorV67E0qVLsXjxYixatAjLly9XtN24cSOmTp2KSZMmYdy4cRg9ejQ+/PBDDB48GJMnT0ZERETufCBENoq1qHoYCMkqDkIiIsppkiRBr9crfj506BB2796NzZs345tvvsGyZcuwYMECzJw5Exs3blTsP2DAAHTq1Alt27ZFy5Yt0aRJE9SvXx+1atXCwIEDFW3r1KmD119/HSVLloSXlxc8PDzg4uICOzs71KxZU9G2QoUKEEJY3d58801F27fffjvNtqVKlVK0rVevXpptPT09FW1btGiRZtuCBQvCYDDIbY8ePYrz58+nCrbZJUkSTCYTYmJiEBoaikePHuHWrVv4+++/cfXqVUXbkydP4pdffsHOnTuxdetWfP/999i4cSPWr1+PH374QdH2hx9+wMKFCzF//nzMnj0bM2fOxGeffYapU6di1qxZirYrVqzAiBEjMGzYMAwZMgSDBg3CgAED0K9fPwwYMEDRdvHixejRo4di69q1Kzp27Ih27drBYrHIbWfMmIFGjRqhVatW6NChA3r06IGBAwdixIgRGD9+PIxGo9z266+/RpcuXdCuXTu8//77aNasGRo3boyGDRuifv36inC+dOlS+Pj4oG7duqhfvz4aNGiARo0aoWHDhqhduzaCgoIUfXB3d0fFihUxatQo7N2716brLIvFgsTEROj1esTFxSE6Oho6nQ6SJKny+qxF1cNASFZxEBIRUUbi4+Nx69Yt3Lt3T37MaDRixowZGD16NHr27InmzZvj7bffRokSJeDo6Ihu3bopjuHo6JhmEGrevLmi7SuvvJJm23r16inalipVKs22VatWVbStXLkynJycUKBAAbi4uKBgwYJwc3ND4cKFU4XHTp06wdvbG9WrV8e7776LWrVqoU6dOqhXrx46dOigaPvJJ5+gY8eO6Nq1K3r27Im+fftiwIABGDRoEMaOHatou3r1akyaNAlTpkzB9OnT4evri/nz52PRokVYuXKlom2VKlXkUPnuu+/inXfeQfXq1VGtWjX07dtX0bZOnTooXbo0XnvtNRQvXhxFihSBh4cH3N3dUb9+fUXb9ILxW2+9pWibXjAuWbKkom1OBWMnJydF2w4dOqTZVgihCHm9e/dOt23KemfIkCHptg0MDJTbjhkzJt22d+7ckdtOmzYt1fOOjo5o1KgR5s2bh6ioKLnt7du3ce7cOfz66684ePAgdu/ejW3btuH777/H999/r/gcfvjhB8ycOVM+w/zRRx9h5MiRGDp0KIYMGaJoO3v2bDRr1gwNGzaEj48PqlWrhooVK6J06dIoVqwYTCaT3LZv375W39Orr76Krl274unTp3hRyV8ORUREIDY21mob1qLqYSAkqzgIiYgoWWJiItasWYMpU6agR48eqFOnDry8vOQCsUuXLnJbSZLg4OCQZoHcpEkTxbEbN26MRo0aoXXr1ujcuTP69OmDYcOGYezYsfj6668Vbb/99lusW7cO3333HbZu3Ypdu3Zh7969OHToEM6fP69oe/nyZVy8eBGXL1/G1atXcevWLTx8+BBBQUHQ6XS59lnltsTERHTu3BkeHh7ZDsZvv/22om2lSpUUzzs7O8PDwwMlSpRAgwYNFG379++P+vXro3HjxmjRogVatWqFtm3bon379hg8eLCi7bx58zB48GAMGzYMI0aMwJgxYzBu3DhMnDgRM2bMULTdsmUL5syZg/nz52PhwoX44osvsGTJEixbtixVMD548CBWrVql2L7++musW7cOGzduVJxBvXTpEnbv3o0ffvgB69evx1dffYUvvvgCc+bMwaeffor4+Hi57YkTJ7BmzRps3LgRP/zwA7Zv345du3bhp59+wp49e5CQkCC39ff3x4EDB7Bv3z7s2bMHP//8M3bv3o3du3fj4MGDirATEhKCW7duYd++fRgzZozi8y5QoADi4uLktg0aNEjz9+bm5qb4HP73v/+lG0pTntHr2rVrum1T9qF///5ptnN0dFR8ZuvXr8fs2bMxZ84cTJo0CUOHDkX37t3RqlUrdO7cWdHfpk2bws7OTj6WnZ0dqlWrhuHDh+P777+XQylrUfUwEJJVHIRERPlLSEgI/Pz8sGLFCgwdOhTz58+XnzObzXBycrJaGLq7u6NXr16KY02ZMgUzZ87EihUrsHXrVhw9ehSXL1/GkydPFFNG6cWZTCZcuHABhw8fxtGjR3Hs2DGcOHECly5dUrRLDsZXrlzB1atXcf36ddy8eRN37tzBkydPFG0jIiIQERGBhIQExXRLyj3379/H2rVrU02d7dmzJ8qXLw9vb2/UqlULDRs2RIsWLdCmTRt07dpV0Xb16tUYM2YMJkyYgE8++QSfffaZfIb5iy++UPwu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R0f+hHNRdRgISRebkIiIiK6XPn48rCLInD7d0P5FZ886v2Zaq5aHR0b+hnNRdRgISRebkIiIiK6Xs3QprCJIiYoytH/Bvn2wiiApPNyzAyO/w7moOgyEpItNSERERNcriI+HVQSXGzaEpmnl7p+/ebPzyaSdOikYHfkTzkXVYSAkXWxCIiIiup6WlwdrYCCsIrBfulTu/jnLlzvvKPbtq2B05E84F1WHgZB0sQmJiIhIz5WICMPrCma9+SasIkgbNUrByMifcC6qDgMh6WITEhERkZ604cNhFUHWG2+Uu2/G5MmwiiDjlVcUjIz8Ceei6jAQki42IREREenJfvttWEWQOnBgufsWh8fshQsVjIz8Ceei6jAQki42IREREemxbd/ufHJos2bl7psSFQWrCHI/+UTByMifcC6qDgMh6WITEhERkR5Haur/FptPT3e7b3K7ds7fG371laLRkb/gXFQdBkLSxSYkIiKisiSFh8MqAtvOnW73uxwaCqsICg4eVDQy8heci6rDQEi62IRERERUltQnn3T+NvCdd8rcR9M0WG+6CVYRFF24oHB05A84F1WHgZB0sQmJiIioLFmzZzuXkxg5ssx9HBkZrq+Wanl5CkdH/oBzUXUYCEkXm5CIiIjKkv/FF7CK4Mp995W5T9GZM7CKIDEkROHIyF9wLqoOAyHpYhMSERFRWewXLzrv/gUGQsvP190n5+OPnU8jbdFC8ejIH3Auqg4DIeliExIREVFZNE3D5dtucz4w5tChUu/bk5KQeMstzt8ZLlhgwgjJ13Euqg4DIeliExIREZE7Vx99FFYR5CxbVuq91GeegVUEye3aQSsqMmF05Os4F1WHgZB0sQmJiIjInYxXXoFVBOkvvlji9fwvv3R9nbTg8GGTRke+jnNRdRgISRebkIiIiNzJXbvWeRcwMtL1miMrC5fDwmAVQcaf/mTi6MjXcS6qDgMh6WITEhERkTuFP/3kfIporVrQ7HYAQMbEic4HyTRrBkdurskjJF/Guag6DISki01IRERE7mh2OxJr1XIuPH/qFAr27oU1IABWEeTHxZk9PPJxnIuqw0BIutiEREREVJ7krl1hFUHup5/iSkREuYvVExnFuag6DISki01IRERE5Ul/4QVYRXC5cWPn/23YEI6UFLOHRX6Ac1F1GAhJF5uQiIiIypOzdKnziaL/3XLX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kSo7p14gvHjxoivkrVy5stxzNGrUCCKCuLg412tvvfUWRASnT5+u0HiKj2vQoAFyc3OxadMmtG7dutzjGAiJiEgPAyEREfmNkydPQkTcPlylosp6qEzx2oAjRowo9xzh4eEQkRIPi5k3b16p14zIycnBbbfdBhHBu+++i0ceeQSLFy8u9zgGQiIi0sNASEREfmPt2rUQEXz++eel3ktISMD06dOxZs0aLF26FE2aNIHVai33nGUFwiVLlrie+nn+/Hm359ALhKtWrYKI4KWXXtI9Zt++fWXePZw9ezZEBLfddhvq1auH7Ozscj8HAyEREelhICQiIr8xZcoUiAguXbpU4vUTJ06gXbt2rvUCV61ahXvvvdfQOcsKhA6HAwMGDICIoH379khJSSnzHHqB8PLly6hRowYCAwPx1VdflRpv3759yzxf8VNFRQQTJ0409DkYCImISA8DIRER+Y0HH3wQYWFhJV4rLCzEfffdh7/97W+u115//XVMnjzZ0DnLCoQAYLfb8eqrr+Kmm25CkyZNsHz58hJP/8zPz8fq1athsVhw6623lnryaUxMDEQEFosF/fv3x4wZMzB06I63WuQAAAG2SURBVFCEhobixIkTbsc1ffp0BAQE4NSpU4Y+BwMhERHpYSAkIiK/Ub9+ffzhD38o8dratWsRFhYGu90OwHlnr2XLlm6Xi7iWu0BY7NKlS5gzZw5+97vf4fbbb0dYWBhatWqFli1bom/fvnj//feRmpqqe+xHH32EiIgI3HTTTQgLC8OIESNw9uzZcsd15coV9O/f39BnABgIiYhIHwMhERH5hV9++QUigjVr1pR4fcSIESVC4sqVKxEYGIjMzExD5zUSCH0BAyEREelhICQiIr+wYsUKhISElAp6Tz75JJ566ikAwHfffYeYmBjcd999OHLkCC5cuFDueRkIiYjInzEQEhGRT9I0DRs3bkRubi4A4Omnn8bLL79car+4uDjcdttt6NOnD7Zs2YItW7YgNDTU7YLy1xIR3HPPPVW20L1ZNm3axEBIRESlMBASEZFPOnr0KEQE69evx7lz53D33Xe7fdLnjerWrRu6deuG0aNHY/r06Vi6dGmVX8NTzp49i+nTp2PatGn4/e9/j27dupV4uA4REREDIRER+aT8/Hz06dMHzz33HMaMGVPmmn1ERERUtv8PwiSBqCnc2jkAAAAASUVORK5CYII=\" width=\"900\">"
-      ],
-      "text/plain": [
-       "<IPython.core.display.HTML object>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "if True:\n",
-    "    fig=plt.figure(figsize=(9,4))\n",
-    "    fig.subplots_adjust(bottom=0.15, left=0.15, top = 0.95, right=0.9,wspace=0.0,hspace=0.0)\n",
-    "    fig.suptitle('')\n",
-    "\n",
-    "    sub = fig.add_subplot(1,1,1)\n",
-    "\n",
-    "    sub.plot(RDDat[:,1],RD_diff_i,linestyle='-',c='xkcd:red',label=r\"RD\")\n",
-    "    sub.plot(MatterDat[:,1],Matter_diff_i,linestyle='--',c='xkcd:black',label=r\"Matter\")\n",
-    "#     sub.plot(KinationDat[:,1],Kination_diff_i,linestyle=':',c='xkcd:blue',label=r\"Kination\")\n",
-    "\n",
-    "    sub.set_xlabel(r'$f_a ~ [{\\rm GeV}]$')\n",
-    "    sub.set_ylabel(r'$\\dfrac{\\left|\\Omega h^2 - \\left(\\Omega h^2\\right)_{\\rm WKB}\\right|}{\\Omega h^2}$')\n",
-    "\n",
-    "    sub.legend(bbox_to_anchor=(0.01, 0.99),borderaxespad=0., \n",
-    "               borderpad=0.05,ncol=1,loc='upper left',fontsize=14,framealpha=0)\n",
-    "    #set major ticks\n",
-    "    _M_xticks=[ 10.**i for i in range(9,20) ]\n",
-    "    \n",
-    "    _M_yticks=[  10.**i for i in range(-2,2)  ]\n",
-    "\n",
-    "    #set major ticks that will not have a label\n",
-    "    _M_xticks_exception=[]\n",
-    "    _M_yticks_exception=[]\n",
-    "\n",
-    "    _m_xticks=[]\n",
-    "    _m_yticks=[]  \n",
-    "    ft=FT(_M_xticks,_M_yticks,\n",
-    "                 _M_xticks_exception,_M_yticks_exception,\n",
-    "                 _m_xticks,_m_yticks,\n",
-    "                 xmin=1e10,xmax=1e19,ymin=1e-2,ymax=1e1,xscale='log',yscale='log')\n",
-    "\n",
-    "    ft.format_ticks(plt,sub)    \n",
-    "\n",
-    "    plt.savefig('WKB_diff_i.pdf',bbox_inches='tight')\n",
-    "    fig.show()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 7,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "application/javascript": [
-       "/* Put everything inside the global mpl namespace */\n",
-       "/* global mpl */\n",
-       "window.mpl = {};\n",
-       "\n",
-       "mpl.get_websocket_type = function () {\n",
-       "    if (typeof WebSocket !== 'undefined') {\n",
-       "        return WebSocket;\n",
-       "    } else if (typeof MozWebSocket !== 'undefined') {\n",
-       "        return MozWebSocket;\n",
-       "    } else {\n",
-       "        alert(\n",
-       "            'Your browser does not have WebSocket support. ' +\n",
-       "                'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
-       "                'Firefox 4 and 5 are also supported but you ' +\n",
-       "                'have to enable WebSockets in about:config.'\n",
-       "        );\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n",
-       "    this.id = figure_id;\n",
-       "\n",
-       "    this.ws = websocket;\n",
-       "\n",
-       "    this.supports_binary = this.ws.binaryType !== undefined;\n",
-       "\n",
-       "    if (!this.supports_binary) {\n",
-       "        var warnings = document.getElementById('mpl-warnings');\n",
-       "        if (warnings) {\n",
-       "            warnings.style.display = 'block';\n",
-       "            warnings.textContent =\n",
-       "                'This browser does not support binary websocket messages. ' +\n",
-       "                'Performance may be slow.';\n",
-       "        }\n",
-       "    }\n",
-       "\n",
-       "    this.imageObj = new Image();\n",
-       "\n",
-       "    this.context = undefined;\n",
-       "    this.message = undefined;\n",
-       "    this.canvas = undefined;\n",
-       "    this.rubberband_canvas = undefined;\n",
-       "    this.rubberband_context = undefined;\n",
-       "    this.format_dropdown = undefined;\n",
-       "\n",
-       "    this.image_mode = 'full';\n",
-       "\n",
-       "    this.root = document.createElement('div');\n",
-       "    this.root.setAttribute('style', 'display: inline-block');\n",
-       "    this._root_extra_style(this.root);\n",
-       "\n",
-       "    parent_element.appendChild(this.root);\n",
-       "\n",
-       "    this._init_header(this);\n",
-       "    this._init_canvas(this);\n",
-       "    this._init_toolbar(this);\n",
-       "\n",
-       "    var fig = this;\n",
-       "\n",
-       "    this.waiting = false;\n",
-       "\n",
-       "    this.ws.onopen = function () {\n",
-       "        fig.send_message('supports_binary', { value: fig.supports_binary });\n",
-       "        fig.send_message('send_image_mode', {});\n",
-       "        if (fig.ratio !== 1) {\n",
-       "            fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n",
-       "        }\n",
-       "        fig.send_message('refresh', {});\n",
-       "    };\n",
-       "\n",
-       "    this.imageObj.onload = function () {\n",
-       "        if (fig.image_mode === 'full') {\n",
-       "            // Full images could contain transparency (where diff images\n",
-       "            // almost always do), so we need to clear the canvas so that\n",
-       "            // there is no ghosting.\n",
-       "            fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
-       "        }\n",
-       "        fig.context.drawImage(fig.imageObj, 0, 0);\n",
-       "    };\n",
-       "\n",
-       "    this.imageObj.onunload = function () {\n",
-       "        fig.ws.close();\n",
-       "    };\n",
-       "\n",
-       "    this.ws.onmessage = this._make_on_message_function(this);\n",
-       "\n",
-       "    this.ondownload = ondownload;\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._init_header = function () {\n",
-       "    var titlebar = document.createElement('div');\n",
-       "    titlebar.classList =\n",
-       "        'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n",
-       "    var titletext = document.createElement('div');\n",
-       "    titletext.classList = 'ui-dialog-title';\n",
-       "    titletext.setAttribute(\n",
-       "        'style',\n",
-       "        'width: 100%; text-align: center; padding: 3px;'\n",
-       "    );\n",
-       "    titlebar.appendChild(titletext);\n",
-       "    this.root.appendChild(titlebar);\n",
-       "    this.header = titletext;\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n",
-       "\n",
-       "mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n",
-       "\n",
-       "mpl.figure.prototype._init_canvas = function () {\n",
-       "    var fig = this;\n",
-       "\n",
-       "    var canvas_div = (this.canvas_div = document.createElement('div'));\n",
-       "    canvas_div.setAttribute(\n",
-       "        'style',\n",
-       "        'border: 1px solid #ddd;' +\n",
-       "            'box-sizing: content-box;' +\n",
-       "            'clear: both;' +\n",
-       "            'min-height: 1px;' +\n",
-       "            'min-width: 1px;' +\n",
-       "            'outline: 0;' +\n",
-       "            'overflow: hidden;' +\n",
-       "            'position: relative;' +\n",
-       "            'resize: both;'\n",
-       "    );\n",
-       "\n",
-       "    function on_keyboard_event_closure(name) {\n",
-       "        return function (event) {\n",
-       "            return fig.key_event(event, name);\n",
-       "        };\n",
-       "    }\n",
-       "\n",
-       "    canvas_div.addEventListener(\n",
-       "        'keydown',\n",
-       "        on_keyboard_event_closure('key_press')\n",
-       "    );\n",
-       "    canvas_div.addEventListener(\n",
-       "        'keyup',\n",
-       "        on_keyboard_event_closure('key_release')\n",
-       "    );\n",
-       "\n",
-       "    this._canvas_extra_style(canvas_div);\n",
-       "    this.root.appendChild(canvas_div);\n",
-       "\n",
-       "    var canvas = (this.canvas = document.createElement('canvas'));\n",
-       "    canvas.classList.add('mpl-canvas');\n",
-       "    canvas.setAttribute('style', 'box-sizing: content-box;');\n",
-       "\n",
-       "    this.context = canvas.getContext('2d');\n",
-       "\n",
-       "    var backingStore =\n",
-       "        this.context.backingStorePixelRatio ||\n",
-       "        this.context.webkitBackingStorePixelRatio ||\n",
-       "        this.context.mozBackingStorePixelRatio ||\n",
-       "        this.context.msBackingStorePixelRatio ||\n",
-       "        this.context.oBackingStorePixelRatio ||\n",
-       "        this.context.backingStorePixelRatio ||\n",
-       "        1;\n",
-       "\n",
-       "    this.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
-       "\n",
-       "    var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n",
-       "        'canvas'\n",
-       "    ));\n",
-       "    rubberband_canvas.setAttribute(\n",
-       "        'style',\n",
-       "        'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n",
-       "    );\n",
-       "\n",
-       "    // Apply a ponyfill if ResizeObserver is not implemented by browser.\n",
-       "    if (this.ResizeObserver === undefined) {\n",
-       "        if (window.ResizeObserver !== undefined) {\n",
-       "            this.ResizeObserver = window.ResizeObserver;\n",
-       "        } else {\n",
-       "            var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n",
-       "            this.ResizeObserver = obs.ResizeObserver;\n",
-       "        }\n",
-       "    }\n",
-       "\n",
-       "    this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n",
-       "        var nentries = entries.length;\n",
-       "        for (var i = 0; i < nentries; i++) {\n",
-       "            var entry = entries[i];\n",
-       "            var width, height;\n",
-       "            if (entry.contentBoxSize) {\n",
-       "                if (entry.contentBoxSize instanceof Array) {\n",
-       "                    // Chrome 84 implements new version of spec.\n",
-       "                    width = entry.contentBoxSize[0].inlineSize;\n",
-       "                    height = entry.contentBoxSize[0].blockSize;\n",
-       "                } else {\n",
-       "                    // Firefox implements old version of spec.\n",
-       "                    width = entry.contentBoxSize.inlineSize;\n",
-       "                    height = entry.contentBoxSize.blockSize;\n",
-       "                }\n",
-       "            } else {\n",
-       "                // Chrome <84 implements even older version of spec.\n",
-       "                width = entry.contentRect.width;\n",
-       "                height = entry.contentRect.height;\n",
-       "            }\n",
-       "\n",
-       "            // Keep the size of the canvas and rubber band canvas in sync with\n",
-       "            // the canvas container.\n",
-       "            if (entry.devicePixelContentBoxSize) {\n",
-       "                // Chrome 84 implements new version of spec.\n",
-       "                canvas.setAttribute(\n",
-       "                    'width',\n",
-       "                    entry.devicePixelContentBoxSize[0].inlineSize\n",
-       "                );\n",
-       "                canvas.setAttribute(\n",
-       "                    'height',\n",
-       "                    entry.devicePixelContentBoxSize[0].blockSize\n",
-       "                );\n",
-       "            } else {\n",
-       "                canvas.setAttribute('width', width * fig.ratio);\n",
-       "                canvas.setAttribute('height', height * fig.ratio);\n",
-       "            }\n",
-       "            canvas.setAttribute(\n",
-       "                'style',\n",
-       "                'width: ' + width + 'px; height: ' + height + 'px;'\n",
-       "            );\n",
-       "\n",
-       "            rubberband_canvas.setAttribute('width', width);\n",
-       "            rubberband_canvas.setAttribute('height', height);\n",
-       "\n",
-       "            // And update the size in Python. We ignore the initial 0/0 size\n",
-       "            // that occurs as the element is placed into the DOM, which should\n",
-       "            // otherwise not happen due to the minimum size styling.\n",
-       "            if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n",
-       "                fig.request_resize(width, height);\n",
-       "            }\n",
-       "        }\n",
-       "    });\n",
-       "    this.resizeObserverInstance.observe(canvas_div);\n",
-       "\n",
-       "    function on_mouse_event_closure(name) {\n",
-       "        return function (event) {\n",
-       "            return fig.mouse_event(event, name);\n",
-       "        };\n",
-       "    }\n",
-       "\n",
-       "    rubberband_canvas.addEventListener(\n",
-       "        'mousedown',\n",
-       "        on_mouse_event_closure('button_press')\n",
-       "    );\n",
-       "    rubberband_canvas.addEventListener(\n",
-       "        'mouseup',\n",
-       "        on_mouse_event_closure('button_release')\n",
-       "    );\n",
-       "    // Throttle sequential mouse events to 1 every 20ms.\n",
-       "    rubberband_canvas.addEventListener(\n",
-       "        'mousemove',\n",
-       "        on_mouse_event_closure('motion_notify')\n",
-       "    );\n",
-       "\n",
-       "    rubberband_canvas.addEventListener(\n",
-       "        'mouseenter',\n",
-       "        on_mouse_event_closure('figure_enter')\n",
-       "    );\n",
-       "    rubberband_canvas.addEventListener(\n",
-       "        'mouseleave',\n",
-       "        on_mouse_event_closure('figure_leave')\n",
-       "    );\n",
-       "\n",
-       "    canvas_div.addEventListener('wheel', function (event) {\n",
-       "        if (event.deltaY < 0) {\n",
-       "            event.step = 1;\n",
-       "        } else {\n",
-       "            event.step = -1;\n",
-       "        }\n",
-       "        on_mouse_event_closure('scroll')(event);\n",
-       "    });\n",
-       "\n",
-       "    canvas_div.appendChild(canvas);\n",
-       "    canvas_div.appendChild(rubberband_canvas);\n",
-       "\n",
-       "    this.rubberband_context = rubberband_canvas.getContext('2d');\n",
-       "    this.rubberband_context.strokeStyle = '#000000';\n",
-       "\n",
-       "    this._resize_canvas = function (width, height, forward) {\n",
-       "        if (forward) {\n",
-       "            canvas_div.style.width = width + 'px';\n",
-       "            canvas_div.style.height = height + 'px';\n",
-       "        }\n",
-       "    };\n",
-       "\n",
-       "    // Disable right mouse context menu.\n",
-       "    this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n",
-       "        event.preventDefault();\n",
-       "        return false;\n",
-       "    });\n",
-       "\n",
-       "    function set_focus() {\n",
-       "        canvas.focus();\n",
-       "        canvas_div.focus();\n",
-       "    }\n",
-       "\n",
-       "    window.setTimeout(set_focus, 100);\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._init_toolbar = function () {\n",
-       "    var fig = this;\n",
-       "\n",
-       "    var toolbar = document.createElement('div');\n",
-       "    toolbar.classList = 'mpl-toolbar';\n",
-       "    this.root.appendChild(toolbar);\n",
-       "\n",
-       "    function on_click_closure(name) {\n",
-       "        return function (_event) {\n",
-       "            return fig.toolbar_button_onclick(name);\n",
-       "        };\n",
-       "    }\n",
-       "\n",
-       "    function on_mouseover_closure(tooltip) {\n",
-       "        return function (event) {\n",
-       "            if (!event.currentTarget.disabled) {\n",
-       "                return fig.toolbar_button_onmouseover(tooltip);\n",
-       "            }\n",
-       "        };\n",
-       "    }\n",
-       "\n",
-       "    fig.buttons = {};\n",
-       "    var buttonGroup = document.createElement('div');\n",
-       "    buttonGroup.classList = 'mpl-button-group';\n",
-       "    for (var toolbar_ind in mpl.toolbar_items) {\n",
-       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
-       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
-       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
-       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
-       "\n",
-       "        if (!name) {\n",
-       "            /* Instead of a spacer, we start a new button group. */\n",
-       "            if (buttonGroup.hasChildNodes()) {\n",
-       "                toolbar.appendChild(buttonGroup);\n",
-       "            }\n",
-       "            buttonGroup = document.createElement('div');\n",
-       "            buttonGroup.classList = 'mpl-button-group';\n",
-       "            continue;\n",
-       "        }\n",
-       "\n",
-       "        var button = (fig.buttons[name] = document.createElement('button'));\n",
-       "        button.classList = 'mpl-widget';\n",
-       "        button.setAttribute('role', 'button');\n",
-       "        button.setAttribute('aria-disabled', 'false');\n",
-       "        button.addEventListener('click', on_click_closure(method_name));\n",
-       "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
-       "\n",
-       "        var icon_img = document.createElement('img');\n",
-       "        icon_img.src = '_images/' + image + '.png';\n",
-       "        icon_img.srcset = '_images/' + image + '_large.png 2x';\n",
-       "        icon_img.alt = tooltip;\n",
-       "        button.appendChild(icon_img);\n",
-       "\n",
-       "        buttonGroup.appendChild(button);\n",
-       "    }\n",
-       "\n",
-       "    if (buttonGroup.hasChildNodes()) {\n",
-       "        toolbar.appendChild(buttonGroup);\n",
-       "    }\n",
-       "\n",
-       "    var fmt_picker = document.createElement('select');\n",
-       "    fmt_picker.classList = 'mpl-widget';\n",
-       "    toolbar.appendChild(fmt_picker);\n",
-       "    this.format_dropdown = fmt_picker;\n",
-       "\n",
-       "    for (var ind in mpl.extensions) {\n",
-       "        var fmt = mpl.extensions[ind];\n",
-       "        var option = document.createElement('option');\n",
-       "        option.selected = fmt === mpl.default_extension;\n",
-       "        option.innerHTML = fmt;\n",
-       "        fmt_picker.appendChild(option);\n",
-       "    }\n",
-       "\n",
-       "    var status_bar = document.createElement('span');\n",
-       "    status_bar.classList = 'mpl-message';\n",
-       "    toolbar.appendChild(status_bar);\n",
-       "    this.message = status_bar;\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n",
-       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
-       "    // which will in turn request a refresh of the image.\n",
-       "    this.send_message('resize', { width: x_pixels, height: y_pixels });\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.send_message = function (type, properties) {\n",
-       "    properties['type'] = type;\n",
-       "    properties['figure_id'] = this.id;\n",
-       "    this.ws.send(JSON.stringify(properties));\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.send_draw_message = function () {\n",
-       "    if (!this.waiting) {\n",
-       "        this.waiting = true;\n",
-       "        this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
-       "    var format_dropdown = fig.format_dropdown;\n",
-       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
-       "    fig.ondownload(fig, format);\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_resize = function (fig, msg) {\n",
-       "    var size = msg['size'];\n",
-       "    if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n",
-       "        fig._resize_canvas(size[0], size[1], msg['forward']);\n",
-       "        fig.send_message('refresh', {});\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_rubberband = function (fig, msg) {\n",
-       "    var x0 = msg['x0'] / fig.ratio;\n",
-       "    var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n",
-       "    var x1 = msg['x1'] / fig.ratio;\n",
-       "    var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n",
-       "    x0 = Math.floor(x0) + 0.5;\n",
-       "    y0 = Math.floor(y0) + 0.5;\n",
-       "    x1 = Math.floor(x1) + 0.5;\n",
-       "    y1 = Math.floor(y1) + 0.5;\n",
-       "    var min_x = Math.min(x0, x1);\n",
-       "    var min_y = Math.min(y0, y1);\n",
-       "    var width = Math.abs(x1 - x0);\n",
-       "    var height = Math.abs(y1 - y0);\n",
-       "\n",
-       "    fig.rubberband_context.clearRect(\n",
-       "        0,\n",
-       "        0,\n",
-       "        fig.canvas.width / fig.ratio,\n",
-       "        fig.canvas.height / fig.ratio\n",
-       "    );\n",
-       "\n",
-       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_figure_label = function (fig, msg) {\n",
-       "    // Updates the figure title.\n",
-       "    fig.header.textContent = msg['label'];\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_cursor = function (fig, msg) {\n",
-       "    var cursor = msg['cursor'];\n",
-       "    switch (cursor) {\n",
-       "        case 0:\n",
-       "            cursor = 'pointer';\n",
-       "            break;\n",
-       "        case 1:\n",
-       "            cursor = 'default';\n",
-       "            break;\n",
-       "        case 2:\n",
-       "            cursor = 'crosshair';\n",
-       "            break;\n",
-       "        case 3:\n",
-       "            cursor = 'move';\n",
-       "            break;\n",
-       "    }\n",
-       "    fig.rubberband_canvas.style.cursor = cursor;\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_message = function (fig, msg) {\n",
-       "    fig.message.textContent = msg['message'];\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_draw = function (fig, _msg) {\n",
-       "    // Request the server to send over a new figure.\n",
-       "    fig.send_draw_message();\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_image_mode = function (fig, msg) {\n",
-       "    fig.image_mode = msg['mode'];\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n",
-       "    for (var key in msg) {\n",
-       "        if (!(key in fig.buttons)) {\n",
-       "            continue;\n",
-       "        }\n",
-       "        fig.buttons[key].disabled = !msg[key];\n",
-       "        fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n",
-       "    if (msg['mode'] === 'PAN') {\n",
-       "        fig.buttons['Pan'].classList.add('active');\n",
-       "        fig.buttons['Zoom'].classList.remove('active');\n",
-       "    } else if (msg['mode'] === 'ZOOM') {\n",
-       "        fig.buttons['Pan'].classList.remove('active');\n",
-       "        fig.buttons['Zoom'].classList.add('active');\n",
-       "    } else {\n",
-       "        fig.buttons['Pan'].classList.remove('active');\n",
-       "        fig.buttons['Zoom'].classList.remove('active');\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.updated_canvas_event = function () {\n",
-       "    // Called whenever the canvas gets updated.\n",
-       "    this.send_message('ack', {});\n",
-       "};\n",
-       "\n",
-       "// A function to construct a web socket function for onmessage handling.\n",
-       "// Called in the figure constructor.\n",
-       "mpl.figure.prototype._make_on_message_function = function (fig) {\n",
-       "    return function socket_on_message(evt) {\n",
-       "        if (evt.data instanceof Blob) {\n",
-       "            /* FIXME: We get \"Resource interpreted as Image but\n",
-       "             * transferred with MIME type text/plain:\" errors on\n",
-       "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
-       "             * to be part of the websocket stream */\n",
-       "            evt.data.type = 'image/png';\n",
-       "\n",
-       "            /* Free the memory for the previous frames */\n",
-       "            if (fig.imageObj.src) {\n",
-       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
-       "                    fig.imageObj.src\n",
-       "                );\n",
-       "            }\n",
-       "\n",
-       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
-       "                evt.data\n",
-       "            );\n",
-       "            fig.updated_canvas_event();\n",
-       "            fig.waiting = false;\n",
-       "            return;\n",
-       "        } else if (\n",
-       "            typeof evt.data === 'string' &&\n",
-       "            evt.data.slice(0, 21) === 'data:image/png;base64'\n",
-       "        ) {\n",
-       "            fig.imageObj.src = evt.data;\n",
-       "            fig.updated_canvas_event();\n",
-       "            fig.waiting = false;\n",
-       "            return;\n",
-       "        }\n",
-       "\n",
-       "        var msg = JSON.parse(evt.data);\n",
-       "        var msg_type = msg['type'];\n",
-       "\n",
-       "        // Call the  \"handle_{type}\" callback, which takes\n",
-       "        // the figure and JSON message as its only arguments.\n",
-       "        try {\n",
-       "            var callback = fig['handle_' + msg_type];\n",
-       "        } catch (e) {\n",
-       "            console.log(\n",
-       "                \"No handler for the '\" + msg_type + \"' message type: \",\n",
-       "                msg\n",
-       "            );\n",
-       "            return;\n",
-       "        }\n",
-       "\n",
-       "        if (callback) {\n",
-       "            try {\n",
-       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
-       "                callback(fig, msg);\n",
-       "            } catch (e) {\n",
-       "                console.log(\n",
-       "                    \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n",
-       "                    e,\n",
-       "                    e.stack,\n",
-       "                    msg\n",
-       "                );\n",
-       "            }\n",
-       "        }\n",
-       "    };\n",
-       "};\n",
-       "\n",
-       "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
-       "mpl.findpos = function (e) {\n",
-       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
-       "    var targ;\n",
-       "    if (!e) {\n",
-       "        e = window.event;\n",
-       "    }\n",
-       "    if (e.target) {\n",
-       "        targ = e.target;\n",
-       "    } else if (e.srcElement) {\n",
-       "        targ = e.srcElement;\n",
-       "    }\n",
-       "    if (targ.nodeType === 3) {\n",
-       "        // defeat Safari bug\n",
-       "        targ = targ.parentNode;\n",
-       "    }\n",
-       "\n",
-       "    // pageX,Y are the mouse positions relative to the document\n",
-       "    var boundingRect = targ.getBoundingClientRect();\n",
-       "    var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n",
-       "    var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n",
-       "\n",
-       "    return { x: x, y: y };\n",
-       "};\n",
-       "\n",
-       "/*\n",
-       " * return a copy of an object with only non-object keys\n",
-       " * we need this to avoid circular references\n",
-       " * http://stackoverflow.com/a/24161582/3208463\n",
-       " */\n",
-       "function simpleKeys(original) {\n",
-       "    return Object.keys(original).reduce(function (obj, key) {\n",
-       "        if (typeof original[key] !== 'object') {\n",
-       "            obj[key] = original[key];\n",
-       "        }\n",
-       "        return obj;\n",
-       "    }, {});\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.mouse_event = function (event, name) {\n",
-       "    var canvas_pos = mpl.findpos(event);\n",
-       "\n",
-       "    if (name === 'button_press') {\n",
-       "        this.canvas.focus();\n",
-       "        this.canvas_div.focus();\n",
-       "    }\n",
-       "\n",
-       "    var x = canvas_pos.x * this.ratio;\n",
-       "    var y = canvas_pos.y * this.ratio;\n",
-       "\n",
-       "    this.send_message(name, {\n",
-       "        x: x,\n",
-       "        y: y,\n",
-       "        button: event.button,\n",
-       "        step: event.step,\n",
-       "        guiEvent: simpleKeys(event),\n",
-       "    });\n",
-       "\n",
-       "    /* This prevents the web browser from automatically changing to\n",
-       "     * the text insertion cursor when the button is pressed.  We want\n",
-       "     * to control all of the cursor setting manually through the\n",
-       "     * 'cursor' event from matplotlib */\n",
-       "    event.preventDefault();\n",
-       "    return false;\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._key_event_extra = function (_event, _name) {\n",
-       "    // Handle any extra behaviour associated with a key event\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.key_event = function (event, name) {\n",
-       "    // Prevent repeat events\n",
-       "    if (name === 'key_press') {\n",
-       "        if (event.which === this._key) {\n",
-       "            return;\n",
-       "        } else {\n",
-       "            this._key = event.which;\n",
-       "        }\n",
-       "    }\n",
-       "    if (name === 'key_release') {\n",
-       "        this._key = null;\n",
-       "    }\n",
-       "\n",
-       "    var value = '';\n",
-       "    if (event.ctrlKey && event.which !== 17) {\n",
-       "        value += 'ctrl+';\n",
-       "    }\n",
-       "    if (event.altKey && event.which !== 18) {\n",
-       "        value += 'alt+';\n",
-       "    }\n",
-       "    if (event.shiftKey && event.which !== 16) {\n",
-       "        value += 'shift+';\n",
-       "    }\n",
-       "\n",
-       "    value += 'k';\n",
-       "    value += event.which.toString();\n",
-       "\n",
-       "    this._key_event_extra(event, name);\n",
-       "\n",
-       "    this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n",
-       "    return false;\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.toolbar_button_onclick = function (name) {\n",
-       "    if (name === 'download') {\n",
-       "        this.handle_save(this, null);\n",
-       "    } else {\n",
-       "        this.send_message('toolbar_button', { name: name });\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n",
-       "    this.message.textContent = tooltip;\n",
-       "};\n",
-       "\n",
-       "///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n",
-       "// prettier-ignore\n",
-       "var _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\n",
-       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
-       "\n",
-       "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
-       "\n",
-       "mpl.default_extension = \"png\";/* global mpl */\n",
-       "\n",
-       "var comm_websocket_adapter = function (comm) {\n",
-       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
-       "    // object with the appropriate methods. Currently this is a non binary\n",
-       "    // socket, so there is still some room for performance tuning.\n",
-       "    var ws = {};\n",
-       "\n",
-       "    ws.close = function () {\n",
-       "        comm.close();\n",
-       "    };\n",
-       "    ws.send = function (m) {\n",
-       "        //console.log('sending', m);\n",
-       "        comm.send(m);\n",
-       "    };\n",
-       "    // Register the callback with on_msg.\n",
-       "    comm.on_msg(function (msg) {\n",
-       "        //console.log('receiving', msg['content']['data'], msg);\n",
-       "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
-       "        ws.onmessage(msg['content']['data']);\n",
-       "    });\n",
-       "    return ws;\n",
-       "};\n",
-       "\n",
-       "mpl.mpl_figure_comm = function (comm, msg) {\n",
-       "    // This is the function which gets called when the mpl process\n",
-       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
-       "\n",
-       "    var id = msg.content.data.id;\n",
-       "    // Get hold of the div created by the display call when the Comm\n",
-       "    // socket was opened in Python.\n",
-       "    var element = document.getElementById(id);\n",
-       "    var ws_proxy = comm_websocket_adapter(comm);\n",
-       "\n",
-       "    function ondownload(figure, _format) {\n",
-       "        window.open(figure.canvas.toDataURL());\n",
-       "    }\n",
-       "\n",
-       "    var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n",
-       "\n",
-       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
-       "    // web socket which is closed, not our websocket->open comm proxy.\n",
-       "    ws_proxy.onopen();\n",
-       "\n",
-       "    fig.parent_element = element;\n",
-       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
-       "    if (!fig.cell_info) {\n",
-       "        console.error('Failed to find cell for figure', id, fig);\n",
-       "        return;\n",
-       "    }\n",
-       "    fig.cell_info[0].output_area.element.on(\n",
-       "        'cleared',\n",
-       "        { fig: fig },\n",
-       "        fig._remove_fig_handler\n",
-       "    );\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_close = function (fig, msg) {\n",
-       "    var width = fig.canvas.width / fig.ratio;\n",
-       "    fig.cell_info[0].output_area.element.off(\n",
-       "        'cleared',\n",
-       "        fig._remove_fig_handler\n",
-       "    );\n",
-       "    fig.resizeObserverInstance.unobserve(fig.canvas_div);\n",
-       "\n",
-       "    // Update the output cell to use the data from the current canvas.\n",
-       "    fig.push_to_output();\n",
-       "    var dataURL = fig.canvas.toDataURL();\n",
-       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
-       "    // the notebook keyboard shortcuts fail.\n",
-       "    IPython.keyboard_manager.enable();\n",
-       "    fig.parent_element.innerHTML =\n",
-       "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
-       "    fig.close_ws(fig, msg);\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.close_ws = function (fig, msg) {\n",
-       "    fig.send_message('closing', msg);\n",
-       "    // fig.ws.close()\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.push_to_output = function (_remove_interactive) {\n",
-       "    // Turn the data on the canvas into data in the output cell.\n",
-       "    var width = this.canvas.width / this.ratio;\n",
-       "    var dataURL = this.canvas.toDataURL();\n",
-       "    this.cell_info[1]['text/html'] =\n",
-       "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.updated_canvas_event = function () {\n",
-       "    // Tell IPython that the notebook contents must change.\n",
-       "    IPython.notebook.set_dirty(true);\n",
-       "    this.send_message('ack', {});\n",
-       "    var fig = this;\n",
-       "    // Wait a second, then push the new image to the DOM so\n",
-       "    // that it is saved nicely (might be nice to debounce this).\n",
-       "    setTimeout(function () {\n",
-       "        fig.push_to_output();\n",
-       "    }, 1000);\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._init_toolbar = function () {\n",
-       "    var fig = this;\n",
-       "\n",
-       "    var toolbar = document.createElement('div');\n",
-       "    toolbar.classList = 'btn-toolbar';\n",
-       "    this.root.appendChild(toolbar);\n",
-       "\n",
-       "    function on_click_closure(name) {\n",
-       "        return function (_event) {\n",
-       "            return fig.toolbar_button_onclick(name);\n",
-       "        };\n",
-       "    }\n",
-       "\n",
-       "    function on_mouseover_closure(tooltip) {\n",
-       "        return function (event) {\n",
-       "            if (!event.currentTarget.disabled) {\n",
-       "                return fig.toolbar_button_onmouseover(tooltip);\n",
-       "            }\n",
-       "        };\n",
-       "    }\n",
-       "\n",
-       "    fig.buttons = {};\n",
-       "    var buttonGroup = document.createElement('div');\n",
-       "    buttonGroup.classList = 'btn-group';\n",
-       "    var button;\n",
-       "    for (var toolbar_ind in mpl.toolbar_items) {\n",
-       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
-       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
-       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
-       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
-       "\n",
-       "        if (!name) {\n",
-       "            /* Instead of a spacer, we start a new button group. */\n",
-       "            if (buttonGroup.hasChildNodes()) {\n",
-       "                toolbar.appendChild(buttonGroup);\n",
-       "            }\n",
-       "            buttonGroup = document.createElement('div');\n",
-       "            buttonGroup.classList = 'btn-group';\n",
-       "            continue;\n",
-       "        }\n",
-       "\n",
-       "        button = fig.buttons[name] = document.createElement('button');\n",
-       "        button.classList = 'btn btn-default';\n",
-       "        button.href = '#';\n",
-       "        button.title = name;\n",
-       "        button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n",
-       "        button.addEventListener('click', on_click_closure(method_name));\n",
-       "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
-       "        buttonGroup.appendChild(button);\n",
-       "    }\n",
-       "\n",
-       "    if (buttonGroup.hasChildNodes()) {\n",
-       "        toolbar.appendChild(buttonGroup);\n",
-       "    }\n",
-       "\n",
-       "    // Add the status bar.\n",
-       "    var status_bar = document.createElement('span');\n",
-       "    status_bar.classList = 'mpl-message pull-right';\n",
-       "    toolbar.appendChild(status_bar);\n",
-       "    this.message = status_bar;\n",
-       "\n",
-       "    // Add the close button to the window.\n",
-       "    var buttongrp = document.createElement('div');\n",
-       "    buttongrp.classList = 'btn-group inline pull-right';\n",
-       "    button = document.createElement('button');\n",
-       "    button.classList = 'btn btn-mini btn-primary';\n",
-       "    button.href = '#';\n",
-       "    button.title = 'Stop Interaction';\n",
-       "    button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n",
-       "    button.addEventListener('click', function (_evt) {\n",
-       "        fig.handle_close(fig, {});\n",
-       "    });\n",
-       "    button.addEventListener(\n",
-       "        'mouseover',\n",
-       "        on_mouseover_closure('Stop Interaction')\n",
-       "    );\n",
-       "    buttongrp.appendChild(button);\n",
-       "    var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n",
-       "    titlebar.insertBefore(buttongrp, titlebar.firstChild);\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._remove_fig_handler = function (event) {\n",
-       "    var fig = event.data.fig;\n",
-       "    if (event.target !== this) {\n",
-       "        // Ignore bubbled events from children.\n",
-       "        return;\n",
-       "    }\n",
-       "    fig.close_ws(fig, {});\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._root_extra_style = function (el) {\n",
-       "    el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._canvas_extra_style = function (el) {\n",
-       "    // this is important to make the div 'focusable\n",
-       "    el.setAttribute('tabindex', 0);\n",
-       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
-       "    // off when our div gets focus\n",
-       "\n",
-       "    // location in version 3\n",
-       "    if (IPython.notebook.keyboard_manager) {\n",
-       "        IPython.notebook.keyboard_manager.register_events(el);\n",
-       "    } else {\n",
-       "        // location in version 2\n",
-       "        IPython.keyboard_manager.register_events(el);\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._key_event_extra = function (event, _name) {\n",
-       "    var manager = IPython.notebook.keyboard_manager;\n",
-       "    if (!manager) {\n",
-       "        manager = IPython.keyboard_manager;\n",
-       "    }\n",
-       "\n",
-       "    // Check for shift+enter\n",
-       "    if (event.shiftKey && event.which === 13) {\n",
-       "        this.canvas_div.blur();\n",
-       "        // select the cell after this one\n",
-       "        var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
-       "        IPython.notebook.select(index + 1);\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
-       "    fig.ondownload(fig, null);\n",
-       "};\n",
-       "\n",
-       "mpl.find_output_cell = function (html_output) {\n",
-       "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
-       "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
-       "    // IPython event is triggered only after the cells have been serialised, which for\n",
-       "    // our purposes (turning an active figure into a static one), is too late.\n",
-       "    var cells = IPython.notebook.get_cells();\n",
-       "    var ncells = cells.length;\n",
-       "    for (var i = 0; i < ncells; i++) {\n",
-       "        var cell = cells[i];\n",
-       "        if (cell.cell_type === 'code') {\n",
-       "            for (var j = 0; j < cell.output_area.outputs.length; j++) {\n",
-       "                var data = cell.output_area.outputs[j];\n",
-       "                if (data.data) {\n",
-       "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
-       "                    data = data.data;\n",
-       "                }\n",
-       "                if (data['text/html'] === html_output) {\n",
-       "                    return [cell, data, j];\n",
-       "                }\n",
-       "            }\n",
-       "        }\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "// Register the function which deals with the matplotlib target/channel.\n",
-       "// The kernel may be null if the page has been refreshed.\n",
-       "if (IPython.notebook.kernel !== null) {\n",
-       "    IPython.notebook.kernel.comm_manager.register_target(\n",
-       "        'matplotlib',\n",
-       "        mpl.mpl_figure_comm\n",
-       "    );\n",
-       "}\n"
-      ],
-      "text/plain": [
-       "<IPython.core.display.Javascript object>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    },
-    {
-     "data": {
-      "text/html": [
-       "<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4QAAAGQCAYAAAD2lq6fAAAgAElEQVR4nOzdd3gU1f4G8JNNIEDA4CV0CB0pSpMivYggcEGKIkWCEJqgdKlKEBEQJKAooHgp0ptc2hWI/AhFA1ya9F5TN2WTbLK72TLv74+9WVgzaSSZ2ZD38zzzPGb3zOzZDSd+3z0zZwSIiIiIiIioQBJqd4CIiIiIiIjUwUBIRERERERUQDEQEhERERERFVAMhERERERERAUUAyEREREREVEBxUBIRERERERUQDEQEhERERERFVAMhERERERERAUUAyEREREREVEBxUBIRERERERUQDEQEhERERERFVAMhERERERERAUUAyEREREREVEBxUCYj9hsNmzduhVLlixRuytERERERPQCYCDMByRJwvbt21GvXj0IITB06NB026akpGDJkiXo378/JkyYgC5dumDu3Lkwm83KdZiIiIiIiPIFBsJ84MqVK7hz5w5+/vnnDAOh2WzGW2+9hRYtWsBkMgEAkpOT0bhxY3Tr1g1Wq1XBXhMRERERkatjIMxHjh07lmEgnDt3LoQQOHLkiNPjBw4cgBACy5YtU6CXRERERESUXzAQ5iMZBUKTyYSSJUvCy8srzUyg2WxG0aJFUbFiRdhsNoV6S0REREREro6BMB/JKBCePHkSQgg0b95cdt/XX38dQgicOXNG9nmTyYSEhATHptPpcO/ePcTHxzs9zo0bN27cuHHjxo1bXm/x8fF48uQJJzMUwECYj2QUCFevXg0hBPr06SO7b69evSCEwJo1a2SfDwgIgBCCGzdu3Lhx48aNGzeX2Z48eZKb5TTJYCDMRzIKhAsWLIAQAh988IHsvgMHDoQQAosWLZJ9/u8zhI8fP3YMQrW/IeLGjRs3bty4ceNWsLYnT55ACIH4+PjcLKdJBgNhPpJRIAwMDMwwEH7wwQcQQmDBggVZeq2EhAQIIZCQkJCTLhMRERERZRtrUeUwEOYjGQXCrVu3QgiBvn37yu7bt29fCJH+KaN/x0FIRERERGphLaocBsJ8JKNAeObMGQgh0LJlS9l933jjDQiR/qIyf8dBSERERERqYS2qHAbCfCSjQGi1WlG6dGm89NJLkCQpzXPFixdH6dKls7xSEwchERERkTIePHiQZjEVDw8PVKhQAe+99x7++9//ptln6NChTu3d3d1RsmRJ1K1bF4MGDcLOnTuRkpKiwrvJHaxFlcNAmI9kdmP6OXPmQAiB48ePOz1+5MgRCCEwZ86cLL8WByERERGRMlIDYY0aNRAQEICAgABMnToVHTt2hBAChQoVSlPfpQZCf39/BAQEYM6cOZg4cSK6d++OEiVKQAiBunXr4q+//lLpXeUMa1HlMBDmI6nXCb733nuyzxsMBjRp0gRt2rRxfCNkNBrRrFkzNGnSBAaDIcuvxUFIREREpIzUQNi1a9c0zy1cuBBCCLRr187p8dRAGBISkmafxMRETJw4EUIIlC1bFmFhYXnW97zCWlQ5DIT5wP379xEYGIgqVapACIEiRYogICAAR44cSdM2KSkJM2bMQI8ePfDJJ5+gW7dumDZtGpKSkrL1mhyERERERMrIKBBqtVoIIeDl5eX0eEaBMNWwYcMghMBHH32U633Oa6xFlcNASLI4CImIiIiUkZVA6O3t7fR4VgLh/fv3IYRAqVKl0qwx4epYiyqHgZBkcRASERGR2iRJgi0pyeW3nIatjALhl19+CSEEevTo4fR4VgIhAFSuXBlCCNy7dy9HfVQaa1HlMBCSLA5CIiIiUpstKQlhQrj8ZsvmpTl/l96iMu3bt4cQAmXKlMH169ed9slqIGzRokW2bj3mKliLKoeBkGRxEBIREZHaCloglNvKlCmDW7dupdknq4GwefPmDISUIQZCksVBSERERGoryKeMarVaLFmyBBqNBnXr1oVer3faJ7unjN6/fz9HfVQaa1HlMBCSLA5CIiIiImVkdA3hZ599BiEEJkyY4PR4VgLhvXv3IISAj48PF5WhdDEQkiwOQiIiIiJlZBQIDQYDKlSogEKFCuHBgweOx7MSCD/88EMIIfDxxx/nRbfzFGtR5TAQkiwOQiIiIiJlZBQIAeDbb7+FEALDhw93PJbZjeknTZoEIQTKly+P8PDwPOt7XmEtqhwGQpLFQUhERESkjMwCodFoRIUKFeDh4YG7d+8CeBoI/f39ERAQgDlz5mDSpEno0aMHSpQoASEE6tevjytXrij5VnINa1HlMBCSLA5CIiIiImVkFggBYMWKFRBCYMiQIQCeBsLUzd3dHSVLlkS9evUwePBg7Ny5E2azWam3kOtYiyqHgZBkcRASERERkVpYiyqHgZBkcRASERERkVpYiyqHgZBkcRASERERkVpYiyqHgZBkcRASERERkVpYiyqHgZBkcRASERERkVpYiyqHgZBkcRASERERkVpYiyqHgZBkcRASERERkVpYiyqHgZBkcRASERERkVpYiyqHgZBkcRASERERkVpYiyqHgZBkcRASERERkVpYiyqHgZBkcRASERERkVpYiyqHgZBkcRASERERkVpYiyqHgZBkcRASERERkVpYiyqHgZBkcRASERERkVpYiyqHgZBkcRASERERkVpYiyqHgZBkcRASERERKePBgwcQQkAIgQoVKsBqtcq2u3z5sqPdK6+88tyvN3ToUAgh8ODBA9nnhRBo3779cx8/N7AWVQ4DIcniICQiIiJSRmog9PDwgBACBw8elG03YcIERxsGQsotDIQki4OQiIiISBmpgbBdu3bw9vZGv3790rRJSUmBj48PevXqxUBIuYqBkGRxEBIREREpIzUQdu3aFaNGjULhwoURHR3t1Gbnzp0QQmDPnj1pAmFYWBjmzJmDFi1aoHTp0ihcuDCqVKmCjz76CFFRUU7HqVKliuO002e39u3b49ixY7LPCSGwbt06p+P8+9//RqdOnVCyZEl4enqifv36WLJkSZrTXdetW+fY/8CBA2jTpg2KFy+OKlWqZPiZsBZVDgMhyeIgJCIiIlLGs4Hw9OnTEEJg+fLlTm26deuGMmXKwGKxpAmEW7duhZeXF3r16oXx48djypQp6NSpE4QQqF69OuLj4x1tly1bhoYNG0IIgQkTJiAgIAABAQFYt24dHjx4gICAAAghUKVKFcdzAQEBuHjxouMYM2fOhBAClSpVgr+/PyZNmoTXX38dQgi8++67Tv1ODYTdu3eHh4cHevfujWnTpuGjjz7K8DNhLaocBkKSxUFIREREriIpKSndzWg0ZrmtwWB47rbJycmy7XLDs4EQAOrXr48GDRo4ng8NDYW7uzumTJkCAGkCYVRUFPR6fZrjbtiwAUIIzJ8/3+nxnJwyeuTIEQgh0K1bNyQnJzselyQJY8aMgRACu3btcjyeGgjd3NwQFBSU8QfxDNaiymEgJFkchEREROQq0juNMXXm6VnFihVLt+3fQ46Pj0+6bZs2berUNr1TLXPD3wPhN998AyEEzp07BwCYP38+hBC4du2a4/PIyjWEkiThpZdeQocOHZwez0kgTL2G8fHjx2mei4+Ph5ubm9M1kKmBsE+fPpn291msRZXDQEiy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5ui2227z+SXAub/UOh+pqam69957vfucOHGi5Xrr16/XDTfckOPo5aJFiyxPUQ0ODlanTp18+srqux89elTr16/Xjz/+qDNnzuQ73r+uk/0LBaulVq1aPBYCgKVjvXsrwRidGDPG9jaejAwdqF076/rDr74qwtEhEBAIneNoIKxSpYp++eWXHK9/9tln3lOrCIT+c+zYMR05ckTNmjU770A4duxYHT161K/j8ng8+uWXX/Tiiy+qc+fOKleunIwxuuuuu3zWmzt3rrZv367Vq1frlltu8ZloZl935PF4dOzYMW3evFlffvml5s2bp+eee07Dhw/X559/XqBx7du3TzVq1PB+xkUXXaR27drp/vvv19ixY/XNN994101JSdGIESMUHx8vKevoxyuvvKKKFSvq008/tfzOGzdu1IQJE9SyZUsZY/TRRx8VsHIFs3btWp/rtW644QZ169ZN/fr181kvMjLS1VM1/+qDDz5QuXLl9Nhjj+UZ8H7//Xc1b97c5+fi3J9zj8ej559/Ps8jyx6PR0OGDPFuP3v27BzrnDx50nvXy3N/OfHYY4/pwIEDhfuy/5OZmakxY8bIGKOZM2f6vHfo0CENGjTIe81hxYoVfR7GnpCQoCVLligyMlKzZ8/Wv//9b+/PmDFGP/30k3fd2NhYDRs2THfccYeuvvpqValSxed77dy502dM50pMTNTEiRNVs2ZNbd261fv6tGnT1LNnT91444269tprdemll6patWoKCQlRx44dvT0CAOdK+fBDJRijgw0b2v5lXlp0dKHuUIrihUDoHEcDYefOnXO9gcBXX32liRMnEgiLQKdOnc47EGYfBRk+fLj27NmT73YpKSk6dOiQdu/era1bt/rcLMPj8ejhhx9WnTp1chxJuPTSSzVq1Kg8971+/Xrdfffduuaaa7yTVY/H4w2UVssD+Tzn6K//CM2bN89798O/LldeeWW+t7k/dOiQz58//vhjDRw4UPXr1/fZV1BQkCIiIrzrffPNN1qxYkWe+y6IL774QiEhId4bcqxcudJv+y5qS5Ys8Yafv4YjKev/2RtvvOG9G2qVKlW8gW3YsGHe9Y4cOeKtddeuXfXxxx/nuGYtKSlJTZs2VVBQkN58881cx3TixAlNmjRJDRo00N133+1zOqk//fjjj97/Tk9P18yZM73P3DPG6L777tPevXtt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VylyTtfqpZdekjFGGzZskCSlp6crPDxc119/fcAHHbf/bn/rrbc0fPjwwnwFx7hRqzNnzqhv374qU6aMmjdvXmwe1O50rebPny9jjM+ZRfPmzcvxGnIiEJZQmzdv1o4dOzR37tw8mzD7H6w2bdp4H/x5+vRptWjRQt26dbM8PciqCYcMGaK6dev6vLZt2zYZY/TJJ5/450sVIafrVZD3A4mbdZKkiIgILV26tNDfwwlu1urEiRNasGCBqlSpUixu7uR0rV599VWtX7/e++fiFAjd7sGUlBQ1atRIY8aMKfR3KWpO12ry5MmqVq2az2vLli2TMUa7du3yz5cqIm7/XHXu3Fk//fRTob+HE9yo1dGjRzV48GBNmTJF1apV07XXXqujR4/69XsVBadrdezYMV144YV65JFHJElnz55V//79FRwczMPt80EgLOGio6PzbMKIiAgZY3I8H3H58uUyxmjmzJk5tsntH8LKlSv7vLZmzRoZY7R27drCfQkHOVWvgrwfiNyo07JlyxQZGVmocbvBjVple/bZZ4vV9UxO1eryyy9XaGiodwkJCVFQUJBCQ0P10Ucf+e37FCU3f66eeuopDR48+LzG7QanahUZGamyZcv6HA3cvHlzsfp30I2fqwMHDhS700UlZ2vVrl07701l9uzZo8aNG+d5tC3QOFmrzZs36+6779add96pZ599Vt27d1ebNm388j1KMgJhCZdXE6alpalatWqqVKlSjt++pKenq0KFCgoLC1NmZqbPe1ZNGBsbK2OMzzNh3nrrLV100UXF6rxtp+pVkPcDkdN1ioqKynFn0eJyy203fqayvfTSS3rssccKNX4nuVWr4nSEMJubP1eDBg3S7NmzCzV+JzlVqz179ig4ONjnzr4xMTEKDg4uFkdzJHd+rl566aVieYMUp2p1+PBhGWOUmprqfW3hwoW66qqr/Pdliphbf18dPnxYFStW1HvvvVfo71DSEQhLuLyaMPvOoK1bt7bc9rrrrpMxRjExMT6vd+jQwbIJO3bs6PNbnG7duikiIqJwX8BhTtbL7vuByMk6rVy5UhMmTNDWrVu1detWbdmyRbNnz/Y55S+QOVWrkydP6sMPP/SeFnP27Fn16NFDO3fu9M8XcYAb/SeVvEDoz1qtX79es2bN0qlTpyRJcXFxat26tZKTk/3zRRzg5M9V79699eyz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\" width=\"900\">"
-      ],
-      "text/plain": [
-       "<IPython.core.display.HTML object>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "if True:\n",
-    "    fig=plt.figure(figsize=(9,4))\n",
-    "    fig.subplots_adjust(bottom=0.15, left=0.15, top = 0.95, right=0.9,wspace=0.0,hspace=0.0)\n",
-    "    fig.suptitle('')\n",
-    "\n",
-    "    sub = fig.add_subplot(1,1,1)\n",
-    "\n",
-    "    sub.plot(RDDat[:,1],RD_diff_osc,linestyle='-',c='xkcd:red',label=r\"RD\")\n",
-    "    sub.plot(MatterDat[:,1],Matter_diff_osc,linestyle='--',c='xkcd:black',label=r\"Matter\")\n",
-    "#     sub.plot(KinationDat[:,1],Kination_diff_osc,linestyle=':',c='xkcd:blue',label=r\"Kination\")\n",
-    "\n",
-    "    sub.set_xlabel(r'$f_a ~ [{\\rm GeV}]$')\n",
-    "    sub.set_ylabel(r'$\\dfrac{\\left|\\Omega h^2 - \\left(\\Omega h^2\\right)_{\\rm WKB}\\right|}{\\Omega h^2}$')\n",
-    "\n",
-    "    sub.legend(bbox_to_anchor=(0.99, 0.99),borderaxespad=0., \n",
-    "               borderpad=0.05,ncol=1,loc='upper right',fontsize=14,framealpha=0)\n",
-    "    #set major ticks\n",
-    "    _M_xticks=[ 10.**i for i in range(9,20) ]\n",
-    "    _M_yticks=[  10.**i for i in range(-2,2)  ]\n",
-    "\n",
-    "    #set major ticks that will not have a label\n",
-    "    _M_xticks_exception=[]\n",
-    "    _M_yticks_exception=[]\n",
-    "\n",
-    "    _m_xticks=[]\n",
-    "    _m_yticks=[]  \n",
-    "    ft=FT(_M_xticks,_M_yticks,\n",
-    "                 _M_xticks_exception,_M_yticks_exception,\n",
-    "                 _m_xticks,_m_yticks,\n",
-    "                 xmin=1e10,xmax=1e19,ymin=1e-2,ymax=1e1,xscale='log',yscale='log')\n",
-    "\n",
-    "    ft.format_ticks(plt,sub)    \n",
-    "\n",
-    "    plt.savefig('WKB_diff_osc.pdf',bbox_inches='tight')\n",
-    "    fig.show()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 8,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "application/javascript": [
-       "/* Put everything inside the global mpl namespace */\n",
-       "/* global mpl */\n",
-       "window.mpl = {};\n",
-       "\n",
-       "mpl.get_websocket_type = function () {\n",
-       "    if (typeof WebSocket !== 'undefined') {\n",
-       "        return WebSocket;\n",
-       "    } else if (typeof MozWebSocket !== 'undefined') {\n",
-       "        return MozWebSocket;\n",
-       "    } else {\n",
-       "        alert(\n",
-       "            'Your browser does not have WebSocket support. ' +\n",
-       "                'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
-       "                'Firefox 4 and 5 are also supported but you ' +\n",
-       "                'have to enable WebSockets in about:config.'\n",
-       "        );\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n",
-       "    this.id = figure_id;\n",
-       "\n",
-       "    this.ws = websocket;\n",
-       "\n",
-       "    this.supports_binary = this.ws.binaryType !== undefined;\n",
-       "\n",
-       "    if (!this.supports_binary) {\n",
-       "        var warnings = document.getElementById('mpl-warnings');\n",
-       "        if (warnings) {\n",
-       "            warnings.style.display = 'block';\n",
-       "            warnings.textContent =\n",
-       "                'This browser does not support binary websocket messages. ' +\n",
-       "                'Performance may be slow.';\n",
-       "        }\n",
-       "    }\n",
-       "\n",
-       "    this.imageObj = new Image();\n",
-       "\n",
-       "    this.context = undefined;\n",
-       "    this.message = undefined;\n",
-       "    this.canvas = undefined;\n",
-       "    this.rubberband_canvas = undefined;\n",
-       "    this.rubberband_context = undefined;\n",
-       "    this.format_dropdown = undefined;\n",
-       "\n",
-       "    this.image_mode = 'full';\n",
-       "\n",
-       "    this.root = document.createElement('div');\n",
-       "    this.root.setAttribute('style', 'display: inline-block');\n",
-       "    this._root_extra_style(this.root);\n",
-       "\n",
-       "    parent_element.appendChild(this.root);\n",
-       "\n",
-       "    this._init_header(this);\n",
-       "    this._init_canvas(this);\n",
-       "    this._init_toolbar(this);\n",
-       "\n",
-       "    var fig = this;\n",
-       "\n",
-       "    this.waiting = false;\n",
-       "\n",
-       "    this.ws.onopen = function () {\n",
-       "        fig.send_message('supports_binary', { value: fig.supports_binary });\n",
-       "        fig.send_message('send_image_mode', {});\n",
-       "        if (fig.ratio !== 1) {\n",
-       "            fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n",
-       "        }\n",
-       "        fig.send_message('refresh', {});\n",
-       "    };\n",
-       "\n",
-       "    this.imageObj.onload = function () {\n",
-       "        if (fig.image_mode === 'full') {\n",
-       "            // Full images could contain transparency (where diff images\n",
-       "            // almost always do), so we need to clear the canvas so that\n",
-       "            // there is no ghosting.\n",
-       "            fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
-       "        }\n",
-       "        fig.context.drawImage(fig.imageObj, 0, 0);\n",
-       "    };\n",
-       "\n",
-       "    this.imageObj.onunload = function () {\n",
-       "        fig.ws.close();\n",
-       "    };\n",
-       "\n",
-       "    this.ws.onmessage = this._make_on_message_function(this);\n",
-       "\n",
-       "    this.ondownload = ondownload;\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._init_header = function () {\n",
-       "    var titlebar = document.createElement('div');\n",
-       "    titlebar.classList =\n",
-       "        'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n",
-       "    var titletext = document.createElement('div');\n",
-       "    titletext.classList = 'ui-dialog-title';\n",
-       "    titletext.setAttribute(\n",
-       "        'style',\n",
-       "        'width: 100%; text-align: center; padding: 3px;'\n",
-       "    );\n",
-       "    titlebar.appendChild(titletext);\n",
-       "    this.root.appendChild(titlebar);\n",
-       "    this.header = titletext;\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n",
-       "\n",
-       "mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n",
-       "\n",
-       "mpl.figure.prototype._init_canvas = function () {\n",
-       "    var fig = this;\n",
-       "\n",
-       "    var canvas_div = (this.canvas_div = document.createElement('div'));\n",
-       "    canvas_div.setAttribute(\n",
-       "        'style',\n",
-       "        'border: 1px solid #ddd;' +\n",
-       "            'box-sizing: content-box;' +\n",
-       "            'clear: both;' +\n",
-       "            'min-height: 1px;' +\n",
-       "            'min-width: 1px;' +\n",
-       "            'outline: 0;' +\n",
-       "            'overflow: hidden;' +\n",
-       "            'position: relative;' +\n",
-       "            'resize: both;'\n",
-       "    );\n",
-       "\n",
-       "    function on_keyboard_event_closure(name) {\n",
-       "        return function (event) {\n",
-       "            return fig.key_event(event, name);\n",
-       "        };\n",
-       "    }\n",
-       "\n",
-       "    canvas_div.addEventListener(\n",
-       "        'keydown',\n",
-       "        on_keyboard_event_closure('key_press')\n",
-       "    );\n",
-       "    canvas_div.addEventListener(\n",
-       "        'keyup',\n",
-       "        on_keyboard_event_closure('key_release')\n",
-       "    );\n",
-       "\n",
-       "    this._canvas_extra_style(canvas_div);\n",
-       "    this.root.appendChild(canvas_div);\n",
-       "\n",
-       "    var canvas = (this.canvas = document.createElement('canvas'));\n",
-       "    canvas.classList.add('mpl-canvas');\n",
-       "    canvas.setAttribute('style', 'box-sizing: content-box;');\n",
-       "\n",
-       "    this.context = canvas.getContext('2d');\n",
-       "\n",
-       "    var backingStore =\n",
-       "        this.context.backingStorePixelRatio ||\n",
-       "        this.context.webkitBackingStorePixelRatio ||\n",
-       "        this.context.mozBackingStorePixelRatio ||\n",
-       "        this.context.msBackingStorePixelRatio ||\n",
-       "        this.context.oBackingStorePixelRatio ||\n",
-       "        this.context.backingStorePixelRatio ||\n",
-       "        1;\n",
-       "\n",
-       "    this.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
-       "\n",
-       "    var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n",
-       "        'canvas'\n",
-       "    ));\n",
-       "    rubberband_canvas.setAttribute(\n",
-       "        'style',\n",
-       "        'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n",
-       "    );\n",
-       "\n",
-       "    // Apply a ponyfill if ResizeObserver is not implemented by browser.\n",
-       "    if (this.ResizeObserver === undefined) {\n",
-       "        if (window.ResizeObserver !== undefined) {\n",
-       "            this.ResizeObserver = window.ResizeObserver;\n",
-       "        } else {\n",
-       "            var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n",
-       "            this.ResizeObserver = obs.ResizeObserver;\n",
-       "        }\n",
-       "    }\n",
-       "\n",
-       "    this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n",
-       "        var nentries = entries.length;\n",
-       "        for (var i = 0; i < nentries; i++) {\n",
-       "            var entry = entries[i];\n",
-       "            var width, height;\n",
-       "            if (entry.contentBoxSize) {\n",
-       "                if (entry.contentBoxSize instanceof Array) {\n",
-       "                    // Chrome 84 implements new version of spec.\n",
-       "                    width = entry.contentBoxSize[0].inlineSize;\n",
-       "                    height = entry.contentBoxSize[0].blockSize;\n",
-       "                } else {\n",
-       "                    // Firefox implements old version of spec.\n",
-       "                    width = entry.contentBoxSize.inlineSize;\n",
-       "                    height = entry.contentBoxSize.blockSize;\n",
-       "                }\n",
-       "            } else {\n",
-       "                // Chrome <84 implements even older version of spec.\n",
-       "                width = entry.contentRect.width;\n",
-       "                height = entry.contentRect.height;\n",
-       "            }\n",
-       "\n",
-       "            // Keep the size of the canvas and rubber band canvas in sync with\n",
-       "            // the canvas container.\n",
-       "            if (entry.devicePixelContentBoxSize) {\n",
-       "                // Chrome 84 implements new version of spec.\n",
-       "                canvas.setAttribute(\n",
-       "                    'width',\n",
-       "                    entry.devicePixelContentBoxSize[0].inlineSize\n",
-       "                );\n",
-       "                canvas.setAttribute(\n",
-       "                    'height',\n",
-       "                    entry.devicePixelContentBoxSize[0].blockSize\n",
-       "                );\n",
-       "            } else {\n",
-       "                canvas.setAttribute('width', width * fig.ratio);\n",
-       "                canvas.setAttribute('height', height * fig.ratio);\n",
-       "            }\n",
-       "            canvas.setAttribute(\n",
-       "                'style',\n",
-       "                'width: ' + width + 'px; height: ' + height + 'px;'\n",
-       "            );\n",
-       "\n",
-       "            rubberband_canvas.setAttribute('width', width);\n",
-       "            rubberband_canvas.setAttribute('height', height);\n",
-       "\n",
-       "            // And update the size in Python. We ignore the initial 0/0 size\n",
-       "            // that occurs as the element is placed into the DOM, which should\n",
-       "            // otherwise not happen due to the minimum size styling.\n",
-       "            if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n",
-       "                fig.request_resize(width, height);\n",
-       "            }\n",
-       "        }\n",
-       "    });\n",
-       "    this.resizeObserverInstance.observe(canvas_div);\n",
-       "\n",
-       "    function on_mouse_event_closure(name) {\n",
-       "        return function (event) {\n",
-       "            return fig.mouse_event(event, name);\n",
-       "        };\n",
-       "    }\n",
-       "\n",
-       "    rubberband_canvas.addEventListener(\n",
-       "        'mousedown',\n",
-       "        on_mouse_event_closure('button_press')\n",
-       "    );\n",
-       "    rubberband_canvas.addEventListener(\n",
-       "        'mouseup',\n",
-       "        on_mouse_event_closure('button_release')\n",
-       "    );\n",
-       "    // Throttle sequential mouse events to 1 every 20ms.\n",
-       "    rubberband_canvas.addEventListener(\n",
-       "        'mousemove',\n",
-       "        on_mouse_event_closure('motion_notify')\n",
-       "    );\n",
-       "\n",
-       "    rubberband_canvas.addEventListener(\n",
-       "        'mouseenter',\n",
-       "        on_mouse_event_closure('figure_enter')\n",
-       "    );\n",
-       "    rubberband_canvas.addEventListener(\n",
-       "        'mouseleave',\n",
-       "        on_mouse_event_closure('figure_leave')\n",
-       "    );\n",
-       "\n",
-       "    canvas_div.addEventListener('wheel', function (event) {\n",
-       "        if (event.deltaY < 0) {\n",
-       "            event.step = 1;\n",
-       "        } else {\n",
-       "            event.step = -1;\n",
-       "        }\n",
-       "        on_mouse_event_closure('scroll')(event);\n",
-       "    });\n",
-       "\n",
-       "    canvas_div.appendChild(canvas);\n",
-       "    canvas_div.appendChild(rubberband_canvas);\n",
-       "\n",
-       "    this.rubberband_context = rubberband_canvas.getContext('2d');\n",
-       "    this.rubberband_context.strokeStyle = '#000000';\n",
-       "\n",
-       "    this._resize_canvas = function (width, height, forward) {\n",
-       "        if (forward) {\n",
-       "            canvas_div.style.width = width + 'px';\n",
-       "            canvas_div.style.height = height + 'px';\n",
-       "        }\n",
-       "    };\n",
-       "\n",
-       "    // Disable right mouse context menu.\n",
-       "    this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n",
-       "        event.preventDefault();\n",
-       "        return false;\n",
-       "    });\n",
-       "\n",
-       "    function set_focus() {\n",
-       "        canvas.focus();\n",
-       "        canvas_div.focus();\n",
-       "    }\n",
-       "\n",
-       "    window.setTimeout(set_focus, 100);\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._init_toolbar = function () {\n",
-       "    var fig = this;\n",
-       "\n",
-       "    var toolbar = document.createElement('div');\n",
-       "    toolbar.classList = 'mpl-toolbar';\n",
-       "    this.root.appendChild(toolbar);\n",
-       "\n",
-       "    function on_click_closure(name) {\n",
-       "        return function (_event) {\n",
-       "            return fig.toolbar_button_onclick(name);\n",
-       "        };\n",
-       "    }\n",
-       "\n",
-       "    function on_mouseover_closure(tooltip) {\n",
-       "        return function (event) {\n",
-       "            if (!event.currentTarget.disabled) {\n",
-       "                return fig.toolbar_button_onmouseover(tooltip);\n",
-       "            }\n",
-       "        };\n",
-       "    }\n",
-       "\n",
-       "    fig.buttons = {};\n",
-       "    var buttonGroup = document.createElement('div');\n",
-       "    buttonGroup.classList = 'mpl-button-group';\n",
-       "    for (var toolbar_ind in mpl.toolbar_items) {\n",
-       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
-       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
-       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
-       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
-       "\n",
-       "        if (!name) {\n",
-       "            /* Instead of a spacer, we start a new button group. */\n",
-       "            if (buttonGroup.hasChildNodes()) {\n",
-       "                toolbar.appendChild(buttonGroup);\n",
-       "            }\n",
-       "            buttonGroup = document.createElement('div');\n",
-       "            buttonGroup.classList = 'mpl-button-group';\n",
-       "            continue;\n",
-       "        }\n",
-       "\n",
-       "        var button = (fig.buttons[name] = document.createElement('button'));\n",
-       "        button.classList = 'mpl-widget';\n",
-       "        button.setAttribute('role', 'button');\n",
-       "        button.setAttribute('aria-disabled', 'false');\n",
-       "        button.addEventListener('click', on_click_closure(method_name));\n",
-       "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
-       "\n",
-       "        var icon_img = document.createElement('img');\n",
-       "        icon_img.src = '_images/' + image + '.png';\n",
-       "        icon_img.srcset = '_images/' + image + '_large.png 2x';\n",
-       "        icon_img.alt = tooltip;\n",
-       "        button.appendChild(icon_img);\n",
-       "\n",
-       "        buttonGroup.appendChild(button);\n",
-       "    }\n",
-       "\n",
-       "    if (buttonGroup.hasChildNodes()) {\n",
-       "        toolbar.appendChild(buttonGroup);\n",
-       "    }\n",
-       "\n",
-       "    var fmt_picker = document.createElement('select');\n",
-       "    fmt_picker.classList = 'mpl-widget';\n",
-       "    toolbar.appendChild(fmt_picker);\n",
-       "    this.format_dropdown = fmt_picker;\n",
-       "\n",
-       "    for (var ind in mpl.extensions) {\n",
-       "        var fmt = mpl.extensions[ind];\n",
-       "        var option = document.createElement('option');\n",
-       "        option.selected = fmt === mpl.default_extension;\n",
-       "        option.innerHTML = fmt;\n",
-       "        fmt_picker.appendChild(option);\n",
-       "    }\n",
-       "\n",
-       "    var status_bar = document.createElement('span');\n",
-       "    status_bar.classList = 'mpl-message';\n",
-       "    toolbar.appendChild(status_bar);\n",
-       "    this.message = status_bar;\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n",
-       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
-       "    // which will in turn request a refresh of the image.\n",
-       "    this.send_message('resize', { width: x_pixels, height: y_pixels });\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.send_message = function (type, properties) {\n",
-       "    properties['type'] = type;\n",
-       "    properties['figure_id'] = this.id;\n",
-       "    this.ws.send(JSON.stringify(properties));\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.send_draw_message = function () {\n",
-       "    if (!this.waiting) {\n",
-       "        this.waiting = true;\n",
-       "        this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
-       "    var format_dropdown = fig.format_dropdown;\n",
-       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
-       "    fig.ondownload(fig, format);\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_resize = function (fig, msg) {\n",
-       "    var size = msg['size'];\n",
-       "    if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n",
-       "        fig._resize_canvas(size[0], size[1], msg['forward']);\n",
-       "        fig.send_message('refresh', {});\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_rubberband = function (fig, msg) {\n",
-       "    var x0 = msg['x0'] / fig.ratio;\n",
-       "    var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n",
-       "    var x1 = msg['x1'] / fig.ratio;\n",
-       "    var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n",
-       "    x0 = Math.floor(x0) + 0.5;\n",
-       "    y0 = Math.floor(y0) + 0.5;\n",
-       "    x1 = Math.floor(x1) + 0.5;\n",
-       "    y1 = Math.floor(y1) + 0.5;\n",
-       "    var min_x = Math.min(x0, x1);\n",
-       "    var min_y = Math.min(y0, y1);\n",
-       "    var width = Math.abs(x1 - x0);\n",
-       "    var height = Math.abs(y1 - y0);\n",
-       "\n",
-       "    fig.rubberband_context.clearRect(\n",
-       "        0,\n",
-       "        0,\n",
-       "        fig.canvas.width / fig.ratio,\n",
-       "        fig.canvas.height / fig.ratio\n",
-       "    );\n",
-       "\n",
-       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_figure_label = function (fig, msg) {\n",
-       "    // Updates the figure title.\n",
-       "    fig.header.textContent = msg['label'];\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_cursor = function (fig, msg) {\n",
-       "    var cursor = msg['cursor'];\n",
-       "    switch (cursor) {\n",
-       "        case 0:\n",
-       "            cursor = 'pointer';\n",
-       "            break;\n",
-       "        case 1:\n",
-       "            cursor = 'default';\n",
-       "            break;\n",
-       "        case 2:\n",
-       "            cursor = 'crosshair';\n",
-       "            break;\n",
-       "        case 3:\n",
-       "            cursor = 'move';\n",
-       "            break;\n",
-       "    }\n",
-       "    fig.rubberband_canvas.style.cursor = cursor;\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_message = function (fig, msg) {\n",
-       "    fig.message.textContent = msg['message'];\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_draw = function (fig, _msg) {\n",
-       "    // Request the server to send over a new figure.\n",
-       "    fig.send_draw_message();\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_image_mode = function (fig, msg) {\n",
-       "    fig.image_mode = msg['mode'];\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n",
-       "    for (var key in msg) {\n",
-       "        if (!(key in fig.buttons)) {\n",
-       "            continue;\n",
-       "        }\n",
-       "        fig.buttons[key].disabled = !msg[key];\n",
-       "        fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n",
-       "    if (msg['mode'] === 'PAN') {\n",
-       "        fig.buttons['Pan'].classList.add('active');\n",
-       "        fig.buttons['Zoom'].classList.remove('active');\n",
-       "    } else if (msg['mode'] === 'ZOOM') {\n",
-       "        fig.buttons['Pan'].classList.remove('active');\n",
-       "        fig.buttons['Zoom'].classList.add('active');\n",
-       "    } else {\n",
-       "        fig.buttons['Pan'].classList.remove('active');\n",
-       "        fig.buttons['Zoom'].classList.remove('active');\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.updated_canvas_event = function () {\n",
-       "    // Called whenever the canvas gets updated.\n",
-       "    this.send_message('ack', {});\n",
-       "};\n",
-       "\n",
-       "// A function to construct a web socket function for onmessage handling.\n",
-       "// Called in the figure constructor.\n",
-       "mpl.figure.prototype._make_on_message_function = function (fig) {\n",
-       "    return function socket_on_message(evt) {\n",
-       "        if (evt.data instanceof Blob) {\n",
-       "            /* FIXME: We get \"Resource interpreted as Image but\n",
-       "             * transferred with MIME type text/plain:\" errors on\n",
-       "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
-       "             * to be part of the websocket stream */\n",
-       "            evt.data.type = 'image/png';\n",
-       "\n",
-       "            /* Free the memory for the previous frames */\n",
-       "            if (fig.imageObj.src) {\n",
-       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
-       "                    fig.imageObj.src\n",
-       "                );\n",
-       "            }\n",
-       "\n",
-       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
-       "                evt.data\n",
-       "            );\n",
-       "            fig.updated_canvas_event();\n",
-       "            fig.waiting = false;\n",
-       "            return;\n",
-       "        } else if (\n",
-       "            typeof evt.data === 'string' &&\n",
-       "            evt.data.slice(0, 21) === 'data:image/png;base64'\n",
-       "        ) {\n",
-       "            fig.imageObj.src = evt.data;\n",
-       "            fig.updated_canvas_event();\n",
-       "            fig.waiting = false;\n",
-       "            return;\n",
-       "        }\n",
-       "\n",
-       "        var msg = JSON.parse(evt.data);\n",
-       "        var msg_type = msg['type'];\n",
-       "\n",
-       "        // Call the  \"handle_{type}\" callback, which takes\n",
-       "        // the figure and JSON message as its only arguments.\n",
-       "        try {\n",
-       "            var callback = fig['handle_' + msg_type];\n",
-       "        } catch (e) {\n",
-       "            console.log(\n",
-       "                \"No handler for the '\" + msg_type + \"' message type: \",\n",
-       "                msg\n",
-       "            );\n",
-       "            return;\n",
-       "        }\n",
-       "\n",
-       "        if (callback) {\n",
-       "            try {\n",
-       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
-       "                callback(fig, msg);\n",
-       "            } catch (e) {\n",
-       "                console.log(\n",
-       "                    \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n",
-       "                    e,\n",
-       "                    e.stack,\n",
-       "                    msg\n",
-       "                );\n",
-       "            }\n",
-       "        }\n",
-       "    };\n",
-       "};\n",
-       "\n",
-       "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
-       "mpl.findpos = function (e) {\n",
-       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
-       "    var targ;\n",
-       "    if (!e) {\n",
-       "        e = window.event;\n",
-       "    }\n",
-       "    if (e.target) {\n",
-       "        targ = e.target;\n",
-       "    } else if (e.srcElement) {\n",
-       "        targ = e.srcElement;\n",
-       "    }\n",
-       "    if (targ.nodeType === 3) {\n",
-       "        // defeat Safari bug\n",
-       "        targ = targ.parentNode;\n",
-       "    }\n",
-       "\n",
-       "    // pageX,Y are the mouse positions relative to the document\n",
-       "    var boundingRect = targ.getBoundingClientRect();\n",
-       "    var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n",
-       "    var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n",
-       "\n",
-       "    return { x: x, y: y };\n",
-       "};\n",
-       "\n",
-       "/*\n",
-       " * return a copy of an object with only non-object keys\n",
-       " * we need this to avoid circular references\n",
-       " * http://stackoverflow.com/a/24161582/3208463\n",
-       " */\n",
-       "function simpleKeys(original) {\n",
-       "    return Object.keys(original).reduce(function (obj, key) {\n",
-       "        if (typeof original[key] !== 'object') {\n",
-       "            obj[key] = original[key];\n",
-       "        }\n",
-       "        return obj;\n",
-       "    }, {});\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.mouse_event = function (event, name) {\n",
-       "    var canvas_pos = mpl.findpos(event);\n",
-       "\n",
-       "    if (name === 'button_press') {\n",
-       "        this.canvas.focus();\n",
-       "        this.canvas_div.focus();\n",
-       "    }\n",
-       "\n",
-       "    var x = canvas_pos.x * this.ratio;\n",
-       "    var y = canvas_pos.y * this.ratio;\n",
-       "\n",
-       "    this.send_message(name, {\n",
-       "        x: x,\n",
-       "        y: y,\n",
-       "        button: event.button,\n",
-       "        step: event.step,\n",
-       "        guiEvent: simpleKeys(event),\n",
-       "    });\n",
-       "\n",
-       "    /* This prevents the web browser from automatically changing to\n",
-       "     * the text insertion cursor when the button is pressed.  We want\n",
-       "     * to control all of the cursor setting manually through the\n",
-       "     * 'cursor' event from matplotlib */\n",
-       "    event.preventDefault();\n",
-       "    return false;\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._key_event_extra = function (_event, _name) {\n",
-       "    // Handle any extra behaviour associated with a key event\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.key_event = function (event, name) {\n",
-       "    // Prevent repeat events\n",
-       "    if (name === 'key_press') {\n",
-       "        if (event.which === this._key) {\n",
-       "            return;\n",
-       "        } else {\n",
-       "            this._key = event.which;\n",
-       "        }\n",
-       "    }\n",
-       "    if (name === 'key_release') {\n",
-       "        this._key = null;\n",
-       "    }\n",
-       "\n",
-       "    var value = '';\n",
-       "    if (event.ctrlKey && event.which !== 17) {\n",
-       "        value += 'ctrl+';\n",
-       "    }\n",
-       "    if (event.altKey && event.which !== 18) {\n",
-       "        value += 'alt+';\n",
-       "    }\n",
-       "    if (event.shiftKey && event.which !== 16) {\n",
-       "        value += 'shift+';\n",
-       "    }\n",
-       "\n",
-       "    value += 'k';\n",
-       "    value += event.which.toString();\n",
-       "\n",
-       "    this._key_event_extra(event, name);\n",
-       "\n",
-       "    this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n",
-       "    return false;\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.toolbar_button_onclick = function (name) {\n",
-       "    if (name === 'download') {\n",
-       "        this.handle_save(this, null);\n",
-       "    } else {\n",
-       "        this.send_message('toolbar_button', { name: name });\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n",
-       "    this.message.textContent = tooltip;\n",
-       "};\n",
-       "\n",
-       "///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n",
-       "// prettier-ignore\n",
-       "var _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\n",
-       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
-       "\n",
-       "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
-       "\n",
-       "mpl.default_extension = \"png\";/* global mpl */\n",
-       "\n",
-       "var comm_websocket_adapter = function (comm) {\n",
-       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
-       "    // object with the appropriate methods. Currently this is a non binary\n",
-       "    // socket, so there is still some room for performance tuning.\n",
-       "    var ws = {};\n",
-       "\n",
-       "    ws.close = function () {\n",
-       "        comm.close();\n",
-       "    };\n",
-       "    ws.send = function (m) {\n",
-       "        //console.log('sending', m);\n",
-       "        comm.send(m);\n",
-       "    };\n",
-       "    // Register the callback with on_msg.\n",
-       "    comm.on_msg(function (msg) {\n",
-       "        //console.log('receiving', msg['content']['data'], msg);\n",
-       "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
-       "        ws.onmessage(msg['content']['data']);\n",
-       "    });\n",
-       "    return ws;\n",
-       "};\n",
-       "\n",
-       "mpl.mpl_figure_comm = function (comm, msg) {\n",
-       "    // This is the function which gets called when the mpl process\n",
-       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
-       "\n",
-       "    var id = msg.content.data.id;\n",
-       "    // Get hold of the div created by the display call when the Comm\n",
-       "    // socket was opened in Python.\n",
-       "    var element = document.getElementById(id);\n",
-       "    var ws_proxy = comm_websocket_adapter(comm);\n",
-       "\n",
-       "    function ondownload(figure, _format) {\n",
-       "        window.open(figure.canvas.toDataURL());\n",
-       "    }\n",
-       "\n",
-       "    var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n",
-       "\n",
-       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
-       "    // web socket which is closed, not our websocket->open comm proxy.\n",
-       "    ws_proxy.onopen();\n",
-       "\n",
-       "    fig.parent_element = element;\n",
-       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
-       "    if (!fig.cell_info) {\n",
-       "        console.error('Failed to find cell for figure', id, fig);\n",
-       "        return;\n",
-       "    }\n",
-       "    fig.cell_info[0].output_area.element.on(\n",
-       "        'cleared',\n",
-       "        { fig: fig },\n",
-       "        fig._remove_fig_handler\n",
-       "    );\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_close = function (fig, msg) {\n",
-       "    var width = fig.canvas.width / fig.ratio;\n",
-       "    fig.cell_info[0].output_area.element.off(\n",
-       "        'cleared',\n",
-       "        fig._remove_fig_handler\n",
-       "    );\n",
-       "    fig.resizeObserverInstance.unobserve(fig.canvas_div);\n",
-       "\n",
-       "    // Update the output cell to use the data from the current canvas.\n",
-       "    fig.push_to_output();\n",
-       "    var dataURL = fig.canvas.toDataURL();\n",
-       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
-       "    // the notebook keyboard shortcuts fail.\n",
-       "    IPython.keyboard_manager.enable();\n",
-       "    fig.parent_element.innerHTML =\n",
-       "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
-       "    fig.close_ws(fig, msg);\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.close_ws = function (fig, msg) {\n",
-       "    fig.send_message('closing', msg);\n",
-       "    // fig.ws.close()\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.push_to_output = function (_remove_interactive) {\n",
-       "    // Turn the data on the canvas into data in the output cell.\n",
-       "    var width = this.canvas.width / this.ratio;\n",
-       "    var dataURL = this.canvas.toDataURL();\n",
-       "    this.cell_info[1]['text/html'] =\n",
-       "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.updated_canvas_event = function () {\n",
-       "    // Tell IPython that the notebook contents must change.\n",
-       "    IPython.notebook.set_dirty(true);\n",
-       "    this.send_message('ack', {});\n",
-       "    var fig = this;\n",
-       "    // Wait a second, then push the new image to the DOM so\n",
-       "    // that it is saved nicely (might be nice to debounce this).\n",
-       "    setTimeout(function () {\n",
-       "        fig.push_to_output();\n",
-       "    }, 1000);\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._init_toolbar = function () {\n",
-       "    var fig = this;\n",
-       "\n",
-       "    var toolbar = document.createElement('div');\n",
-       "    toolbar.classList = 'btn-toolbar';\n",
-       "    this.root.appendChild(toolbar);\n",
-       "\n",
-       "    function on_click_closure(name) {\n",
-       "        return function (_event) {\n",
-       "            return fig.toolbar_button_onclick(name);\n",
-       "        };\n",
-       "    }\n",
-       "\n",
-       "    function on_mouseover_closure(tooltip) {\n",
-       "        return function (event) {\n",
-       "            if (!event.currentTarget.disabled) {\n",
-       "                return fig.toolbar_button_onmouseover(tooltip);\n",
-       "            }\n",
-       "        };\n",
-       "    }\n",
-       "\n",
-       "    fig.buttons = {};\n",
-       "    var buttonGroup = document.createElement('div');\n",
-       "    buttonGroup.classList = 'btn-group';\n",
-       "    var button;\n",
-       "    for (var toolbar_ind in mpl.toolbar_items) {\n",
-       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
-       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
-       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
-       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
-       "\n",
-       "        if (!name) {\n",
-       "            /* Instead of a spacer, we start a new button group. */\n",
-       "            if (buttonGroup.hasChildNodes()) {\n",
-       "                toolbar.appendChild(buttonGroup);\n",
-       "            }\n",
-       "            buttonGroup = document.createElement('div');\n",
-       "            buttonGroup.classList = 'btn-group';\n",
-       "            continue;\n",
-       "        }\n",
-       "\n",
-       "        button = fig.buttons[name] = document.createElement('button');\n",
-       "        button.classList = 'btn btn-default';\n",
-       "        button.href = '#';\n",
-       "        button.title = name;\n",
-       "        button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n",
-       "        button.addEventListener('click', on_click_closure(method_name));\n",
-       "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
-       "        buttonGroup.appendChild(button);\n",
-       "    }\n",
-       "\n",
-       "    if (buttonGroup.hasChildNodes()) {\n",
-       "        toolbar.appendChild(buttonGroup);\n",
-       "    }\n",
-       "\n",
-       "    // Add the status bar.\n",
-       "    var status_bar = document.createElement('span');\n",
-       "    status_bar.classList = 'mpl-message pull-right';\n",
-       "    toolbar.appendChild(status_bar);\n",
-       "    this.message = status_bar;\n",
-       "\n",
-       "    // Add the close button to the window.\n",
-       "    var buttongrp = document.createElement('div');\n",
-       "    buttongrp.classList = 'btn-group inline pull-right';\n",
-       "    button = document.createElement('button');\n",
-       "    button.classList = 'btn btn-mini btn-primary';\n",
-       "    button.href = '#';\n",
-       "    button.title = 'Stop Interaction';\n",
-       "    button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n",
-       "    button.addEventListener('click', function (_evt) {\n",
-       "        fig.handle_close(fig, {});\n",
-       "    });\n",
-       "    button.addEventListener(\n",
-       "        'mouseover',\n",
-       "        on_mouseover_closure('Stop Interaction')\n",
-       "    );\n",
-       "    buttongrp.appendChild(button);\n",
-       "    var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n",
-       "    titlebar.insertBefore(buttongrp, titlebar.firstChild);\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._remove_fig_handler = function (event) {\n",
-       "    var fig = event.data.fig;\n",
-       "    if (event.target !== this) {\n",
-       "        // Ignore bubbled events from children.\n",
-       "        return;\n",
-       "    }\n",
-       "    fig.close_ws(fig, {});\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._root_extra_style = function (el) {\n",
-       "    el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._canvas_extra_style = function (el) {\n",
-       "    // this is important to make the div 'focusable\n",
-       "    el.setAttribute('tabindex', 0);\n",
-       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
-       "    // off when our div gets focus\n",
-       "\n",
-       "    // location in version 3\n",
-       "    if (IPython.notebook.keyboard_manager) {\n",
-       "        IPython.notebook.keyboard_manager.register_events(el);\n",
-       "    } else {\n",
-       "        // location in version 2\n",
-       "        IPython.keyboard_manager.register_events(el);\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._key_event_extra = function (event, _name) {\n",
-       "    var manager = IPython.notebook.keyboard_manager;\n",
-       "    if (!manager) {\n",
-       "        manager = IPython.keyboard_manager;\n",
-       "    }\n",
-       "\n",
-       "    // Check for shift+enter\n",
-       "    if (event.shiftKey && event.which === 13) {\n",
-       "        this.canvas_div.blur();\n",
-       "        // select the cell after this one\n",
-       "        var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
-       "        IPython.notebook.select(index + 1);\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
-       "    fig.ondownload(fig, null);\n",
-       "};\n",
-       "\n",
-       "mpl.find_output_cell = function (html_output) {\n",
-       "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
-       "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
-       "    // IPython event is triggered only after the cells have been serialised, which for\n",
-       "    // our purposes (turning an active figure into a static one), is too late.\n",
-       "    var cells = IPython.notebook.get_cells();\n",
-       "    var ncells = cells.length;\n",
-       "    for (var i = 0; i < ncells; i++) {\n",
-       "        var cell = cells[i];\n",
-       "        if (cell.cell_type === 'code') {\n",
-       "            for (var j = 0; j < cell.output_area.outputs.length; j++) {\n",
-       "                var data = cell.output_area.outputs[j];\n",
-       "                if (data.data) {\n",
-       "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
-       "                    data = data.data;\n",
-       "                }\n",
-       "                if (data['text/html'] === html_output) {\n",
-       "                    return [cell, data, j];\n",
-       "                }\n",
-       "            }\n",
-       "        }\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "// Register the function which deals with the matplotlib target/channel.\n",
-       "// The kernel may be null if the page has been refreshed.\n",
-       "if (IPython.notebook.kernel !== null) {\n",
-       "    IPython.notebook.kernel.comm_manager.register_target(\n",
-       "        'matplotlib',\n",
-       "        mpl.mpl_figure_comm\n",
-       "    );\n",
-       "}\n"
-      ],
-      "text/plain": [
-       "<IPython.core.display.Javascript object>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    },
-    {
-     "data": {
-      "text/html": [
-       "<img src=\"data:image/png;base64,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68UXX9RLL72kV155RWPGjNHYsWMVGRmp119/XW+88YbefPNNTZw4UW+99ZYmTZqkd955R++++67ee+89TZ48WVOmTNHUqVP1/vvva9q0aZo+fbo++OADzZgxQzNmzNDMmTM1c+ZMffjhh/rwww81a9YsffTRRxnWxx9/7F+zZ8++6JozZ47mzJmjuXPnau7cufrkk080c+ZMlS1bVsYYtWjRQmfPnr3ov+WpU6fUsGFDGWNUuXJlLVmyRD/88IN+/PFHrV+/Xj/99JO2bNmibdu2adeuXYqOjlZMTIyOHz+u06dPKz4+XikpKbky/DOL2kMghCeaEABynjNnzqhw4cIXhIJChQrp5ptvVu/evdWsWbMM15UpU0ZPPPGEvvrqK910000yxih//vx66623rA2ZaWlpOnnypH755RetXLlSn332md5//31FRkbq2Wef1cCBA9WtWze1atVKTZs2Ve3atVWhQgUVKlQoWz//r3Tp0tqyZYuVPbhSe/fuVb169ax+HiLrylbTpk0VGxt72X/LEydOqH79+pn6XqGhoSpcuLDKlCmjypUr6/rrr1eDBg3UrFkz3X333erYsaMiIiI0cOBA/fOf/9SLL76oN998UzNnztTixYu1Zs0a7dq1SydOnFBqaqqFn+DLYxa1h0AITzQhAOQ848aNkzG/v78sIiJCjRs3VsGCBS8YHvPnz6+OHTtqwYIFSk5O9t///Pnz6tGjh/92Dz74oBITE6+qlpSUFMXExGjjxo364osvNGXKFL300ksaNGiQunbtqjvuuEP16tVT2bJlFRoamunhu1ChQipXrpxq1Kihhg0b6pZbbtE999yjzp07KyIiQgMGDNDgwYP17LPP6sUXX1RkZKQmTZqk999/X7NmzdKnn36qRYsW6euvv9aKFSu0Zs2aoP9/oM/nU0pKipKSknT+/HmdO3dOcXFxOn36tE6ePKnjx4/ryJEjiomJ0YEDBxQdHa29e/dq165d2rFjh7Zu3aotW7bop59+0vr167V27VqtWrVKK1as0PLly7Vs2TItXbpUX3zxhRYuXKj58+frk08+0ezZszVr1izNmDFD06ZN0+TJk/Xuu+9q0qRJmjhxot544w2NGzdOr732ml555RX961//0gsvvKDnn39eI0aM0LPPPqvhw4dr6NCheuqppzR48GA98cQTevzxx/XYY49pwIABevjhh/XQQw+pX79+6tu3r3r37q1evXqpR48e6t69u7p166auXbuqS5cu6ty5szp16qSOHTuqQ4cOat++ve6//361a9dObdu21X333ad7771X9957r9q0aaM2bdronnvu0T333KPWrVurVatWGdbf/vY3/7r77rv966677sqwWrZs6V933nlnhvXQQw/p9OnTAf9bHjlyRB07dlS9evVUu3Zt1ahRQ9WrV1eVKlVUsWJFXXPNNSpZsqSKFCni/2zK7FylSpVSvXr1dPfdd6tnz54aOnSoxo0bp48//thaXzCL2kMghCeaEABylrS0NF177bUyxmjq1KkZLt+zZ48+++wzvfTSS3r77bd1/Pjxix7H5/Np3Lhx/pDWpEmTDO8r9Pl8io2N1bZt27RkyRJNnjxZo0ePVv/+/dWuXTs1btxY5cqVU0hIyBUPoSVLllStWrXUokULtW3bVhEREXriiSc0atQo/7MZixYt0ooVK7RlyxZFR0frt99+U0pKSrbuLRBs/vhjQHx8vE6fPq0jR44oOjpaO3bs0KZNm7R69Wp98803+vzzz/XRRx/p3Xff1bhx4zRq1CgNGTJEAwYMULdu3dS6dWvdfPPNqlGjhv8EOJdbtWrV0okTJ7L9MTKL2kMghCeaEABylgULFsiY318CmpCQkOnjffPNNypdurSM+f19ha1bt1a9evX8n6cWyAoLC1OVKlXUpEkTtWvXTg8//LBGjBihiRMnas6cOVq+fLm2bt2qo0ePEuqAIPDHy7d37Nih5cuXa9asWYqMjNTQoUPVs2dP//uOmzZt6nmiHC+nTp3SokWLtGPHjgvez3wpzKL2EAjhiSYEgJzlzjvvlDFGzz77bJYdMzo6Wo0aNbroS8oaNmyotm3bqn///ho9erQmT56sL7/8Ulu2bNGJEyeuaPgDEPx27dqlMmXKyBije++997J/yPnpp59UuXJl/++N4sWLq1WrVhoxYoS++OKLSz7TyCxqD4EQnmhCAMg5tmzZImOM8uXLp5iYmCw9dnx8vP8sjd9++612796t+Pj4LP0eAHKOdevW+U9e1adPn4uefOqTTz7xn/ipXLlyFz0JVJMmTTx/bzGL2kMghCeaEAByjn79+skYo+7du7suBUAesHjxYuXLl0/GGD399NMZrktPT9fzzz/vD3z33nuvYmNjlZqaqi1btujf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FBYWpvz58ytfvnwKCQmxFhgzs0qUKKGZM2deMuAlJiZq2LBhGR5Tu3btdPTo0Uv+exw/flxdunTx36d06dKaO3fuZf8dd+7cqRYtWvjv17NnT50+ffqy97uUqKgo3XvvvQoLC9OIESOUnJycqePldmfPntXSpUu1ePFiLV26VF9//bW+/fZbfffdd1q5cqVWrVqlNWvWaN26ddq4caM2bdqkn3/+WRs3brzgWcEdO3a4fjgAAFhBILSHQAhPfzRh0aJFZYxRkSJF9N5772UIO3FxcXrooYf8A2vdunX15Zdfql27dhk+u+zXX3/NcOzdu3frr3/9q/82999/f8DPePl8PqWlpSk1NVXJyclKSkpSYmKiEhISdP78ecXHx+vcuXOKi4tTbGysTp8+rVOnTunkyZM6ceKEjh07piNHjujw4cOKiYnRwYMHtX//fv3666+KiorS3r17tWfPHu3evVs7d+7Ujh07tG3bNm3dulVbtmzR5s2btWnTJm3cuFEbNmzQunXrtHz58gyhq3Pnzjpx4sQFta9fv15169b1365Nmzb+QFymTBl9+umnno/5k08+UdmyZWWMUf78+VW7dm3/MXr06KFTp05dcJ+0tDRFRkYqPDzc/++YL18+GWNUqVIlffXVVwHt95+lpKRozJgxKlSoUIYgfNNNN2nbtm1XfLy84Msvv8xwRs+rWTwrCADIiwiE9hAI4emPJty2bZtatmzpH07btm2rI0eO6Ntvv1W1atX8L8McMmSIEhISJP0e2iZPnqwiRYrIGKNixYrp/fffV3p6uiZOnOgPFMWLF9f06dNzxXv7UlNT9fLLLyt//vwyxqhcuXL6/PPPJUlJSUl69tlnFRoaKmOMKlSooEWLFkn6/SWzN910k39/e/Xq5X8G7+TJk+rWrZv/uoYNG2rLli1KSUnR888/nyHgff311/5adu3alSFw33PPPTp48KDWrVuXIUw+9thjAZ9YZP369WrYsKH/vnfddZfeffddlSlTxh9aIiMjr/j9o7nVqVOn1Lt3b/9+VapUSU2aNNFf/vIXNWrUSDfeeKPq16+vunXrqlatWqpZs6auvfZaVa1aVZUrV1aFChV0zTXX6O677+ZZQQBAnkQgtIdACE9/bsL09HS9/vrr/mebihUr5h90a9SooR9++MHzGFFRUbrtttv8t/3zMyWtWrXSgQMH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jMsvv1y1tbXq7e2NOi4UCqmurk55eXkyMy1atEiff/65Dh48qLVr12rNmjXKycmRmWnjxo1nPA8AgH9RCAEAvnPixAnNnj1bDQ0NkW39/f1nNZaZaeHChZ77wuGwqqurdd5552n+/PlqaWnR4OBgZN++fftUVFQkM9Ps2bPP6vsHBgY0b948mZkWL14c99iamhrl5ubq1KlTMfva2toohACAGBRCAIDv1NXVKSUlRcePH//XY5mZbr/9ds99q1evjhS1gYEBz2PC4bDuueceTZ8+/azn8P7778vMlJSUpB9//HHE42655RZt27bNc19HRweFEAAQg0IIAPCdvLw85efnj8lYIxXClpYWmZnOP/98/frrr3HH6Ovr06xZsxQOh89qDuFwWNdcc43MTI899pjnMd99953S09M9nw5KFEIAgDcKIQDAF3p6erR06VLdeOONMjNlZ2dr6dKlKikp0fDw8FmPO1IhPP09Dz30kNM427dv19DQUMz2r776Svfff79uvfVWzZkzR4WFhero6Ig5btu2bTIzTZs2TT///HPM/kcffVRVVVUjfj+FEADghUIIAPCVxsZGmZmamprGZDyvQnjs2DElJSXJzKJ+p3imdu/erYKCAh09elTS308Ss7OzNWXKFH3xxRdRx/7111+66qqrZGZ65plnovYdP35cqampcVdRpRACALxQCAEAvlJZWSkzU2dn55iM51UIv/7668jKnzt37hzx3D179qijoyPqs2/fPknS0NCQMjMz1draGnXO888/LzNTWVlZzHhvvPGGzEypqalRv4985ZVXtGzZsrjXQSEEAHihEAIAfKWwsPBf/V7v/3kVwi+//DJSCHft2jXiuT09PWpoaIgcW1FRoe7ubknSrl27ZGYqKipSaWlp5HPHHXcoNzdXd999d8x4p06d0mWXXSYzU01NjSRpeHhYV155pXbv3h33OiiEAAAvFEIAgG8MDw9r5syZWrJkyZiN6VUIjxw5Eil5jY2No45xySWXyMzU3t4e2VZXVycz0w8//HBG8zl93sUXX6z+/n61trYqLy9v1PMohAAALxRCAIBvdHZ2ysziLq5ypkZaVOb0uwHLy8tHHSMrK0tmFrVYTG1tbcw2FydPnlRaWprMTK+99pqWLFmi119/fdTzKIQAAC8UQgCAbzQ3N8vM9OGHH8bs6+7uVjAY1I4dO7R161ZlZmbqp59+GnXMkQrhli1bIqt+9vT0xB3DqxA2NTXJzPTEE094nrNnz54Rnx5WV1fLzJSWlqZZs2bpzz//HPU6KIQAAC8UQgCAbzz99NMyM/X29kZt379/v6677rrI+wKbmpp07bXXOo05UiEcHh7WsmXLZGbKz8/Xb7/9NuIYXoXwl19+0ZQpU5SSkqKPP/44Zr4lJSUjjnd6VVEzU2VlpdN1UAgBAF4ohAAA31i8eLECgUDUtqGhIS1YsEBvv/12ZNtzzz2nNWvWOI05UiGUpFAopGeffVZTp05VZmamGhoaolb/HBwc1Pbt25WcnKyLLrooZuXTTZs2ycyUnJys0tJSrV+/XitWrFBGRob2798fd17BYFBJSUk6cOCA03VQCAEAXiiEAADfuPDCC/Xggw9GbWtublYgEFAoFJL095O9nJycuK+L+Kd4hfC03t5e1dTU6LbbbtOll16qQCCgq6++Wjk5OSopKdHmzZvV19fnee6bb76p+fPna+rUqQoEAiovL1dXV9eo8zp69KhKS0udrkGiEAIAvFEIAQC+cPDgQZmZduzYEbW9vLw8qiQ2NjYqJSVFf/zxh9O4LoXwXEAhBAB4oRACAHzhnXfe0YwZM2KK3r333qv77rtPkvTpp59q06ZNWrBggb755hsdPnx41HEphAAAP6MQAgDOSeFwWC0tLerv75ckLV++XE8++WTMce3t7UpLS1NxcbHa2trU1tamjIyMuC+U/yczU25u7pi96P6/0traSiEEAMSgEAIAzknffvutzEzvvfeeDh06pLlz58Zd6fNsFRYWqrCwUBUVFQoGg9q6deuYf8d46erqUjAY1Lp163TXXXepsLAwanEdAAAohACAc9Lg4KCKi4v18MMP65FHHhnxnX0AAGBk/wMHoxUXo5XKtwAAAABJRU5ErkJggg==\" width=\"900\">"
-      ],
-      "text/plain": [
-       "<IPython.core.display.HTML object>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "if True:\n",
-    "    fig=plt.figure(figsize=(9,4))\n",
-    "    fig.subplots_adjust(bottom=0.15, left=0.15, top = 0.95, right=0.9,wspace=0.0,hspace=0.0)\n",
-    "    fig.suptitle('')\n",
-    "\n",
-    "    sub = fig.add_subplot(1,1,1)\n",
-    "\n",
-    "    sub.plot(MatterDat[:,1],gamma_osc,linestyle='-',c='xkcd:black')\n",
-    "\n",
-    "    sub.set_xlabel(r'$f_a ~ [{\\rm GeV}]$')\n",
-    "    sub.set_ylabel(r'$\\gamma_{\\rm osc}$')\n",
-    "\n",
-    "    #set major ticks\n",
-    "    _M_xticks=[ 10.**i for i in range(9,20) ]\n",
-    "    _M_yticks=[ 1+0.5*i for i in range(0,10) ]\n",
-    "\n",
-    "    #set major ticks that will not have a label\n",
-    "    _M_xticks_exception=[]\n",
-    "    _M_yticks_exception=[]\n",
-    "\n",
-    "    _m_xticks=[]\n",
-    "    _m_yticks=[]  \n",
-    "    ft=FT(_M_xticks,_M_yticks,\n",
-    "                 _M_xticks_exception,_M_yticks_exception,\n",
-    "                 _m_xticks,_m_yticks,\n",
-    "                 xmin=1e10,xmax=1e19,ymin=1,ymax=3,xscale='log',yscale='linear')\n",
-    "\n",
-    "    ft.format_ticks(plt,sub) \n",
-    "\n",
-    "    plt.savefig('gamma_osc.pdf',bbox_inches='tight')\n",
-    "    fig.show()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": 9,
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "application/javascript": [
-       "/* Put everything inside the global mpl namespace */\n",
-       "/* global mpl */\n",
-       "window.mpl = {};\n",
-       "\n",
-       "mpl.get_websocket_type = function () {\n",
-       "    if (typeof WebSocket !== 'undefined') {\n",
-       "        return WebSocket;\n",
-       "    } else if (typeof MozWebSocket !== 'undefined') {\n",
-       "        return MozWebSocket;\n",
-       "    } else {\n",
-       "        alert(\n",
-       "            'Your browser does not have WebSocket support. ' +\n",
-       "                'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
-       "                'Firefox 4 and 5 are also supported but you ' +\n",
-       "                'have to enable WebSockets in about:config.'\n",
-       "        );\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure = function (figure_id, websocket, ondownload, parent_element) {\n",
-       "    this.id = figure_id;\n",
-       "\n",
-       "    this.ws = websocket;\n",
-       "\n",
-       "    this.supports_binary = this.ws.binaryType !== undefined;\n",
-       "\n",
-       "    if (!this.supports_binary) {\n",
-       "        var warnings = document.getElementById('mpl-warnings');\n",
-       "        if (warnings) {\n",
-       "            warnings.style.display = 'block';\n",
-       "            warnings.textContent =\n",
-       "                'This browser does not support binary websocket messages. ' +\n",
-       "                'Performance may be slow.';\n",
-       "        }\n",
-       "    }\n",
-       "\n",
-       "    this.imageObj = new Image();\n",
-       "\n",
-       "    this.context = undefined;\n",
-       "    this.message = undefined;\n",
-       "    this.canvas = undefined;\n",
-       "    this.rubberband_canvas = undefined;\n",
-       "    this.rubberband_context = undefined;\n",
-       "    this.format_dropdown = undefined;\n",
-       "\n",
-       "    this.image_mode = 'full';\n",
-       "\n",
-       "    this.root = document.createElement('div');\n",
-       "    this.root.setAttribute('style', 'display: inline-block');\n",
-       "    this._root_extra_style(this.root);\n",
-       "\n",
-       "    parent_element.appendChild(this.root);\n",
-       "\n",
-       "    this._init_header(this);\n",
-       "    this._init_canvas(this);\n",
-       "    this._init_toolbar(this);\n",
-       "\n",
-       "    var fig = this;\n",
-       "\n",
-       "    this.waiting = false;\n",
-       "\n",
-       "    this.ws.onopen = function () {\n",
-       "        fig.send_message('supports_binary', { value: fig.supports_binary });\n",
-       "        fig.send_message('send_image_mode', {});\n",
-       "        if (fig.ratio !== 1) {\n",
-       "            fig.send_message('set_dpi_ratio', { dpi_ratio: fig.ratio });\n",
-       "        }\n",
-       "        fig.send_message('refresh', {});\n",
-       "    };\n",
-       "\n",
-       "    this.imageObj.onload = function () {\n",
-       "        if (fig.image_mode === 'full') {\n",
-       "            // Full images could contain transparency (where diff images\n",
-       "            // almost always do), so we need to clear the canvas so that\n",
-       "            // there is no ghosting.\n",
-       "            fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
-       "        }\n",
-       "        fig.context.drawImage(fig.imageObj, 0, 0);\n",
-       "    };\n",
-       "\n",
-       "    this.imageObj.onunload = function () {\n",
-       "        fig.ws.close();\n",
-       "    };\n",
-       "\n",
-       "    this.ws.onmessage = this._make_on_message_function(this);\n",
-       "\n",
-       "    this.ondownload = ondownload;\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._init_header = function () {\n",
-       "    var titlebar = document.createElement('div');\n",
-       "    titlebar.classList =\n",
-       "        'ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix';\n",
-       "    var titletext = document.createElement('div');\n",
-       "    titletext.classList = 'ui-dialog-title';\n",
-       "    titletext.setAttribute(\n",
-       "        'style',\n",
-       "        'width: 100%; text-align: center; padding: 3px;'\n",
-       "    );\n",
-       "    titlebar.appendChild(titletext);\n",
-       "    this.root.appendChild(titlebar);\n",
-       "    this.header = titletext;\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._canvas_extra_style = function (_canvas_div) {};\n",
-       "\n",
-       "mpl.figure.prototype._root_extra_style = function (_canvas_div) {};\n",
-       "\n",
-       "mpl.figure.prototype._init_canvas = function () {\n",
-       "    var fig = this;\n",
-       "\n",
-       "    var canvas_div = (this.canvas_div = document.createElement('div'));\n",
-       "    canvas_div.setAttribute(\n",
-       "        'style',\n",
-       "        'border: 1px solid #ddd;' +\n",
-       "            'box-sizing: content-box;' +\n",
-       "            'clear: both;' +\n",
-       "            'min-height: 1px;' +\n",
-       "            'min-width: 1px;' +\n",
-       "            'outline: 0;' +\n",
-       "            'overflow: hidden;' +\n",
-       "            'position: relative;' +\n",
-       "            'resize: both;'\n",
-       "    );\n",
-       "\n",
-       "    function on_keyboard_event_closure(name) {\n",
-       "        return function (event) {\n",
-       "            return fig.key_event(event, name);\n",
-       "        };\n",
-       "    }\n",
-       "\n",
-       "    canvas_div.addEventListener(\n",
-       "        'keydown',\n",
-       "        on_keyboard_event_closure('key_press')\n",
-       "    );\n",
-       "    canvas_div.addEventListener(\n",
-       "        'keyup',\n",
-       "        on_keyboard_event_closure('key_release')\n",
-       "    );\n",
-       "\n",
-       "    this._canvas_extra_style(canvas_div);\n",
-       "    this.root.appendChild(canvas_div);\n",
-       "\n",
-       "    var canvas = (this.canvas = document.createElement('canvas'));\n",
-       "    canvas.classList.add('mpl-canvas');\n",
-       "    canvas.setAttribute('style', 'box-sizing: content-box;');\n",
-       "\n",
-       "    this.context = canvas.getContext('2d');\n",
-       "\n",
-       "    var backingStore =\n",
-       "        this.context.backingStorePixelRatio ||\n",
-       "        this.context.webkitBackingStorePixelRatio ||\n",
-       "        this.context.mozBackingStorePixelRatio ||\n",
-       "        this.context.msBackingStorePixelRatio ||\n",
-       "        this.context.oBackingStorePixelRatio ||\n",
-       "        this.context.backingStorePixelRatio ||\n",
-       "        1;\n",
-       "\n",
-       "    this.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
-       "\n",
-       "    var rubberband_canvas = (this.rubberband_canvas = document.createElement(\n",
-       "        'canvas'\n",
-       "    ));\n",
-       "    rubberband_canvas.setAttribute(\n",
-       "        'style',\n",
-       "        'box-sizing: content-box; position: absolute; left: 0; top: 0; z-index: 1;'\n",
-       "    );\n",
-       "\n",
-       "    // Apply a ponyfill if ResizeObserver is not implemented by browser.\n",
-       "    if (this.ResizeObserver === undefined) {\n",
-       "        if (window.ResizeObserver !== undefined) {\n",
-       "            this.ResizeObserver = window.ResizeObserver;\n",
-       "        } else {\n",
-       "            var obs = _JSXTOOLS_RESIZE_OBSERVER({});\n",
-       "            this.ResizeObserver = obs.ResizeObserver;\n",
-       "        }\n",
-       "    }\n",
-       "\n",
-       "    this.resizeObserverInstance = new this.ResizeObserver(function (entries) {\n",
-       "        var nentries = entries.length;\n",
-       "        for (var i = 0; i < nentries; i++) {\n",
-       "            var entry = entries[i];\n",
-       "            var width, height;\n",
-       "            if (entry.contentBoxSize) {\n",
-       "                if (entry.contentBoxSize instanceof Array) {\n",
-       "                    // Chrome 84 implements new version of spec.\n",
-       "                    width = entry.contentBoxSize[0].inlineSize;\n",
-       "                    height = entry.contentBoxSize[0].blockSize;\n",
-       "                } else {\n",
-       "                    // Firefox implements old version of spec.\n",
-       "                    width = entry.contentBoxSize.inlineSize;\n",
-       "                    height = entry.contentBoxSize.blockSize;\n",
-       "                }\n",
-       "            } else {\n",
-       "                // Chrome <84 implements even older version of spec.\n",
-       "                width = entry.contentRect.width;\n",
-       "                height = entry.contentRect.height;\n",
-       "            }\n",
-       "\n",
-       "            // Keep the size of the canvas and rubber band canvas in sync with\n",
-       "            // the canvas container.\n",
-       "            if (entry.devicePixelContentBoxSize) {\n",
-       "                // Chrome 84 implements new version of spec.\n",
-       "                canvas.setAttribute(\n",
-       "                    'width',\n",
-       "                    entry.devicePixelContentBoxSize[0].inlineSize\n",
-       "                );\n",
-       "                canvas.setAttribute(\n",
-       "                    'height',\n",
-       "                    entry.devicePixelContentBoxSize[0].blockSize\n",
-       "                );\n",
-       "            } else {\n",
-       "                canvas.setAttribute('width', width * fig.ratio);\n",
-       "                canvas.setAttribute('height', height * fig.ratio);\n",
-       "            }\n",
-       "            canvas.setAttribute(\n",
-       "                'style',\n",
-       "                'width: ' + width + 'px; height: ' + height + 'px;'\n",
-       "            );\n",
-       "\n",
-       "            rubberband_canvas.setAttribute('width', width);\n",
-       "            rubberband_canvas.setAttribute('height', height);\n",
-       "\n",
-       "            // And update the size in Python. We ignore the initial 0/0 size\n",
-       "            // that occurs as the element is placed into the DOM, which should\n",
-       "            // otherwise not happen due to the minimum size styling.\n",
-       "            if (fig.ws.readyState == 1 && width != 0 && height != 0) {\n",
-       "                fig.request_resize(width, height);\n",
-       "            }\n",
-       "        }\n",
-       "    });\n",
-       "    this.resizeObserverInstance.observe(canvas_div);\n",
-       "\n",
-       "    function on_mouse_event_closure(name) {\n",
-       "        return function (event) {\n",
-       "            return fig.mouse_event(event, name);\n",
-       "        };\n",
-       "    }\n",
-       "\n",
-       "    rubberband_canvas.addEventListener(\n",
-       "        'mousedown',\n",
-       "        on_mouse_event_closure('button_press')\n",
-       "    );\n",
-       "    rubberband_canvas.addEventListener(\n",
-       "        'mouseup',\n",
-       "        on_mouse_event_closure('button_release')\n",
-       "    );\n",
-       "    // Throttle sequential mouse events to 1 every 20ms.\n",
-       "    rubberband_canvas.addEventListener(\n",
-       "        'mousemove',\n",
-       "        on_mouse_event_closure('motion_notify')\n",
-       "    );\n",
-       "\n",
-       "    rubberband_canvas.addEventListener(\n",
-       "        'mouseenter',\n",
-       "        on_mouse_event_closure('figure_enter')\n",
-       "    );\n",
-       "    rubberband_canvas.addEventListener(\n",
-       "        'mouseleave',\n",
-       "        on_mouse_event_closure('figure_leave')\n",
-       "    );\n",
-       "\n",
-       "    canvas_div.addEventListener('wheel', function (event) {\n",
-       "        if (event.deltaY < 0) {\n",
-       "            event.step = 1;\n",
-       "        } else {\n",
-       "            event.step = -1;\n",
-       "        }\n",
-       "        on_mouse_event_closure('scroll')(event);\n",
-       "    });\n",
-       "\n",
-       "    canvas_div.appendChild(canvas);\n",
-       "    canvas_div.appendChild(rubberband_canvas);\n",
-       "\n",
-       "    this.rubberband_context = rubberband_canvas.getContext('2d');\n",
-       "    this.rubberband_context.strokeStyle = '#000000';\n",
-       "\n",
-       "    this._resize_canvas = function (width, height, forward) {\n",
-       "        if (forward) {\n",
-       "            canvas_div.style.width = width + 'px';\n",
-       "            canvas_div.style.height = height + 'px';\n",
-       "        }\n",
-       "    };\n",
-       "\n",
-       "    // Disable right mouse context menu.\n",
-       "    this.rubberband_canvas.addEventListener('contextmenu', function (_e) {\n",
-       "        event.preventDefault();\n",
-       "        return false;\n",
-       "    });\n",
-       "\n",
-       "    function set_focus() {\n",
-       "        canvas.focus();\n",
-       "        canvas_div.focus();\n",
-       "    }\n",
-       "\n",
-       "    window.setTimeout(set_focus, 100);\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._init_toolbar = function () {\n",
-       "    var fig = this;\n",
-       "\n",
-       "    var toolbar = document.createElement('div');\n",
-       "    toolbar.classList = 'mpl-toolbar';\n",
-       "    this.root.appendChild(toolbar);\n",
-       "\n",
-       "    function on_click_closure(name) {\n",
-       "        return function (_event) {\n",
-       "            return fig.toolbar_button_onclick(name);\n",
-       "        };\n",
-       "    }\n",
-       "\n",
-       "    function on_mouseover_closure(tooltip) {\n",
-       "        return function (event) {\n",
-       "            if (!event.currentTarget.disabled) {\n",
-       "                return fig.toolbar_button_onmouseover(tooltip);\n",
-       "            }\n",
-       "        };\n",
-       "    }\n",
-       "\n",
-       "    fig.buttons = {};\n",
-       "    var buttonGroup = document.createElement('div');\n",
-       "    buttonGroup.classList = 'mpl-button-group';\n",
-       "    for (var toolbar_ind in mpl.toolbar_items) {\n",
-       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
-       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
-       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
-       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
-       "\n",
-       "        if (!name) {\n",
-       "            /* Instead of a spacer, we start a new button group. */\n",
-       "            if (buttonGroup.hasChildNodes()) {\n",
-       "                toolbar.appendChild(buttonGroup);\n",
-       "            }\n",
-       "            buttonGroup = document.createElement('div');\n",
-       "            buttonGroup.classList = 'mpl-button-group';\n",
-       "            continue;\n",
-       "        }\n",
-       "\n",
-       "        var button = (fig.buttons[name] = document.createElement('button'));\n",
-       "        button.classList = 'mpl-widget';\n",
-       "        button.setAttribute('role', 'button');\n",
-       "        button.setAttribute('aria-disabled', 'false');\n",
-       "        button.addEventListener('click', on_click_closure(method_name));\n",
-       "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
-       "\n",
-       "        var icon_img = document.createElement('img');\n",
-       "        icon_img.src = '_images/' + image + '.png';\n",
-       "        icon_img.srcset = '_images/' + image + '_large.png 2x';\n",
-       "        icon_img.alt = tooltip;\n",
-       "        button.appendChild(icon_img);\n",
-       "\n",
-       "        buttonGroup.appendChild(button);\n",
-       "    }\n",
-       "\n",
-       "    if (buttonGroup.hasChildNodes()) {\n",
-       "        toolbar.appendChild(buttonGroup);\n",
-       "    }\n",
-       "\n",
-       "    var fmt_picker = document.createElement('select');\n",
-       "    fmt_picker.classList = 'mpl-widget';\n",
-       "    toolbar.appendChild(fmt_picker);\n",
-       "    this.format_dropdown = fmt_picker;\n",
-       "\n",
-       "    for (var ind in mpl.extensions) {\n",
-       "        var fmt = mpl.extensions[ind];\n",
-       "        var option = document.createElement('option');\n",
-       "        option.selected = fmt === mpl.default_extension;\n",
-       "        option.innerHTML = fmt;\n",
-       "        fmt_picker.appendChild(option);\n",
-       "    }\n",
-       "\n",
-       "    var status_bar = document.createElement('span');\n",
-       "    status_bar.classList = 'mpl-message';\n",
-       "    toolbar.appendChild(status_bar);\n",
-       "    this.message = status_bar;\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.request_resize = function (x_pixels, y_pixels) {\n",
-       "    // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
-       "    // which will in turn request a refresh of the image.\n",
-       "    this.send_message('resize', { width: x_pixels, height: y_pixels });\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.send_message = function (type, properties) {\n",
-       "    properties['type'] = type;\n",
-       "    properties['figure_id'] = this.id;\n",
-       "    this.ws.send(JSON.stringify(properties));\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.send_draw_message = function () {\n",
-       "    if (!this.waiting) {\n",
-       "        this.waiting = true;\n",
-       "        this.ws.send(JSON.stringify({ type: 'draw', figure_id: this.id }));\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
-       "    var format_dropdown = fig.format_dropdown;\n",
-       "    var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
-       "    fig.ondownload(fig, format);\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_resize = function (fig, msg) {\n",
-       "    var size = msg['size'];\n",
-       "    if (size[0] !== fig.canvas.width || size[1] !== fig.canvas.height) {\n",
-       "        fig._resize_canvas(size[0], size[1], msg['forward']);\n",
-       "        fig.send_message('refresh', {});\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_rubberband = function (fig, msg) {\n",
-       "    var x0 = msg['x0'] / fig.ratio;\n",
-       "    var y0 = (fig.canvas.height - msg['y0']) / fig.ratio;\n",
-       "    var x1 = msg['x1'] / fig.ratio;\n",
-       "    var y1 = (fig.canvas.height - msg['y1']) / fig.ratio;\n",
-       "    x0 = Math.floor(x0) + 0.5;\n",
-       "    y0 = Math.floor(y0) + 0.5;\n",
-       "    x1 = Math.floor(x1) + 0.5;\n",
-       "    y1 = Math.floor(y1) + 0.5;\n",
-       "    var min_x = Math.min(x0, x1);\n",
-       "    var min_y = Math.min(y0, y1);\n",
-       "    var width = Math.abs(x1 - x0);\n",
-       "    var height = Math.abs(y1 - y0);\n",
-       "\n",
-       "    fig.rubberband_context.clearRect(\n",
-       "        0,\n",
-       "        0,\n",
-       "        fig.canvas.width / fig.ratio,\n",
-       "        fig.canvas.height / fig.ratio\n",
-       "    );\n",
-       "\n",
-       "    fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_figure_label = function (fig, msg) {\n",
-       "    // Updates the figure title.\n",
-       "    fig.header.textContent = msg['label'];\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_cursor = function (fig, msg) {\n",
-       "    var cursor = msg['cursor'];\n",
-       "    switch (cursor) {\n",
-       "        case 0:\n",
-       "            cursor = 'pointer';\n",
-       "            break;\n",
-       "        case 1:\n",
-       "            cursor = 'default';\n",
-       "            break;\n",
-       "        case 2:\n",
-       "            cursor = 'crosshair';\n",
-       "            break;\n",
-       "        case 3:\n",
-       "            cursor = 'move';\n",
-       "            break;\n",
-       "    }\n",
-       "    fig.rubberband_canvas.style.cursor = cursor;\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_message = function (fig, msg) {\n",
-       "    fig.message.textContent = msg['message'];\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_draw = function (fig, _msg) {\n",
-       "    // Request the server to send over a new figure.\n",
-       "    fig.send_draw_message();\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_image_mode = function (fig, msg) {\n",
-       "    fig.image_mode = msg['mode'];\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_history_buttons = function (fig, msg) {\n",
-       "    for (var key in msg) {\n",
-       "        if (!(key in fig.buttons)) {\n",
-       "            continue;\n",
-       "        }\n",
-       "        fig.buttons[key].disabled = !msg[key];\n",
-       "        fig.buttons[key].setAttribute('aria-disabled', !msg[key]);\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_navigate_mode = function (fig, msg) {\n",
-       "    if (msg['mode'] === 'PAN') {\n",
-       "        fig.buttons['Pan'].classList.add('active');\n",
-       "        fig.buttons['Zoom'].classList.remove('active');\n",
-       "    } else if (msg['mode'] === 'ZOOM') {\n",
-       "        fig.buttons['Pan'].classList.remove('active');\n",
-       "        fig.buttons['Zoom'].classList.add('active');\n",
-       "    } else {\n",
-       "        fig.buttons['Pan'].classList.remove('active');\n",
-       "        fig.buttons['Zoom'].classList.remove('active');\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.updated_canvas_event = function () {\n",
-       "    // Called whenever the canvas gets updated.\n",
-       "    this.send_message('ack', {});\n",
-       "};\n",
-       "\n",
-       "// A function to construct a web socket function for onmessage handling.\n",
-       "// Called in the figure constructor.\n",
-       "mpl.figure.prototype._make_on_message_function = function (fig) {\n",
-       "    return function socket_on_message(evt) {\n",
-       "        if (evt.data instanceof Blob) {\n",
-       "            /* FIXME: We get \"Resource interpreted as Image but\n",
-       "             * transferred with MIME type text/plain:\" errors on\n",
-       "             * Chrome.  But how to set the MIME type?  It doesn't seem\n",
-       "             * to be part of the websocket stream */\n",
-       "            evt.data.type = 'image/png';\n",
-       "\n",
-       "            /* Free the memory for the previous frames */\n",
-       "            if (fig.imageObj.src) {\n",
-       "                (window.URL || window.webkitURL).revokeObjectURL(\n",
-       "                    fig.imageObj.src\n",
-       "                );\n",
-       "            }\n",
-       "\n",
-       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
-       "                evt.data\n",
-       "            );\n",
-       "            fig.updated_canvas_event();\n",
-       "            fig.waiting = false;\n",
-       "            return;\n",
-       "        } else if (\n",
-       "            typeof evt.data === 'string' &&\n",
-       "            evt.data.slice(0, 21) === 'data:image/png;base64'\n",
-       "        ) {\n",
-       "            fig.imageObj.src = evt.data;\n",
-       "            fig.updated_canvas_event();\n",
-       "            fig.waiting = false;\n",
-       "            return;\n",
-       "        }\n",
-       "\n",
-       "        var msg = JSON.parse(evt.data);\n",
-       "        var msg_type = msg['type'];\n",
-       "\n",
-       "        // Call the  \"handle_{type}\" callback, which takes\n",
-       "        // the figure and JSON message as its only arguments.\n",
-       "        try {\n",
-       "            var callback = fig['handle_' + msg_type];\n",
-       "        } catch (e) {\n",
-       "            console.log(\n",
-       "                \"No handler for the '\" + msg_type + \"' message type: \",\n",
-       "                msg\n",
-       "            );\n",
-       "            return;\n",
-       "        }\n",
-       "\n",
-       "        if (callback) {\n",
-       "            try {\n",
-       "                // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
-       "                callback(fig, msg);\n",
-       "            } catch (e) {\n",
-       "                console.log(\n",
-       "                    \"Exception inside the 'handler_\" + msg_type + \"' callback:\",\n",
-       "                    e,\n",
-       "                    e.stack,\n",
-       "                    msg\n",
-       "                );\n",
-       "            }\n",
-       "        }\n",
-       "    };\n",
-       "};\n",
-       "\n",
-       "// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
-       "mpl.findpos = function (e) {\n",
-       "    //this section is from http://www.quirksmode.org/js/events_properties.html\n",
-       "    var targ;\n",
-       "    if (!e) {\n",
-       "        e = window.event;\n",
-       "    }\n",
-       "    if (e.target) {\n",
-       "        targ = e.target;\n",
-       "    } else if (e.srcElement) {\n",
-       "        targ = e.srcElement;\n",
-       "    }\n",
-       "    if (targ.nodeType === 3) {\n",
-       "        // defeat Safari bug\n",
-       "        targ = targ.parentNode;\n",
-       "    }\n",
-       "\n",
-       "    // pageX,Y are the mouse positions relative to the document\n",
-       "    var boundingRect = targ.getBoundingClientRect();\n",
-       "    var x = e.pageX - (boundingRect.left + document.body.scrollLeft);\n",
-       "    var y = e.pageY - (boundingRect.top + document.body.scrollTop);\n",
-       "\n",
-       "    return { x: x, y: y };\n",
-       "};\n",
-       "\n",
-       "/*\n",
-       " * return a copy of an object with only non-object keys\n",
-       " * we need this to avoid circular references\n",
-       " * http://stackoverflow.com/a/24161582/3208463\n",
-       " */\n",
-       "function simpleKeys(original) {\n",
-       "    return Object.keys(original).reduce(function (obj, key) {\n",
-       "        if (typeof original[key] !== 'object') {\n",
-       "            obj[key] = original[key];\n",
-       "        }\n",
-       "        return obj;\n",
-       "    }, {});\n",
-       "}\n",
-       "\n",
-       "mpl.figure.prototype.mouse_event = function (event, name) {\n",
-       "    var canvas_pos = mpl.findpos(event);\n",
-       "\n",
-       "    if (name === 'button_press') {\n",
-       "        this.canvas.focus();\n",
-       "        this.canvas_div.focus();\n",
-       "    }\n",
-       "\n",
-       "    var x = canvas_pos.x * this.ratio;\n",
-       "    var y = canvas_pos.y * this.ratio;\n",
-       "\n",
-       "    this.send_message(name, {\n",
-       "        x: x,\n",
-       "        y: y,\n",
-       "        button: event.button,\n",
-       "        step: event.step,\n",
-       "        guiEvent: simpleKeys(event),\n",
-       "    });\n",
-       "\n",
-       "    /* This prevents the web browser from automatically changing to\n",
-       "     * the text insertion cursor when the button is pressed.  We want\n",
-       "     * to control all of the cursor setting manually through the\n",
-       "     * 'cursor' event from matplotlib */\n",
-       "    event.preventDefault();\n",
-       "    return false;\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._key_event_extra = function (_event, _name) {\n",
-       "    // Handle any extra behaviour associated with a key event\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.key_event = function (event, name) {\n",
-       "    // Prevent repeat events\n",
-       "    if (name === 'key_press') {\n",
-       "        if (event.which === this._key) {\n",
-       "            return;\n",
-       "        } else {\n",
-       "            this._key = event.which;\n",
-       "        }\n",
-       "    }\n",
-       "    if (name === 'key_release') {\n",
-       "        this._key = null;\n",
-       "    }\n",
-       "\n",
-       "    var value = '';\n",
-       "    if (event.ctrlKey && event.which !== 17) {\n",
-       "        value += 'ctrl+';\n",
-       "    }\n",
-       "    if (event.altKey && event.which !== 18) {\n",
-       "        value += 'alt+';\n",
-       "    }\n",
-       "    if (event.shiftKey && event.which !== 16) {\n",
-       "        value += 'shift+';\n",
-       "    }\n",
-       "\n",
-       "    value += 'k';\n",
-       "    value += event.which.toString();\n",
-       "\n",
-       "    this._key_event_extra(event, name);\n",
-       "\n",
-       "    this.send_message(name, { key: value, guiEvent: simpleKeys(event) });\n",
-       "    return false;\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.toolbar_button_onclick = function (name) {\n",
-       "    if (name === 'download') {\n",
-       "        this.handle_save(this, null);\n",
-       "    } else {\n",
-       "        this.send_message('toolbar_button', { name: name });\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.toolbar_button_onmouseover = function (tooltip) {\n",
-       "    this.message.textContent = tooltip;\n",
-       "};\n",
-       "\n",
-       "///////////////// REMAINING CONTENT GENERATED BY embed_js.py /////////////////\n",
-       "// prettier-ignore\n",
-       "var _JSXTOOLS_RESIZE_OBSERVER=function(A){var t,i=new WeakMap,n=new WeakMap,a=new WeakMap,r=new WeakMap,o=new Set;function s(e){if(!(this instanceof s))throw new TypeError(\"Constructor requires 'new' operator\");i.set(this,e)}function h(){throw new TypeError(\"Function is not a constructor\")}function c(e,t,i,n){e=0 in arguments?Number(arguments[0]):0,t=1 in arguments?Number(arguments[1]):0,i=2 in arguments?Number(arguments[2]):0,n=3 in arguments?Number(arguments[3]):0,this.right=(this.x=this.left=e)+(this.width=i),this.bottom=(this.y=this.top=t)+(this.height=n),Object.freeze(this)}function d(){t=requestAnimationFrame(d);var s=new WeakMap,p=new Set;o.forEach((function(t){r.get(t).forEach((function(i){var r=t instanceof window.SVGElement,o=a.get(t),d=r?0:parseFloat(o.paddingTop),f=r?0:parseFloat(o.paddingRight),l=r?0:parseFloat(o.paddingBottom),u=r?0:parseFloat(o.paddingLeft),g=r?0:parseFloat(o.borderTopWidth),m=r?0:parseFloat(o.borderRightWidth),w=r?0:parseFloat(o.borderBottomWidth),b=u+f,F=d+l,v=(r?0:parseFloat(o.borderLeftWidth))+m,W=g+w,y=r?0:t.offsetHeight-W-t.clientHeight,E=r?0:t.offsetWidth-v-t.clientWidth,R=b+v,z=F+W,M=r?t.width:parseFloat(o.width)-R-E,O=r?t.height:parseFloat(o.height)-z-y;if(n.has(t)){var k=n.get(t);if(k[0]===M&&k[1]===O)return}n.set(t,[M,O]);var S=Object.create(h.prototype);S.target=t,S.contentRect=new c(u,d,M,O),s.has(i)||(s.set(i,[]),p.add(i)),s.get(i).push(S)}))})),p.forEach((function(e){i.get(e).call(e,s.get(e),e)}))}return s.prototype.observe=function(i){if(i instanceof window.Element){r.has(i)||(r.set(i,new Set),o.add(i),a.set(i,window.getComputedStyle(i)));var n=r.get(i);n.has(this)||n.add(this),cancelAnimationFrame(t),t=requestAnimationFrame(d)}},s.prototype.unobserve=function(i){if(i instanceof window.Element&&r.has(i)){var n=r.get(i);n.has(this)&&(n.delete(this),n.size||(r.delete(i),o.delete(i))),n.size||r.delete(i),o.size||cancelAnimationFrame(t)}},A.DOMRectReadOnly=c,A.ResizeObserver=s,A.ResizeObserverEntry=h,A}; // eslint-disable-line\n",
-       "mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Left button pans, Right button zooms\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\\nx/y fixes axis, CTRL fixes aspect\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
-       "\n",
-       "mpl.extensions = [\"eps\", \"jpeg\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\", \"tif\"];\n",
-       "\n",
-       "mpl.default_extension = \"png\";/* global mpl */\n",
-       "\n",
-       "var comm_websocket_adapter = function (comm) {\n",
-       "    // Create a \"websocket\"-like object which calls the given IPython comm\n",
-       "    // object with the appropriate methods. Currently this is a non binary\n",
-       "    // socket, so there is still some room for performance tuning.\n",
-       "    var ws = {};\n",
-       "\n",
-       "    ws.close = function () {\n",
-       "        comm.close();\n",
-       "    };\n",
-       "    ws.send = function (m) {\n",
-       "        //console.log('sending', m);\n",
-       "        comm.send(m);\n",
-       "    };\n",
-       "    // Register the callback with on_msg.\n",
-       "    comm.on_msg(function (msg) {\n",
-       "        //console.log('receiving', msg['content']['data'], msg);\n",
-       "        // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
-       "        ws.onmessage(msg['content']['data']);\n",
-       "    });\n",
-       "    return ws;\n",
-       "};\n",
-       "\n",
-       "mpl.mpl_figure_comm = function (comm, msg) {\n",
-       "    // This is the function which gets called when the mpl process\n",
-       "    // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
-       "\n",
-       "    var id = msg.content.data.id;\n",
-       "    // Get hold of the div created by the display call when the Comm\n",
-       "    // socket was opened in Python.\n",
-       "    var element = document.getElementById(id);\n",
-       "    var ws_proxy = comm_websocket_adapter(comm);\n",
-       "\n",
-       "    function ondownload(figure, _format) {\n",
-       "        window.open(figure.canvas.toDataURL());\n",
-       "    }\n",
-       "\n",
-       "    var fig = new mpl.figure(id, ws_proxy, ondownload, element);\n",
-       "\n",
-       "    // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
-       "    // web socket which is closed, not our websocket->open comm proxy.\n",
-       "    ws_proxy.onopen();\n",
-       "\n",
-       "    fig.parent_element = element;\n",
-       "    fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
-       "    if (!fig.cell_info) {\n",
-       "        console.error('Failed to find cell for figure', id, fig);\n",
-       "        return;\n",
-       "    }\n",
-       "    fig.cell_info[0].output_area.element.on(\n",
-       "        'cleared',\n",
-       "        { fig: fig },\n",
-       "        fig._remove_fig_handler\n",
-       "    );\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_close = function (fig, msg) {\n",
-       "    var width = fig.canvas.width / fig.ratio;\n",
-       "    fig.cell_info[0].output_area.element.off(\n",
-       "        'cleared',\n",
-       "        fig._remove_fig_handler\n",
-       "    );\n",
-       "    fig.resizeObserverInstance.unobserve(fig.canvas_div);\n",
-       "\n",
-       "    // Update the output cell to use the data from the current canvas.\n",
-       "    fig.push_to_output();\n",
-       "    var dataURL = fig.canvas.toDataURL();\n",
-       "    // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
-       "    // the notebook keyboard shortcuts fail.\n",
-       "    IPython.keyboard_manager.enable();\n",
-       "    fig.parent_element.innerHTML =\n",
-       "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
-       "    fig.close_ws(fig, msg);\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.close_ws = function (fig, msg) {\n",
-       "    fig.send_message('closing', msg);\n",
-       "    // fig.ws.close()\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.push_to_output = function (_remove_interactive) {\n",
-       "    // Turn the data on the canvas into data in the output cell.\n",
-       "    var width = this.canvas.width / this.ratio;\n",
-       "    var dataURL = this.canvas.toDataURL();\n",
-       "    this.cell_info[1]['text/html'] =\n",
-       "        '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.updated_canvas_event = function () {\n",
-       "    // Tell IPython that the notebook contents must change.\n",
-       "    IPython.notebook.set_dirty(true);\n",
-       "    this.send_message('ack', {});\n",
-       "    var fig = this;\n",
-       "    // Wait a second, then push the new image to the DOM so\n",
-       "    // that it is saved nicely (might be nice to debounce this).\n",
-       "    setTimeout(function () {\n",
-       "        fig.push_to_output();\n",
-       "    }, 1000);\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._init_toolbar = function () {\n",
-       "    var fig = this;\n",
-       "\n",
-       "    var toolbar = document.createElement('div');\n",
-       "    toolbar.classList = 'btn-toolbar';\n",
-       "    this.root.appendChild(toolbar);\n",
-       "\n",
-       "    function on_click_closure(name) {\n",
-       "        return function (_event) {\n",
-       "            return fig.toolbar_button_onclick(name);\n",
-       "        };\n",
-       "    }\n",
-       "\n",
-       "    function on_mouseover_closure(tooltip) {\n",
-       "        return function (event) {\n",
-       "            if (!event.currentTarget.disabled) {\n",
-       "                return fig.toolbar_button_onmouseover(tooltip);\n",
-       "            }\n",
-       "        };\n",
-       "    }\n",
-       "\n",
-       "    fig.buttons = {};\n",
-       "    var buttonGroup = document.createElement('div');\n",
-       "    buttonGroup.classList = 'btn-group';\n",
-       "    var button;\n",
-       "    for (var toolbar_ind in mpl.toolbar_items) {\n",
-       "        var name = mpl.toolbar_items[toolbar_ind][0];\n",
-       "        var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
-       "        var image = mpl.toolbar_items[toolbar_ind][2];\n",
-       "        var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
-       "\n",
-       "        if (!name) {\n",
-       "            /* Instead of a spacer, we start a new button group. */\n",
-       "            if (buttonGroup.hasChildNodes()) {\n",
-       "                toolbar.appendChild(buttonGroup);\n",
-       "            }\n",
-       "            buttonGroup = document.createElement('div');\n",
-       "            buttonGroup.classList = 'btn-group';\n",
-       "            continue;\n",
-       "        }\n",
-       "\n",
-       "        button = fig.buttons[name] = document.createElement('button');\n",
-       "        button.classList = 'btn btn-default';\n",
-       "        button.href = '#';\n",
-       "        button.title = name;\n",
-       "        button.innerHTML = '<i class=\"fa ' + image + ' fa-lg\"></i>';\n",
-       "        button.addEventListener('click', on_click_closure(method_name));\n",
-       "        button.addEventListener('mouseover', on_mouseover_closure(tooltip));\n",
-       "        buttonGroup.appendChild(button);\n",
-       "    }\n",
-       "\n",
-       "    if (buttonGroup.hasChildNodes()) {\n",
-       "        toolbar.appendChild(buttonGroup);\n",
-       "    }\n",
-       "\n",
-       "    // Add the status bar.\n",
-       "    var status_bar = document.createElement('span');\n",
-       "    status_bar.classList = 'mpl-message pull-right';\n",
-       "    toolbar.appendChild(status_bar);\n",
-       "    this.message = status_bar;\n",
-       "\n",
-       "    // Add the close button to the window.\n",
-       "    var buttongrp = document.createElement('div');\n",
-       "    buttongrp.classList = 'btn-group inline pull-right';\n",
-       "    button = document.createElement('button');\n",
-       "    button.classList = 'btn btn-mini btn-primary';\n",
-       "    button.href = '#';\n",
-       "    button.title = 'Stop Interaction';\n",
-       "    button.innerHTML = '<i class=\"fa fa-power-off icon-remove icon-large\"></i>';\n",
-       "    button.addEventListener('click', function (_evt) {\n",
-       "        fig.handle_close(fig, {});\n",
-       "    });\n",
-       "    button.addEventListener(\n",
-       "        'mouseover',\n",
-       "        on_mouseover_closure('Stop Interaction')\n",
-       "    );\n",
-       "    buttongrp.appendChild(button);\n",
-       "    var titlebar = this.root.querySelector('.ui-dialog-titlebar');\n",
-       "    titlebar.insertBefore(buttongrp, titlebar.firstChild);\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._remove_fig_handler = function (event) {\n",
-       "    var fig = event.data.fig;\n",
-       "    if (event.target !== this) {\n",
-       "        // Ignore bubbled events from children.\n",
-       "        return;\n",
-       "    }\n",
-       "    fig.close_ws(fig, {});\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._root_extra_style = function (el) {\n",
-       "    el.style.boxSizing = 'content-box'; // override notebook setting of border-box.\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._canvas_extra_style = function (el) {\n",
-       "    // this is important to make the div 'focusable\n",
-       "    el.setAttribute('tabindex', 0);\n",
-       "    // reach out to IPython and tell the keyboard manager to turn it's self\n",
-       "    // off when our div gets focus\n",
-       "\n",
-       "    // location in version 3\n",
-       "    if (IPython.notebook.keyboard_manager) {\n",
-       "        IPython.notebook.keyboard_manager.register_events(el);\n",
-       "    } else {\n",
-       "        // location in version 2\n",
-       "        IPython.keyboard_manager.register_events(el);\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype._key_event_extra = function (event, _name) {\n",
-       "    var manager = IPython.notebook.keyboard_manager;\n",
-       "    if (!manager) {\n",
-       "        manager = IPython.keyboard_manager;\n",
-       "    }\n",
-       "\n",
-       "    // Check for shift+enter\n",
-       "    if (event.shiftKey && event.which === 13) {\n",
-       "        this.canvas_div.blur();\n",
-       "        // select the cell after this one\n",
-       "        var index = IPython.notebook.find_cell_index(this.cell_info[0]);\n",
-       "        IPython.notebook.select(index + 1);\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "mpl.figure.prototype.handle_save = function (fig, _msg) {\n",
-       "    fig.ondownload(fig, null);\n",
-       "};\n",
-       "\n",
-       "mpl.find_output_cell = function (html_output) {\n",
-       "    // Return the cell and output element which can be found *uniquely* in the notebook.\n",
-       "    // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
-       "    // IPython event is triggered only after the cells have been serialised, which for\n",
-       "    // our purposes (turning an active figure into a static one), is too late.\n",
-       "    var cells = IPython.notebook.get_cells();\n",
-       "    var ncells = cells.length;\n",
-       "    for (var i = 0; i < ncells; i++) {\n",
-       "        var cell = cells[i];\n",
-       "        if (cell.cell_type === 'code') {\n",
-       "            for (var j = 0; j < cell.output_area.outputs.length; j++) {\n",
-       "                var data = cell.output_area.outputs[j];\n",
-       "                if (data.data) {\n",
-       "                    // IPython >= 3 moved mimebundle to data attribute of output\n",
-       "                    data = data.data;\n",
-       "                }\n",
-       "                if (data['text/html'] === html_output) {\n",
-       "                    return [cell, data, j];\n",
-       "                }\n",
-       "            }\n",
-       "        }\n",
-       "    }\n",
-       "};\n",
-       "\n",
-       "// Register the function which deals with the matplotlib target/channel.\n",
-       "// The kernel may be null if the page has been refreshed.\n",
-       "if (IPython.notebook.kernel !== null) {\n",
-       "    IPython.notebook.kernel.comm_manager.register_target(\n",
-       "        'matplotlib',\n",
-       "        mpl.mpl_figure_comm\n",
-       "    );\n",
-       "}\n"
-      ],
-      "text/plain": [
-       "<IPython.core.display.Javascript object>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    },
-    {
-     "data": {
-      "text/html": [
-       "<img src=\"data:image/png;base64,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njuXgAgUYsyi9iEQwhJNCATbvn27nn76afXs2VNNmjRRiRIlAsLhmjVr/OeuWbNGnTp10pNPPqklS5aw2yngAG9SktwbNihzyhQltWtneSUxrnZtpQ0erNzly+VNSnK6ZAC/YBa1D4EQlmhC4Pd5vV4dOnRI//nPfxQVFaWEhAT/e5MmTQq6muhyudSwYUM98MAD2rdvn/9cH9vpA7Yw3e7T9yJOn66kDh2C70V0uZR4xx1KHz369H2I27bJxz/kAI5gFrUPgRCWaELg8uzfv18LFy7UqFGj1KFDB1WrVi0gHB48eNB/7rRp01StWjW1a9dOo0aN0uLFi7V9+3bl5uY6+BMAoc/MzVXe558rfexYJdxyi/V9iC6X4q+/Xik9eihz6lS5v/xSZn6+06UDIY9Z1D4EQliiCYErLyEhQRs2bNDcuXNVUFDgf/3RRx8NuppoGIYiIiL0hz/8QcePH/efm5aWJo/H40T5QMjzxsYqZ+lSpY8effo+xOrVLUNibJkySu7cWVmzZil/+3aZbC4FXHHMovYhEMISTQjYJzMzU99//73eeustjRkzRh06dFCVKlVkGIaKFSum/LOuRgwaNEjFixfXzTffrP79++u5557T0qVL9e233yo5OdnBnwIITd7ERLk3bFDWa68ppV8/xVWpEhwQK1VScrduynrlFQIicIUwi9qHQHiWxMRE/38fP348rP8VniYEnGWapuLi4rRly5aA11u3bm15NfHMPYp5eXn+c7/66it99913ysnJsbt8IGSZPp88u3cr69VXldytm2IrVAgOiBUqKPn++5X50kvK//prmWf1JYALwyxqHwLhL2bNmqWIiAilp6dLkjwej5599lmdOnXK4cqcQRMChZPP59OxY8e0evVqRUdHa9iwYWrXrp1q1aqlBg0aBJx7JjyeWXrav39/TZs2TStXrtT+/fsd+gmA0GIWFCh/2zZlzZql5K5dLQNiTIkSSmzZUulPPaXc//xH3vh4p8sGCj1mUfsQCH/Ro0cPffXVVwGv7d27Vw888IBDFTmLJgSKnvzfbHTRr18/Va9e3fJqYu3atQPOXb58uT799FPFxMTwXDbgMpher/K3b1fWK68opWdPxVWrZnkfYvwNNyht6FDlvPeevCdPOl02UOgwi9qHQPiL2bNnB722Y8cOlS9f3oFqnEcTAqEjLi5On332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\" width=\"900\">"
-      ],
-      "text/plain": [
-       "<IPython.core.display.HTML object>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    }
-   ],
-   "source": [
-    "if True:\n",
-    "    fig=plt.figure(figsize=(9,4))\n",
-    "    fig.subplots_adjust(bottom=0.15, left=0.15, top = 0.95, right=0.9,wspace=0.0,hspace=0.0)\n",
-    "    fig.suptitle('')\n",
-    "\n",
-    "    sub = fig.add_subplot(1,1,1)\n",
-    "\n",
-    "    sub.plot(RDDat[:,1],RDDat[:,3],linestyle='-',c='xkcd:red',label=r\"RD\")\n",
-    "    sub.plot(MatterDat[:,1],MatterDat[:,3],linestyle='--',c='xkcd:black',label=r\"Matter\")\n",
-    "#     sub.plot(KinationDat[:,1],KinationDat[:,3],linestyle=':',c='xkcd:blue',label=r\"Kination\")\n",
-    "\n",
-    "\n",
-    "    sub.set_xlabel(r'$f_a ~ [{\\rm GeV}]$')\n",
-    "    sub.set_ylabel(r'$T_{\\rm osc} ~ [{\\rm GeV}]$')\n",
-    "\n",
-    "    sub.legend(bbox_to_anchor=(0.99, 0.99),borderaxespad=0., \n",
-    "               borderpad=0.05,ncol=1,loc='upper right',fontsize=14,framealpha=0)\n",
-    "    #set major ticks\n",
-    "    _M_xticks=[ 10.**i for i in range(9,20) ]\n",
-    "    _M_yticks=[ 10.**i for i in range(-2,2) ]\n",
-    "\n",
-    "    #set major ticks that will not have a label\n",
-    "    _M_xticks_exception=[]\n",
-    "    _M_yticks_exception=[]\n",
-    "\n",
-    "    _m_xticks=[]\n",
-    "    _m_yticks=[]  \n",
-    "    ft=FT(_M_xticks,_M_yticks,\n",
-    "                 _M_xticks_exception,_M_yticks_exception,\n",
-    "                 _m_xticks,_m_yticks,\n",
-    "                 xmin=1e9,xmax=1e19,ymin=1e-2,ymax=10,xscale='log',yscale='log')\n",
-    "\n",
-    "    ft.format_ticks(plt,sub)    \n",
-    "\n",
-    "    fig.show()"
-   ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
-  }
- ],
- "metadata": {
-  "kernelspec": {
-   "display_name": "Python 3",
-   "language": "python",
-   "name": "python3"
-  },
-  "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.10"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 2
-}