{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Populating the interactive namespace from numpy and matplotlib\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "WARNING: pylab import has clobbered these variables: ['norm']\n",
      "`%matplotlib` prevents importing * from pylab and numpy\n"
     ]
    }
   ],
   "source": [
    "%pylab nbagg"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import fabio,pyFAI\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "dia_cool_001-[phosphor]_fiji.tif  lab6_rt_001.tif\r\n",
      "image2.png                        lab6_rt_001.xy\r\n",
      "image.png                         large2.svg\r\n",
      "lab6_rt_001.azim                  large3.svg\r\n",
      "lab6_rt_001.dat                   large.png\r\n",
      "lab6_rt_001-mask.edf              large.svg\r\n",
      "lab6_rt_001.npt                   mask.edf\r\n",
      "lab6_rt_001.npt_old               powder1.png\r\n",
      "lab6_rt_001-[phosphor]_fiji.tif   powder2.png\r\n",
      "lab6_rt_001.poni                  ReadMe.txt\r\n",
      "lab6_rt_001.poni_old              si_cool_003-[phosphor]_fiji.tif\r\n"
     ]
    }
   ],
   "source": [
    "ls Aarhus/\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Detector Aarhus\t Spline= None\t PixelSize= 2.500e-05, 2.500e-05 m\n",
      "Wavelength= 2.070000e-11m\n",
      "SampleDetDist= 3.011596e-01m\tPONI= 6.591954e-03, -1.108204e-03m\trot1=-0.018199  rot2= 0.010729  rot3= 0.000025 rad\n",
      "DirectBeamDist= 301.227mm\tCenter: x=174.927, y=392.951 pix\tTilt=1.210 deg  tiltPlanRotation= 30.524 deg\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/scisoft/users/jupyter/jupy34/lib/python3.4/site-packages/ipykernel/__main__.py:4: RuntimeWarning: divide by zero encountered in log\n"
     ]
    }
   ],
   "source": [
    "img = fabio.open(\"Aarhus/lab6_rt_001.tif\").data\n",
    "msk1 = fabio.open(\"Aarhus/lab6_rt_001-mask.edf\").data\n",
    "ai = pyFAI.load(\"Aarhus/lab6_rt_001.poni\")\n",
    "imshow(numpy.log(img))\n",
    "print(ai)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "q,I_nc = ai.integrate1d(img,10000, mask=msk1,method=\"splitpixel\", correctSolidAngle=False, radial_range=(0, 100),polarization_factor=0.9)\n",
    "plot(q,I_nc)\n",
    "q_c,I_c = ai.integrate1d(img,10000, mask=msk1,method=\"splitpixel\", correctSolidAngle=True, radial_range=(0, 100),polarization_factor=0.9)\n",
    "plot(q_c,I_c)\n",
    "\n",
    "#close('all')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2.07e-11\n"
     ]
    }
   ],
   "source": [
    "tth,I_tth = ai.integrate1d(img,10000, mask=msk1,method=\"splitpixel\", correctSolidAngle=True, polarization_factor=0.9, unit=\"2th_deg\")\n",
    "print(ai.wavelength)\n",
    "numpy.savetxt(\"/tmp_14_days/kieffer/Aarhus.csv\", numpy.vstack((tth,I_tth)).T,delimiter=',')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#dataset from LUND ..."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Lund/mask.edf          Lund/thetascan2_2.edf  Lund/thetascan2_4.edf\r\n",
      "Lund/thetascan2_1.edf  Lund/thetascan2_3.edf  Lund/thetascan2_5.edf\r\n"
     ]
    }
   ],
   "source": [
    "ls Lund/*.edf"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['Lund/thetascan_1_1.img', 'Lund/thetascan_2_1.img', 'Lund/thetascan_3_1.img', 'Lund/thetascan_4_1.img', 'Lund/thetascan_5_1.img']\n"
     ]
    }
   ],
   "source": [
    "import glob\n",
    "msk = fabio.open(\"Lund/mask.edf\").data\n",
    "images = glob.glob(\"Lund/thetascan*.img\")\n",
    "images.sort()\n",
    "print(images)\n",
    "imgs = []\n",
    "mon = []\n",
    "for i in images:\n",
    "    im = fabio.open(i)\n",
    "    im.data[im.data<0] = 0\n",
    "    imgs.append(im.data)\n",
    "    mon.append(float(im.header[\"Exposure time in sec\"]))\n",
    "ais = [pyFAI.load(i[:-3]+\"poni\") for i in images]\n",
    "for ai in ais: \n",
    "    ai.detector.mask=msk\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "area_pixel=12.413954202591414 area_sum=12.415176249867736, Error= -9.844141974252653e-05\n",
      "area_pixel=12.388782395580456 area_sum=12.390622514446058, Error= -0.0001485310506590111\n",
      "area_pixel=20.160486407579487 area_sum=20.168776654523, Error= -0.000411212645166961\n",
      "area_pixel=0.627155295959902 area_sum=3.0714733948826733, Error= -3.8974686408118155\n"
     ]
    },
    {
     "data": {
      "application/javascript": [
       "/* Put everything inside the global mpl namespace */\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('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",
       "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 = $('<div/>');\n",
       "    this._root_extra_style(this.root)\n",
       "    this.root.attr('style', 'display: inline-block');\n",
       "\n",
       "    $(parent_element).append(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",
       "            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",
       "        this.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 = $(\n",
       "        '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
       "        'ui-helper-clearfix\"/>');\n",
       "    var titletext = $(\n",
       "        '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
       "        'text-align: center; padding: 3px;\"/>');\n",
       "    titlebar.append(titletext)\n",
       "    this.root.append(titlebar);\n",
       "    this.header = titletext[0];\n",
       "}\n",
       "\n",
       "\n",
       "\n",
       "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
       "\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
       "\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_canvas = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var canvas_div = $('<div/>');\n",
       "\n",
       "    canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
       "\n",
       "    function canvas_keyboard_event(event) {\n",
       "        return fig.key_event(event, event['data']);\n",
       "    }\n",
       "\n",
       "    canvas_div.keydown('key_press', canvas_keyboard_event);\n",
       "    canvas_div.keyup('key_release', canvas_keyboard_event);\n",
       "    this.canvas_div = canvas_div\n",
       "    this._canvas_extra_style(canvas_div)\n",
       "    this.root.append(canvas_div);\n",
       "\n",
       "    var canvas = $('<canvas/>');\n",
       "    canvas.addClass('mpl-canvas');\n",
       "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
       "\n",
       "    this.canvas = canvas[0];\n",
       "    this.context = canvas[0].getContext(\"2d\");\n",
       "\n",
       "    var rubberband = $('<canvas/>');\n",
       "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
       "\n",
       "    var pass_mouse_events = true;\n",
       "\n",
       "    canvas_div.resizable({\n",
       "        start: function(event, ui) {\n",
       "            pass_mouse_events = false;\n",
       "        },\n",
       "        resize: function(event, ui) {\n",
       "            fig.request_resize(ui.size.width, ui.size.height);\n",
       "        },\n",
       "        stop: function(event, ui) {\n",
       "            pass_mouse_events = true;\n",
       "            fig.request_resize(ui.size.width, ui.size.height);\n",
       "        },\n",
       "    });\n",
       "\n",
       "    function mouse_event_fn(event) {\n",
       "        if (pass_mouse_events)\n",
       "            return fig.mouse_event(event, event['data']);\n",
       "    }\n",
       "\n",
       "    rubberband.mousedown('button_press', mouse_event_fn);\n",
       "    rubberband.mouseup('button_release', mouse_event_fn);\n",
       "    // Throttle sequential mouse events to 1 every 20ms.\n",
       "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
       "\n",
       "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
       "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
       "\n",
       "    canvas_div.on(\"wheel\", function (event) {\n",
       "        event = event.originalEvent;\n",
       "        event['data'] = 'scroll'\n",
       "        if (event.deltaY < 0) {\n",
       "            event.step = 1;\n",
       "        } else {\n",
       "            event.step = -1;\n",
       "        }\n",
       "        mouse_event_fn(event);\n",
       "    });\n",
       "\n",
       "    canvas_div.append(canvas);\n",
       "    canvas_div.append(rubberband);\n",
       "\n",
       "    this.rubberband = rubberband;\n",
       "    this.rubberband_canvas = rubberband[0];\n",
       "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
       "    this.rubberband_context.strokeStyle = \"#000000\";\n",
       "\n",
       "    this._resize_canvas = function(width, height) {\n",
       "        // Keep the size of the canvas, canvas container, and rubber band\n",
       "        // canvas in synch.\n",
       "        canvas_div.css('width', width)\n",
       "        canvas_div.css('height', height)\n",
       "\n",
       "        canvas.attr('width', width);\n",
       "        canvas.attr('height', height);\n",
       "\n",
       "        rubberband.attr('width', width);\n",
       "        rubberband.attr('height', height);\n",
       "    }\n",
       "\n",
       "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
       "    // upon first draw.\n",
       "    this._resize_canvas(600, 600);\n",
       "\n",
       "    // Disable right mouse context menu.\n",
       "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\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 nav_element = $('<div/>')\n",
       "    nav_element.attr('style', 'width: 100%');\n",
       "    this.root.append(nav_element);\n",
       "\n",
       "    // Define a callback function for later on.\n",
       "    function toolbar_event(event) {\n",
       "        return fig.toolbar_button_onclick(event['data']);\n",
       "    }\n",
       "    function toolbar_mouse_event(event) {\n",
       "        return fig.toolbar_button_onmouseover(event['data']);\n",
       "    }\n",
       "\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",
       "            // put a spacer in here.\n",
       "            continue;\n",
       "        }\n",
       "        var button = $('<button/>');\n",
       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
       "                        'ui-button-icon-only');\n",
       "        button.attr('role', 'button');\n",
       "        button.attr('aria-disabled', 'false');\n",
       "        button.click(method_name, toolbar_event);\n",
       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
       "\n",
       "        var icon_img = $('<span/>');\n",
       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
       "        icon_img.addClass(image);\n",
       "        icon_img.addClass('ui-corner-all');\n",
       "\n",
       "        var tooltip_span = $('<span/>');\n",
       "        tooltip_span.addClass('ui-button-text');\n",
       "        tooltip_span.html(tooltip);\n",
       "\n",
       "        button.append(icon_img);\n",
       "        button.append(tooltip_span);\n",
       "\n",
       "        nav_element.append(button);\n",
       "    }\n",
       "\n",
       "    var fmt_picker_span = $('<span/>');\n",
       "\n",
       "    var fmt_picker = $('<select/>');\n",
       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
       "    fmt_picker_span.append(fmt_picker);\n",
       "    nav_element.append(fmt_picker_span);\n",
       "    this.format_dropdown = fmt_picker[0];\n",
       "\n",
       "    for (var ind in mpl.extensions) {\n",
       "        var fmt = mpl.extensions[ind];\n",
       "        var option = $(\n",
       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
       "        fmt_picker.append(option)\n",
       "    }\n",
       "\n",
       "    // Add hover states to the ui-buttons\n",
       "    $( \".ui-button\" ).hover(\n",
       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
       "    );\n",
       "\n",
       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
       "    nav_element.append(status_bar);\n",
       "    this.message = status_bar[0];\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",
       "\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",
       "\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]);\n",
       "        fig.send_message(\"refresh\", {});\n",
       "    };\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
       "    var x0 = msg['x0'];\n",
       "    var y0 = fig.canvas.height - msg['y0'];\n",
       "    var x1 = msg['x1'];\n",
       "    var y1 = fig.canvas.height - msg['y1'];\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, 0, fig.canvas.width, fig.canvas.height);\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",
       "    {\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.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",
       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
       "                evt.data);\n",
       "            fig.updated_canvas_event();\n",
       "            fig.waiting = false;\n",
       "            return;\n",
       "        }\n",
       "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\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(\"No handler for the '\" + msg_type + \"' message type: \", msg);\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(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\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",
       "    if (e.target)\n",
       "        targ = e.target;\n",
       "    else if (e.srcElement)\n",
       "        targ = e.srcElement;\n",
       "    if (targ.nodeType == 3) // defeat Safari bug\n",
       "        targ = targ.parentNode;\n",
       "\n",
       "    // jQuery normalizes the pageX and pageY\n",
       "    // pageX,Y are the mouse positions relative to the document\n",
       "    // offset() returns the position of the element relative to the document\n",
       "    var x = e.pageX - $(targ).offset().left;\n",
       "    var y = e.pageY - $(targ).offset().top;\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",
       "    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",
       "    {\n",
       "        this.canvas.focus();\n",
       "        this.canvas_div.focus();\n",
       "    }\n",
       "\n",
       "    var x = canvas_pos.x;\n",
       "    var y = canvas_pos.y;\n",
       "\n",
       "    this.send_message(name, {x: x, y: y, button: event.button,\n",
       "                             step: event.step,\n",
       "                             guiEvent: simpleKeys(event)});\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",
       "\n",
       "    // Prevent repeat events\n",
       "    if (name == 'key_press')\n",
       "    {\n",
       "        if (event.which === this._key)\n",
       "            return;\n",
       "        else\n",
       "            this._key = event.which;\n",
       "    }\n",
       "    if (name == 'key_release')\n",
       "        this._key = null;\n",
       "\n",
       "    var value = '';\n",
       "    if (event.ctrlKey && event.which != 17)\n",
       "        value += \"ctrl+\";\n",
       "    if (event.altKey && event.which != 18)\n",
       "        value += \"alt+\";\n",
       "    if (event.shiftKey && event.which != 16)\n",
       "        value += \"shift+\";\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,\n",
       "                             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",
       "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\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"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\";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 overriden (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 = $(\"#\" + id);\n",
       "    var ws_proxy = comm_websocket_adapter(comm)\n",
       "\n",
       "    function ondownload(figure, format) {\n",
       "        window.open(figure.imageObj.src);\n",
       "    }\n",
       "\n",
       "    var fig = new mpl.figure(id, ws_proxy,\n",
       "                           ondownload,\n",
       "                           element.get(0));\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.get(0);\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",
       "\n",
       "    var output_index = fig.cell_info[2]\n",
       "    var cell = fig.cell_info[0];\n",
       "\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
       "    fig.root.unbind('remove')\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).html('<img src=\"' + dataURL + '\">');\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 dataURL = this.canvas.toDataURL();\n",
       "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\">';\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 () { fig.push_to_output() }, 1000);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_toolbar = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var nav_element = $('<div/>')\n",
       "    nav_element.attr('style', 'width: 100%');\n",
       "    this.root.append(nav_element);\n",
       "\n",
       "    // Define a callback function for later on.\n",
       "    function toolbar_event(event) {\n",
       "        return fig.toolbar_button_onclick(event['data']);\n",
       "    }\n",
       "    function toolbar_mouse_event(event) {\n",
       "        return fig.toolbar_button_onmouseover(event['data']);\n",
       "    }\n",
       "\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) { continue; };\n",
       "\n",
       "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
       "        button.click(method_name, toolbar_event);\n",
       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
       "        nav_element.append(button);\n",
       "    }\n",
       "\n",
       "    // Add the status bar.\n",
       "    var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
       "    nav_element.append(status_bar);\n",
       "    this.message = status_bar[0];\n",
       "\n",
       "    // Add the close button to the window.\n",
       "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
       "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
       "    button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
       "    button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
       "    buttongrp.append(button);\n",
       "    var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
       "    titlebar.prepend(buttongrp);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._root_extra_style = function(el){\n",
       "    var fig = this\n",
       "    el.on(\"remove\", function(){\n",
       "\tfig.close_ws(fig, {});\n",
       "    });\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._canvas_extra_style = function(el){\n",
       "    // this is important to make the div 'focusable\n",
       "    el.attr('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",
       "    }\n",
       "    else {\n",
       "        // location in version 2\n",
       "        IPython.keyboard_manager.register_events(el);\n",
       "    }\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",
       "    // 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",
       "\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('matplotlib', mpl.mpl_figure_comm);\n",
       "}\n"
      ],
      "text/plain": [
       "<IPython.core.display.Javascript object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAgAElEQVR4nOzdd3gUVd/G8V8KCb0X6WDDXrD3Lir2hl1sCASS7G56Y+i9914EQRABKQYUBBQQRVBEVEQQEQGRJiIg5X7/mGTJ68NmZ/fMTjH357pyPUp2zznPbnC/2Z05I0JERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE5GwtRGS5iBwUkZMiEh3i/S8QkQUiskdE/hCRsSJS3swFEhEREZG57hE9Al+R0AOwgoj8IiKdRCRWRGqIyFIRmWnuEomIiIgoEm6TMwfgdSLysejv7m0VPfYKb3OfiBz61+3vEpETIlInYislIiIiIlOcKQCbiMifIvKUiESJSH0RWScimQXff0BE/ir4XqF7C8ZpHuH1EhEREZGiMwXgQBGZ/K/bPSciPxb8cyUR2Ski3UWktIjUFZFlBeM8G8nFEhEREZG6MwXgAhH5W0T2Ffk6IPoJI4WuEJFFIrJbRDaJSCsROSX6sYVERERE5GBnCsBxIjImxHEeEf24wAomrYuIiIioxOguIutFf7dth4i8LSL1gtxnvIj8I/pxe4cK/rd7kPtEi0i8nD52r2zBv0eJyNWiv+P3pIiUKrjtOSLSrMj9mxbcJ0ZEbhGRLSLiNfD/j4iIiIj+pauIXCn69ioVRWSK6CdgFGe8iEwKcZ6XRf/I9mTBV+E/31rw/WtEZKGI/C76R8BrReSNIvcfKvoZwn+JyDeibydDRERERCa4XPQwq1TMbcIJQCIiIiJyqDTRP14tznjR36XbI/qZusNFpHqE10VEREREEXC36Mf0BTuz9koRqVnwz2eLfnbuygC3jRJ925aK/OIXv/jFL37xy1VfdeX/78FL/0EPish+EXk4jPs2FP2YvnPP8L26IgJ+8Ytf/OIXv/jlyq+6Qv9Zz4sef3eHef8Goh83eN4ZvldRRLB9+3YcPHiQXzZ/JSQk2L4GfvG5cOIX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YO/+43YvhYiIHIABSKoYgC4gmkA0wZ69/9i9FCIicgAGIKliALpAYQD+vveY3UshIiIHYACSKgagCxQG4O4/GIBERMQAJHUMQBcoDMCdvx+1eylEROQADEBSxQB0gcIA3LH7iN1LISIiB2AAkioGoAsUBuCvu/+2eylEROQADEBSxQB0gcIA3L6LAUhERAxAUscAdIHCANz222G7l0JERA7AACRVDEAXKAzArTv+snspRETkAAxAUsUAdIHCANyy45DdSyEiIgdgAJIqBqALFAbgT9v/tHspRETkAAxAUsUAdIHCANz8CwOQiIgYgKSOAegChQG4aRufJyIiYgCSOgagCxQG4A8/H7B7KURE5AAMQFLFAHSBwgD8but+u5dCREQOwAAkVQxAFygMwI1bGIBERMQAJHUMQBcoDMANP+2zeylEROQADEBSxQB0gcIA/GbzXruXQkREDsAAJFUMQBcoDMD1P/5h91KIiMgBGICkigHoAoUB+NWmPXYvhYiIHIABSKoYgC5QGIDrfmAAEhERA5DUMQAd7tSp0wG49off7V4OERE5AAOQVDEAHe7kydMBuOa73XYvh4iIHIABSKoYgA534sTpAPx84y67l0NERA7AACRVDECHO378dACu/pYBSEREDEBSxwB0uGPHTvkD8LMNO+1eDhEROQADkFQxAB3uyNGT/gBc9c1vdi+HiIgcgAFIqhiADnf47xP+AFyxfofdyyEiIgdgAJIqBqDDHTp83B+An3z9q93LISIiB2AAkioGoMMdPPSPPwCXf8UAJCIiBiCpYwA63P4/j/kDcNm67XYvh4iIHIABSKoYgAaNHg1Mn279vHsPHPUH4NK1v1i/ACIichwGIKliABokon9Zbc/+I/4AXPLlNusXQEREjsMAJFUMQIPsCsDde//2B+DiNQxAIiJiAJI6BqBBdgXgzj8O+wPwwy9+tn4BRETkOAxAUsUANMiuANyx5y9/AC76fKv1CyAiIsdhAJIqBqBB8mAryN1pls9bNAAXfr7F8vmJiMh5GICkigFoUGGEWW377kP+uT/47CfL5yciIudhAJIqBqBBdgXgtl1/+udesGqz5fMTEZHzMABJFQPQILsCcOvOg/6556380fL5iYjIeRiApIoBaJBdAbhlxwH/3HNXMACJiIgBSOoYgAbZFYCbf93vn/v9FZssn5+IiJyH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\">"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "area_pixel=12.413954202591414 area_sum=12.415176249867736, Error= -9.844141974252653e-05\n",
      "area_pixel=12.388782395580456 area_sum=12.390622514446058, Error= -0.0001485310506590111\n",
      "area_pixel=20.160486407579487 area_sum=20.168776654523, Error= -0.000411212645166961\n",
      "area_pixel=0.627155295959902 area_sum=3.0714733948826733, Error= -3.8974686408118155\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f81e6c30358>]"
      ]
     },
     "execution_count": 98,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from pyFAI.multi_geometry import MultiGeometry\n",
    "mg = MultiGeometry(ais, radial_range=(0, 100), wavelength=1e-10, unit=\"q_nm^-1\")\n",
    "plot(*mg.integrate1d(imgs, 10000,monitors=mon, polarization_factor=0.9))\n",
    "plot(*mg.integrate1d(imgs, 10000,monitors=mon, polarization_factor=None))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[10.0, 16.0, 22.0, 28.0, 34.0]"
      ]
     },
     "execution_count": 99,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mon"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#Correct for solid angle while histogramming"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 158,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "area_pixel=12.413954202591414 area_sum=12.415176249867736, Error= -9.844141974252653e-05\n",
      "area_pixel=12.388782395580456 area_sum=12.390622514446058, Error= -0.0001485310506590111\n",
      "area_pixel=20.160486407579487 area_sum=20.168776654523, Error= -0.000411212645166961\n",
      "area_pixel=0.627155295959902 area_sum=3.0714733948826733, Error= -3.8974686408118155\n",
      "area_pixel=12.413954202591414 area_sum=12.415176249867736, Error= -9.844141974252653e-05\n",
      "area_pixel=12.388782395580456 area_sum=12.390622514446058, Error= -0.0001485310506590111\n",
      "area_pixel=20.160486407579487 area_sum=20.168776654523, Error= -0.000411212645166961\n",
      "area_pixel=0.627155295959902 area_sum=3.0714733948826733, Error= -3.8974686408118155\n"
     ]
    }
   ],
   "source": [
    "npt = 10000\n",
    "sum_I = numpy.zeros(npt, dtype=numpy.float64) #Sum intensities corrected for polarization but not solid angle\n",
    "sum_O = numpy.zeros(npt, dtype=numpy.float64) #Sum solid angle\n",
    "polarization_factor = 0.9\n",
    "EPS = 1e-100\n",
    "for ai, data, monitor in zip(ais, imgs, mon):\n",
    "    resI = ai.integrate1d(data, npt=npt,\n",
    "                         correctSolidAngle=False,\n",
    "                         polarization_factor=polarization_factor,\n",
    "                         radial_range=(0,100),\n",
    "                         method=\"splitpixel\", unit=\"q_nm^-1\", safe=True)\n",
    "    resO = ai.integrate1d(ai.solidAngleArray(absolute=True), npt=npt,\n",
    "                         correctSolidAngle=False,\n",
    "                         #polarization_factor=polarization_factor,\n",
    "                         radial_range=(0,100),\n",
    "                         method=\"splitpixel\", unit=\"q_nm^-1\", safe=True)\n",
    "    sum_I += resI.sum / monitor\n",
    "    sum_O += resO.sum\n",
    "\n",
    "norm = numpy.maximum(sum_O, EPS)\n",
    "invalid = sum_O <= EPS\n",
    "I_O = sum_I / norm\n",
    "I_O[invalid] = 0\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 156,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f81d9bda6a0>]"
      ]
     },
     "execution_count": 156,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "plot(resI.radial, I_O)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 159,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3999 1511\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f81d9b4a940>]"
      ]
     },
     "execution_count": 159,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "idx_min = abs(resI.radial - 40).argmin()\n",
    "idx_max = I_O[resI.radial<20].argmax()\n",
    "print(idx_min, idx_max)\n",
    "I_mg_scaled = (I_O-I_O[idx_min])/(I_O[idx_max]-I_O[idx_min])\n",
    "plot(resI.radial, I_mg_scaled, label=\"Lund\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 160,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3999 1508\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7f81d9b482e8>"
      ]
     },
     "execution_count": 160,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "idx_min = abs(q_c - 40).argmin()\n",
    "idx_max = I_c[q_c<20].argmax()\n",
    "print(idx_min, idx_max)\n",
    "I_c_scaled = (I_c-I_c[idx_min])/(I_c[idx_max]-I_c[idx_min])\n",
    "plot(q_c, I_c_scaled, label=\"Aarhus\")\n",
    "legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#Test with data from ID28"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['ID28/det130_g0_0001p.cbf', 'ID28/det130_g17_0001p.cbf', 'ID28/det130_g45_0001p.cbf']\n"
     ]
    }
   ],
   "source": [
    "id28_images = glob.glob(\"ID28/*.cbf\")\n",
    "id28_images.sort()\n",
    "print(id28_images)\n",
    "id28_imgs = [fabio.open(i).data for i in id28_images]\n",
    "id28_ais = [pyFAI.load(i[:-3]+\"poni\") for i in id28_images]\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "application/javascript": [
       "/* Put everything inside the global mpl namespace */\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('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",
       "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 = $('<div/>');\n",
       "    this._root_extra_style(this.root)\n",
       "    this.root.attr('style', 'display: inline-block');\n",
       "\n",
       "    $(parent_element).append(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",
       "            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",
       "        this.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 = $(\n",
       "        '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
       "        'ui-helper-clearfix\"/>');\n",
       "    var titletext = $(\n",
       "        '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
       "        'text-align: center; padding: 3px;\"/>');\n",
       "    titlebar.append(titletext)\n",
       "    this.root.append(titlebar);\n",
       "    this.header = titletext[0];\n",
       "}\n",
       "\n",
       "\n",
       "\n",
       "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
       "\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
       "\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_canvas = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var canvas_div = $('<div/>');\n",
       "\n",
       "    canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
       "\n",
       "    function canvas_keyboard_event(event) {\n",
       "        return fig.key_event(event, event['data']);\n",
       "    }\n",
       "\n",
       "    canvas_div.keydown('key_press', canvas_keyboard_event);\n",
       "    canvas_div.keyup('key_release', canvas_keyboard_event);\n",
       "    this.canvas_div = canvas_div\n",
       "    this._canvas_extra_style(canvas_div)\n",
       "    this.root.append(canvas_div);\n",
       "\n",
       "    var canvas = $('<canvas/>');\n",
       "    canvas.addClass('mpl-canvas');\n",
       "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
       "\n",
       "    this.canvas = canvas[0];\n",
       "    this.context = canvas[0].getContext(\"2d\");\n",
       "\n",
       "    var rubberband = $('<canvas/>');\n",
       "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
       "\n",
       "    var pass_mouse_events = true;\n",
       "\n",
       "    canvas_div.resizable({\n",
       "        start: function(event, ui) {\n",
       "            pass_mouse_events = false;\n",
       "        },\n",
       "        resize: function(event, ui) {\n",
       "            fig.request_resize(ui.size.width, ui.size.height);\n",
       "        },\n",
       "        stop: function(event, ui) {\n",
       "            pass_mouse_events = true;\n",
       "            fig.request_resize(ui.size.width, ui.size.height);\n",
       "        },\n",
       "    });\n",
       "\n",
       "    function mouse_event_fn(event) {\n",
       "        if (pass_mouse_events)\n",
       "            return fig.mouse_event(event, event['data']);\n",
       "    }\n",
       "\n",
       "    rubberband.mousedown('button_press', mouse_event_fn);\n",
       "    rubberband.mouseup('button_release', mouse_event_fn);\n",
       "    // Throttle sequential mouse events to 1 every 20ms.\n",
       "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
       "\n",
       "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
       "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
       "\n",
       "    canvas_div.on(\"wheel\", function (event) {\n",
       "        event = event.originalEvent;\n",
       "        event['data'] = 'scroll'\n",
       "        if (event.deltaY < 0) {\n",
       "            event.step = 1;\n",
       "        } else {\n",
       "            event.step = -1;\n",
       "        }\n",
       "        mouse_event_fn(event);\n",
       "    });\n",
       "\n",
       "    canvas_div.append(canvas);\n",
       "    canvas_div.append(rubberband);\n",
       "\n",
       "    this.rubberband = rubberband;\n",
       "    this.rubberband_canvas = rubberband[0];\n",
       "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
       "    this.rubberband_context.strokeStyle = \"#000000\";\n",
       "\n",
       "    this._resize_canvas = function(width, height) {\n",
       "        // Keep the size of the canvas, canvas container, and rubber band\n",
       "        // canvas in synch.\n",
       "        canvas_div.css('width', width)\n",
       "        canvas_div.css('height', height)\n",
       "\n",
       "        canvas.attr('width', width);\n",
       "        canvas.attr('height', height);\n",
       "\n",
       "        rubberband.attr('width', width);\n",
       "        rubberband.attr('height', height);\n",
       "    }\n",
       "\n",
       "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
       "    // upon first draw.\n",
       "    this._resize_canvas(600, 600);\n",
       "\n",
       "    // Disable right mouse context menu.\n",
       "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\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 nav_element = $('<div/>')\n",
       "    nav_element.attr('style', 'width: 100%');\n",
       "    this.root.append(nav_element);\n",
       "\n",
       "    // Define a callback function for later on.\n",
       "    function toolbar_event(event) {\n",
       "        return fig.toolbar_button_onclick(event['data']);\n",
       "    }\n",
       "    function toolbar_mouse_event(event) {\n",
       "        return fig.toolbar_button_onmouseover(event['data']);\n",
       "    }\n",
       "\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",
       "            // put a spacer in here.\n",
       "            continue;\n",
       "        }\n",
       "        var button = $('<button/>');\n",
       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
       "                        'ui-button-icon-only');\n",
       "        button.attr('role', 'button');\n",
       "        button.attr('aria-disabled', 'false');\n",
       "        button.click(method_name, toolbar_event);\n",
       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
       "\n",
       "        var icon_img = $('<span/>');\n",
       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
       "        icon_img.addClass(image);\n",
       "        icon_img.addClass('ui-corner-all');\n",
       "\n",
       "        var tooltip_span = $('<span/>');\n",
       "        tooltip_span.addClass('ui-button-text');\n",
       "        tooltip_span.html(tooltip);\n",
       "\n",
       "        button.append(icon_img);\n",
       "        button.append(tooltip_span);\n",
       "\n",
       "        nav_element.append(button);\n",
       "    }\n",
       "\n",
       "    var fmt_picker_span = $('<span/>');\n",
       "\n",
       "    var fmt_picker = $('<select/>');\n",
       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
       "    fmt_picker_span.append(fmt_picker);\n",
       "    nav_element.append(fmt_picker_span);\n",
       "    this.format_dropdown = fmt_picker[0];\n",
       "\n",
       "    for (var ind in mpl.extensions) {\n",
       "        var fmt = mpl.extensions[ind];\n",
       "        var option = $(\n",
       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
       "        fmt_picker.append(option)\n",
       "    }\n",
       "\n",
       "    // Add hover states to the ui-buttons\n",
       "    $( \".ui-button\" ).hover(\n",
       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
       "    );\n",
       "\n",
       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
       "    nav_element.append(status_bar);\n",
       "    this.message = status_bar[0];\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",
       "\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",
       "\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]);\n",
       "        fig.send_message(\"refresh\", {});\n",
       "    };\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
       "    var x0 = msg['x0'];\n",
       "    var y0 = fig.canvas.height - msg['y0'];\n",
       "    var x1 = msg['x1'];\n",
       "    var y1 = fig.canvas.height - msg['y1'];\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, 0, fig.canvas.width, fig.canvas.height);\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",
       "    {\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.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",
       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
       "                evt.data);\n",
       "            fig.updated_canvas_event();\n",
       "            fig.waiting = false;\n",
       "            return;\n",
       "        }\n",
       "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\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(\"No handler for the '\" + msg_type + \"' message type: \", msg);\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(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\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",
       "    if (e.target)\n",
       "        targ = e.target;\n",
       "    else if (e.srcElement)\n",
       "        targ = e.srcElement;\n",
       "    if (targ.nodeType == 3) // defeat Safari bug\n",
       "        targ = targ.parentNode;\n",
       "\n",
       "    // jQuery normalizes the pageX and pageY\n",
       "    // pageX,Y are the mouse positions relative to the document\n",
       "    // offset() returns the position of the element relative to the document\n",
       "    var x = e.pageX - $(targ).offset().left;\n",
       "    var y = e.pageY - $(targ).offset().top;\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",
       "    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",
       "    {\n",
       "        this.canvas.focus();\n",
       "        this.canvas_div.focus();\n",
       "    }\n",
       "\n",
       "    var x = canvas_pos.x;\n",
       "    var y = canvas_pos.y;\n",
       "\n",
       "    this.send_message(name, {x: x, y: y, button: event.button,\n",
       "                             step: event.step,\n",
       "                             guiEvent: simpleKeys(event)});\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",
       "\n",
       "    // Prevent repeat events\n",
       "    if (name == 'key_press')\n",
       "    {\n",
       "        if (event.which === this._key)\n",
       "            return;\n",
       "        else\n",
       "            this._key = event.which;\n",
       "    }\n",
       "    if (name == 'key_release')\n",
       "        this._key = null;\n",
       "\n",
       "    var value = '';\n",
       "    if (event.ctrlKey && event.which != 17)\n",
       "        value += \"ctrl+\";\n",
       "    if (event.altKey && event.which != 18)\n",
       "        value += \"alt+\";\n",
       "    if (event.shiftKey && event.which != 16)\n",
       "        value += \"shift+\";\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,\n",
       "                             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",
       "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\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"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\";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 overriden (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 = $(\"#\" + id);\n",
       "    var ws_proxy = comm_websocket_adapter(comm)\n",
       "\n",
       "    function ondownload(figure, format) {\n",
       "        window.open(figure.imageObj.src);\n",
       "    }\n",
       "\n",
       "    var fig = new mpl.figure(id, ws_proxy,\n",
       "                           ondownload,\n",
       "                           element.get(0));\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.get(0);\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",
       "\n",
       "    var output_index = fig.cell_info[2]\n",
       "    var cell = fig.cell_info[0];\n",
       "\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
       "    fig.root.unbind('remove')\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).html('<img src=\"' + dataURL + '\">');\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 dataURL = this.canvas.toDataURL();\n",
       "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\">';\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 () { fig.push_to_output() }, 1000);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_toolbar = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var nav_element = $('<div/>')\n",
       "    nav_element.attr('style', 'width: 100%');\n",
       "    this.root.append(nav_element);\n",
       "\n",
       "    // Define a callback function for later on.\n",
       "    function toolbar_event(event) {\n",
       "        return fig.toolbar_button_onclick(event['data']);\n",
       "    }\n",
       "    function toolbar_mouse_event(event) {\n",
       "        return fig.toolbar_button_onmouseover(event['data']);\n",
       "    }\n",
       "\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) { continue; };\n",
       "\n",
       "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
       "        button.click(method_name, toolbar_event);\n",
       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
       "        nav_element.append(button);\n",
       "    }\n",
       "\n",
       "    // Add the status bar.\n",
       "    var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
       "    nav_element.append(status_bar);\n",
       "    this.message = status_bar[0];\n",
       "\n",
       "    // Add the close button to the window.\n",
       "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
       "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
       "    button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
       "    button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
       "    buttongrp.append(button);\n",
       "    var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
       "    titlebar.prepend(buttongrp);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._root_extra_style = function(el){\n",
       "    var fig = this\n",
       "    el.on(\"remove\", function(){\n",
       "\tfig.close_ws(fig, {});\n",
       "    });\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._canvas_extra_style = function(el){\n",
       "    // this is important to make the div 'focusable\n",
       "    el.attr('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",
       "    }\n",
       "    else {\n",
       "        // location in version 2\n",
       "        IPython.keyboard_manager.register_events(el);\n",
       "    }\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",
       "    // 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",
       "\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('matplotlib', mpl.mpl_figure_comm);\n",
       "}\n"
      ],
      "text/plain": [
       "<IPython.core.display.Javascript object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAgAElEQVR4nOzdd3gUVduA8YcqAiIKKAp2XxWw996RYu+FTxQVC6GF3lkVfe0NEcEu9i620ItI77333ntPnu+PMxtD3mRnJmd3Zjfcv+vaS+POzDkRNDezM2dEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQSRUSkioiU48WLFy9evHil1KuKmJ/jgG9VRER58eLFixcvXin5qiJAAZQTEV22bJlu2bKl0L/S0tJCnwPfK98r3yvfK99r+PNI9e912bJl0QAsF3JHIEWVExHdsmWLHgzS09PDnkJg+F4LJ77XwonvtXBK5Pe6ZcsWAhBWCMBCiu+1cOJ7LZz4XgsnAhDJ7KAKwIyMjLCnEBi+18KJ77Vw4nstnBL5vRKAsHVQBSAAAIUBAQhbBCAAACmGAIQtAhAAgBRDAMIWAQgAQIohAGGLAAQAIMUQgLBFAAIAkGIIQNgiAAEASDEEIGwRgAAApBgCELYIQAAAUgwBCFsEIAAAKYYAhC0CEACAFEMAwhYBCABAiiEAYYsABAAgxRCAsEUAAgCQYghA2CIAAQBIMQQgbBGAAACkGAIQtghAAABSDAEIWwQgAAAphgCELQIQAIAUQwDCFgEIAECKIQBhiwAEACDFEICwRQACAJBiCEDYIgABAEgxBCBsEYAAAKQYAhC2CEAAAFIMAQhbBCAAACmGAIQtAhAAgBRDAMIWAQgAQIohAGGLAAQAIMUQgLBFAAIAkGIIQNgiAAEASDEEIGwRgAAApBgCELYIQAAAUgwBCFsEIAAAKYYAhC0CEACAFEMAwhYBCABAiiEAYYsABAAgxRCAwfmviEwVkS0iskJEvhKRqrm2OU5EfhORrSKyVkS6i0jxXNukicgiEdkuIuNF5KqQjhFFAAIAkGIIwOC8ICLniQmpciLypYhMyvF+ETGB+ImIlBETYVNE5M0c29wrIptE5ErnOI1EZJuIVAn4GDkRgAAApBgCMDzniEimiBzufH2NiOwRkSNybHObmDgr4Xw9WERez3WciSLSMeBj5EQAAgCQYgjA8LQRkYU5vm4qIrNybXOMiGSJyJnO1xtF5P5c2/QSkR8CPkZOBCAAACmGAAzHjWLOqNXM8c86icioXNuVEhNelztf7xeRWrm2eUlE+gd8jJwIQAAAUgwBGLxbxFyDd1uufx7rzFsN52ubs3fxOAZnAAEAKAQIwGDVExN/N+bx3tUislvyvvaupPP1YBF5Ldd+E+Tf6/eCOkZO5URE09LSND09XdPT0zUjIyPs39ehyMoyLwAAklFGRkb2z+q0tDQCMCCNxcTfFfm8X0REJovIxyJSVkSOF3OXcM67b+8RcwbvSjE3ZDwjZqmWKgEfIyfOADpEVJ9/PuxZAADgjjOAwckSc3ftVue1zflrziA8TkR+d95bJyJvy//eedtIRBaLyA4xa/hdmev9oI4RRQA6RFRr1w57FgAAuCMAYYsAdBCAAIBUQQDCFgHoIAABAKmCAIQtAtBBAAIAUgUBCFsEoIMABACkCgIQtghABwEIAEgVBCBsEYAOAhAAkCoIQNgiAB0EIAAgVRCAsEUAOghAAECqIABhiwB0iKjWqRP2LAAAcEcAwhYB6OAMIAAgVRCAsEUAOghAAECqIABhiwB08BEwACBVEICwRQA6CEAAQKogAGGLAHQQgACAVEEAwhYB6OAaQABAqiAAYYsAdBCAAIBUQQDCFgHokKJ7tXadzLCnAQCAKwIQtghAh0RET3qqZdjTAADAFQEIWwSgQyKi5VteHvY0AABwRQDCFgHokIjoES2vCHsaAAC4IgBhiwB0EIAAgFRBAMIWAeggAAEAqYIAhC0C0CER0SNaXBn2NAAAcEUAwhYB6DABeFXY0wAAwBUBCFsEoIMABACkCgIQtghAhwnAq8OeBgAArghA2CIAHQQgACBVEICwRQA6CEAAQKogAGGLAHRIRPTIFteEPQ0AAFwRgLBFADpMAF4b9jQAAHBFAMIWAeggAAEAqYIAhC0C0EEAAgBSBQEIWwSgQyKiFVpcF/Y0AABwRQDCFgHokIjokekEIAAg+RGAsEUAOiQiWiH9+rCnAQCAKwIQtghAhwnAG8KeBgAArghA2CIAHQQgACBVEICwRQA6CEAAQKogAGGLAHSYALwx7GkAAOCKAIQtAtBBAAIAUgUBCFsEoEMiohXTa4Y9DQAAXBGAsEUAOghAAECqIABhiwB0EIAAgFRBAMIWAegwAXhT2NMAAMAVAQhbBKBDIqIVm9cKexoAALgiAGGLAHQQgACAVEEAwhYB6JCIaKXmtcOeBgAArghA2CIAHQQgACBVEICwRQA6CEAAQKogAGGLAHSYAKwT9jQAAHBFAMIWAegwAVg37GkAAOCKAIQtAtBBAAIAUgUBCFsEoIMABACkCgIQtghAhwnAm8OeBgAArghA2CIAHRIRPYoABACkAAIQtghAhwnAW8KeBgAArghA2CIAHQQgACBVEICwRQA6CEAAQKogAGGLAHRIRPSoZreGPQ0AAFwRgLBFADokInp0s9vCngYAAK4IQNgiAB0EIAAgVRCAsEUAOkwA3h72NAAAcEUAwhYB6DABeEfY0wAAwBUBCFsEoIMABACkCgIQtghABwEIAEgVBCBsEYAOE4B3hj0NAABcEYCwRQA6JCJaueldYU8DAABXBCBsEYAOAhAAkCoIQNgiAB0SEa3cjAAEACQ/AhC2CECHOQN4d9jTAADAFQEIWwSggwAEAKQKAhC2CECHCcB7wp4GAACuCEDYIgAdBCAAIFUQgLBFADokInoMAQgASAEEIGwRgA4TgPeGPQ0AAFwRgMG6X0SGi8gWEckUkaK53s8SkZ0islVEtjl/rZFrm2dFZIXz/tA83j9bRIaJyHYRWS4iXfOYRzyOEUUAOkwA3hf2NAAAcEUABqummAhsIPkH4HUx9m8tIktEpLqIHCIiL4oJtNLO+2VFZKWIdBORkiJypogsE5FmcT5GTgSggwAEAKQKAjAc10j+AXh9jP0WikjjHF8XE5G1IlLP+foREVmd67hNRWRenI+REwHokIjosU3vD3saAAC4IgDDESsAV4rIOhEZLyJP5HivnPP+Jbn26Scirzl//4aI/JXr/cucscrG6Ri5EYAOAhAAkCoIwHDkF4DXiflYtriI1BGRjSLylPNeVTHxdnqufb4Rkd7O338oIl/nev8MZ6xj43SM3AhABwEIAEgVBGA48gvA3LqKyAjn7zkDmOQkInpskwfCngYAAK4IwHB4DcAuIvJPjq/zun5vjYg85HxdXwp2DaDfY+RUTkQ0LS1N09PTNT09XTMyMsL+fR0KE4APhj0NAADylJGRkf2zOi0tjQAMUFExH/HeJCYASztfFxGR80TkfBEpISbKbhKRDSKSlmP/ViKyWMyyLYeKyAti7tDNeQfvChF5XkRKibmDd4kceAdvPI6RE2cAHQQgACBVcAYwWI+I+Qg203lF//5qEblFRGaKWZtvo4hMEpGGeRwjIiKrxKzRN1T+dw2/M8WsNbhDzA0lnRN0jCgC0GEC8KGwpwEAgCsCELYIQAcBCABIFQQgbBGADgIQAJAqCEDYIgAdEhGt0qRe2NMAAMAVAQhbBKDDBOD/hT0NAABcEYCwRQA6CEAAQKogAGGLAHQQgACAVEEAwhYB6JCIaJXGD4c9DQAAXBGAsEUAOghAAECqIABhiwB0SES0apP6YU8DAABXBCBsEYAOAhAAkCoIQNgiAB0EIAAgVRCAsEUAOiQiWrXxI2FPAwAAVwQgbBGADomIHtf40bCnAQCAKwIQtghABwEIAEgVBCBsEYAOE4ANwp4GAACuCEDYIgAdBCAAIFUQgLBFADoIQABAqiAAYYsAdJgAfCzsaQAA4IoAhC0C0CER0eMbPx72NAAAcEUAwhYB6CAAAQCpggCELQLQIRHR49OeCHsaAAC4IgBhiwBU1aysLAIQAJAyCEDYIgBVNTMr0/kImAAEACQ/AhC2CEBV3Z+5XyUiekLjhmFPBQAAVwQgbBGAqrovc58JwLQnw54KAACuCEDYIgD13wA8ngAEAKQAAhC2CEBV3bt/LwEIAEgZBCBsEYCqumf/Hucj4KfCngoAAK4IQNgiAFV1977dBCAAIGUQgLBFAKrqrn27nAB8OuypAADgigCELQJQCUAAQGohAGGLAFTVnXt3EoAAgJRBAMIWAaiqO/buUImInpj2TNhTAQDAFQEIWwSgqm7fs90JwEZhTwUAAFcEIGwRgKq6bc82AhAAkDIIQNgKJQD37lXNzAx0yJiyA7BRWthTAQDAFQEIW6EEoIhqkyaBDhnT1t1bCUAAQMogAGErtAA8//xAh4xpy+4tBCAAIGUQgLBFAKrq5l2bVSKiJzVqHPZUAABwRQDCFgGoqpt2bSIAAQApgwCELQJQcwZgEl2YCABAPghA2CIAlQAEAKQWAhC2QgrALD3v/KxAx4xl486NBCAAIGUQgLAVTgBGRE+47fNAx4yFAAQApBICELZCC8BKDzcLdMxYNuzcQAB6sHmz6tq1Yc8CAEAAwhYBqASgV9Wqmes3AQDhIgBhK7wArN800DFjWb9jPQHogQgBCADJgACELQJQ/w3Akxslz5ySEQEIAMmBAIQtAlBV1+1YRwB6UKQIAQgAyYAAhC0CUAlArzgDCADJgQCErRADMHmutyMAvSEAASA5EICwRQCq6trtawlAD/gIGACSAwEIWyEGYONAx4yFAPSGAASA5EAAwlZ4AfhI8gTgmu1rCEAPihYlAAEgGRCAsMUZQM0ZgMmzOHUyIgABIDkQgLAV4hnAtEDHjGX1ttUEoAdFrnxZ5YZ2YU8DAA56BCBsEYBKAHolEVGJcAoQAMJGAMIWAaiqq7atIgA9IAABIDkQgLBFACoB6BUBCADJgQCErdACsOIjjQIdMxYC0BsCEACSAwEIWwSgqq7cutIEYBoBGAsBCADJgQCErfA+An70mUDHjIUA9IYABIDkQADCFgGoqiu2riAAPSAAASA5EICwFd5HwI8+HeiYsWQHYKPmYU8lqRGAAJAcCEDYIgBVdfmW5QSgBwQgACQHAhC2CEBVXbbZBOApBGBMBCAAJAcCELYIQFVdunkZAegBAQgAyYEAhK0QA/CpQMeMZckmAtALAhAAkgMBCFsEoBKAXhGAAJAcCEDYCi8AGzwZ6JixLN64lAD0gAAEgORAAMIWAaiqizYsZR1ADwhAAEgOBCBshRiADQMdM5aFG5YQgB4QgACQHAhA2CIAVXXBegLQCwIQAJIDAQhbBKCqzl+/2AnApmFPJakRgACQHAhA2CIAVXXeOgLQCwIQAJIDARis+0VkuIhsEZFMESma6/2zRWSYiGwXkeUi0jWPYzwrIitEZJuIDBWRGiEdIyrEAHwi0DFjmbt2EQHoAQEIAMmBAAxWTTER2ED+NwDLishKEekmIiVF5EwRWSYizXJs01pElohIdRE5REReFBNopQM+Rk4EoOYMwCZhTyWpEYAAkBwIwHBcI/8bgI+IyOpc/6ypiMzL8fVCEWmc4+tiIrJWROoFfIycCEBVnbOGAPSCAASA5EAAhiOvAHxDRP7Ktd1lznZlxfwCZYnIJbm26ScirwV4jNxCC8AKDR4PdMxYZq9ZSAB6QAACQHIgAMORVwB+KCJf59ruDGe7Y0Wkqph4Oz3XNt+ISO8Aj5EbAaiqs1Y7Adi4cdhTSWoEIAAkBwIwHJwBtCQR0QqPPRbomLHMXL1AJSJ6UhoBGAsBCADJgQAMR14BWF8Kdv3eGhF5KOBj5FRORDQtLU3T09M1PT1dMzIyEv4bN+kCcBUB6AUBCADhycjIyP5ZnZaWRgAGqKiYO29vEhOApZ2vi4g5u7ZCRJ4XkVJi7r5dIgfefdtKRBaLWbblUBF5Qcwdujnv4A3iGDlxBlBVZ6yc7wRgWthTSWoEIAAkB84ABusRMR/BZjqv6N9f7bx/pph1AneIWYqlcx7HiIjIKjFr9A2V/13DL6hjRBGASgB6RQACQHIgAGErxABsEOiYsUxbMc+5CYQAjIUABIDkQADCFgGo/wbgSY0bhT2VpEYAAkByIABhK8QAfDTQMWOZupwA9IIABIDkQADCFgGoqlOWzyUAPSAAASA5EICwFV4APv5IoGPGMnlZNACfCXsqSY0ABIDkQADCFgGoqpOWziEAPSAAASA5EICwRQAqAegVAQgAyYEAhC0CUFUnLJntBODTYU8lqRGAAJAcCEDYCi0Aj3y8fqBjxkIAekMAAkByIABhK8QzgMkTgOMXzyIAPSAAASA5EICwFV4APvFwoGPGEg3AExs/FfZUkhoBCADJgQCELQJQCUCvCEAASA4EIGyFdw3gE/8X6JixjF04kwD0gAAEgORAAMIWAag5ArDJk2FPJakRgACQHAhA2CIAVXX0ghkEoAcEIAAkBwIQtghAJQC9IgABIDkQgLBFAKrqyPnTnQBsGPZUkhoBCADJgQCErRADsF6gY8ZCAHpDAAJAciAAYYsAVNV/5k0jAD0gAAEgORCAsBVeADZ8KNAxYxmRHYBPhD2VpEYAAkByIABhiwDUcAIwK0t1//7AhosLAhAAkgMBCFshBuCDgY4Zy99zpgYegB07qkqKtRQBCADJgQCELQJQ/w3AE5o+HtiYV1xBAAIACoYAhC0CUFWHzZ4SeABedhkBCAAoGAIQtghADScAL76YAAQAFAwBCFshBuADgY4Zy9DZk50AfCywMS+4gAAEABQMAQhbBKCqDpkVfACeey4BCAAoGAIQtkILwCMa3h/omLEMnjkp8AA8+2wCEABQMAQgbBGAqjooOwAbBDZmjRoEIACgYAhA2AovAJ+8L9AxYwkjAKtVIwABAAVDAMIWAaiqA6dPDDwATzuNAAQAFAwBCFsEoP4bgMc3fTSwMU85hQAEABQMAQhbBKCqDpg+IfAAPPFEAhAAUDAEIGyFGID3BjpmLP2nTXA+Ag4uAI87jgAEABQMAQhbBKCq9ps23jkD+EhgY1apQgACAAqGAIStEAPwnkDHjCVjavABWLkyAQgAKBgCELbCC8CnkicA/5o6LvAAPOooAhAAUDAEIGxxBlBV/5oSDcD6gY1ZoQIBCAAoGAIQtkI8A3h3oGPGkh2AzQjAWAhAAEgOBCBsEYCq+ufksQSgBwRgLp99lnq/iAAKBQIQtghAVf0jOwAfDmzMihVTrx0IwFwaNUq9X0QAhQIBCFsEoKr+PmkMAegBAXigXQ0bpN4vIoBCgQCErcADMCsrSyUiWv6puwIb081vEwlALwjAAw246dTU+0UEUCgQgLBFAKpq34mjnQD8v8DGrFQp9dqBADxQRs2TUu8XEUChQADCVuABmJmVaQLw6TsDG9NNGAHIGcDU1+9GAhBAOAhA2CIAVfXXCaMCD8Dy1Sao1G4a2HjxQAAeqN8NBCCAcBCAsBV4AO7P3O8E4B2BjekmjAAsWf+OlIspAvBA/W44kQAEEAoCELYIQFX9ZbwJwOOa1QtszBJPXpVyMUUAHogABBAWAhC2Ag/AfZn7ki4Afx4/MvAALNa0esrFFAF4oH7XE4AAwkEAwhYBqKo/jQs+AIu2rpxyMUUAHqj/9ScQgABCQQDCVuABuHf/XicAbw9sTDc/jv3HCcCHAhuzSIeyKRdTBOCBCEAAYSEAYYsA1JACsGOZlIspAvBABCCAsBCAsBV4AO7Zv8cJwNsCG9PND2NGEIAeEIAH6n/dCQQggFAQgLBFAOq/AVi12YOBjUkApr4B1x5PAAIIBQEIW4EH4O59u00APnNrYGO6+W703wSgBwTggQhAAGEhAGEr8ADctW8XAagEYGEw4BoCEEA4CEDYCi0AD3/mlsDGdPPtKBOAVZo9ENiYBGDqG3DNcQQggFAQgLAVeADu3Lsz6QLwm1HDCUAP4hmAfab00U6DOsXlWGEZSAACCAkBCFuhBWAyfQRMAHoTzwAs999yKff950YAAggLAQhbgQfgjr07ku4M4NcjhzkBeH9gYxKAhSAAr65KAAIIBQEIWwSgEoBeEYAHIgABhIUAhK3AA3D7nu1OAN4c2JhuvvxnqEpE9NimBGAsBOCBBl1FAAIIBwEIWwSg5gjAZvcFNubBHoCH//fwlPv+cxt0ZRUCEEAoCEDYCjwAt+3ZZgKwUd3AxnTzxYghzhlAAjAWAvBABCCAsBCAsEUAKgHoFQF4IAIQQFgIQNgKPAC37t6atAF4TNN7AxvzYA/AMt0KwTWAV1gEYN26qnPmxHdCAA4aBCBsEYCq+vnfgwlAD+IZgNIu9QNw8BXHFjwARVRffDG+EwJw0CAAYSvwANyye4sTgHUCG9NNOAFYOuUCKL4BmPofAROAAMJCAMIWAaiqnw4b5ATgPYGNSQASgAQggIIiAGEr8ADcvGuzE4C1AxvTTTQAKxOAMRGABxp8uV0Abu3aPr4TAnDQIABhK/AA3LQz+QLwk6EDQwjAg/0awNQPwCGXHWMVgDNb1I/vhAAcNAhA2Ao8ADfu3GQCMK1WYGO6+TcA7w5sTAKQAJzR4uH4TgjAQYMAhK3AA3D99o0qEdFyjZInAD8eOiCEADzIPwJuWz7lvv/cBhOAAEJCAMJW4AG4blvyBeBHQwhALwjAAw25tDIBCCAUBCBsBR6Aa7dtSNoAPLrpXYGNSQCmfgAOtQzA6VwDCKCACMDk0lVE9ovIVhHZ5vz1yxzvny0iw0Rku4gsd7bP7VkRWeHsP1REauR6Px7HyCnwAFyz1QnAtJsCG9PNh4P7E4AeEIAHIgABhIUATC5dRWR4Pu+VFZGVItJNREqKyJkiskxEmuXYprWILBGR6iJyiIi8KCbySsfxGLkFHoCrt6wnAJUALAwBOOQSAhBAOAjA5BIrAB8RkdUiUjTHP2sqIvNyfL1QRBrn+LqYiKwVkXpxPEZugQfgqs3RAKwZ2JhuPhjczwnAOwMb86C/C7gQBODQS44mAAGEggBMLl3FfOy6RkQWifn490TnvTdE5K9c218mIplizuyVE5EsEbkk1zb9ROS1OB4jt8ADcMWmdUkXgL0HhRGAiT0D+NNPqsOGxfeYBOCBhl1MAAIIBwGYXKqLyHHO3x8jIl+IOTtXWkQ+FJGvc21/hph4O1ZEqoqJt9NzbfONiPR2/j4ex8gtvABsfGNgY7rpNSij0AWgiGqRInE+phOAWVlxONZBHIBZWVmqIjqtJQEIoGAIwORWUkR2iciNwhnAbMs2rk2+ABxoAvCopncENmYQAVjQk1P5HtMJwMzMOByrEATg0AIGYGZWJgEIwAoBmNxKishOEakpIvWlYNfvrRGRh5yvbY4R8xrAtLQ0TU9P1/T0dM3IyEjob9qlG5IvAN8f+BcB6OWYTgDu3x+HY7U9IuUDcNhFRxXoX/L+zP1OALIOIADvMjIysn9Wp6WlEYBJ5F4RqeD8/dEi8rmYICsj5gzdChF5XkRKibmDd4kceAdvKxFZLGbZlkNF5AUxd/nmvAvY9hi5BX4GcMn6Nc41gMkTgD0HOAHYhACMeUwnAPfti8OxCkEADi9gAO7L3EcAArDCGcDk8quYs23bxUTXlyJyco73zxRzl/AOMcu5dM7jGBERWeUcY6j87xp+8ThGToEH4OJ1yRuAlZrcHtiYCQ/AkttUSuyI7zEJwAMUNAD37t/LR8AArBCAsBV4AC5at9r5CPiGwMZ0896APwtfALY5UiXtjPge0wnAvXvjcKzCEIAXVipQAO7et5sABGCFAIStwANw4drkC8Ae/QthAMZxyZbcx9yzJw7HKgwBeEHBAnDXvl0EIAArBCBsBR6AC9ascgLw+sDGdNOj/x9OAN4W2JipHIC7d8fhWAdxAO7cu1NVRKdyDSCAAiIAYYsAVNV3+xGAfo65a1ccjnUQB+COvTsIQABWCEDYCjwA561aqRIRPazxdYGN6aZ7v99VIqIVgwzAToembADu3BmHYxWCAPz7/IIF4PY9200AtuIjYAAFQwDCVuABOGfliqQLwHcyogF4a2BjEoCpH4Ajzq9YoADctmebqohOacUZQAAFQwDCFgGoqu9k/EYA+jjmjjisLnMwB+DW3VsJQABWCEDYCjwAZ61YTgBqal8DuH17HI7V5sjUD8DzChaAm3duIgABWCEAYSvwAJy53AnAJtcGNqabt/+KBuAtgY2ZkgHYtYhKRHTbtjgc6yAOwE07NpgAbM01gAAKhgCErcADcMayZUkXgG/91VclIlohyABMxY+AuxRViYhu3RqHYxWGADy3QoECcOO2dQQgACsEIGwFHoDTl0YD8JrAxnTz5p8EoKdjOgEYj98uB3MAbti6ho+AAVghAGEr8ACctnRpEgbgr04A3hzYmKkZgMVUIqKbN8fhWIUgAP85p2ABuH7zKgIQgBUCELYCD8CpS6IBeHVgY7p54w8C0NMxuxQnAHMoaACu27RCVUQnt/y/BMwKwMGAAIStwANwyuIlJgCbXhXYmG5e+/0XAtDLMZ0A3LQpDscqBAE48pwjCxSAa9cvNQFYWM4A9u+v2rRp2LMADioEIGyFGIBXBjamm2gAHtmkbmBjpuRdwJ1LqEREN26Mw7EKQQD+U8AAXLNuceEKwKuuKtC/BwAFRwDCVuABOGnhYpWIaNkkCsBXf/s5+ABMxTOATgBu2BCHYxWCABx5dsECcNWaBYUrAG+6iQAEAkYAwlbgAThxQTQArwhsTDev9CUAPR2zc0mViOj69XE41sEcgKvmF64AvO02AhAIGAEIW4EH4AYrSI4AACAASURBVIQFi5wAvDywMd38G4B1AhszGoBZWYk5fkICsNMhKhHRdevicKw2FVI+AEeddUSBwmflijmqIjqpsKwDeN99yRGAmZmqS5aEPQsgEAQgbAUegOPnOwHY7LLAxnTz0q8/EYBejkkAHmDUmQULwBXLZjkBWEjOANavnxwB2L17cswDCAABCFuBB+DYeQudALw0sDHd/PeX8AIwMzMxx09EABbpVEolIrp2rf2xClUA+qz45UtnFK4AfOqp5Aivdu2SYx5AAAhA2AotAMs0uySwMd28+POPKhHRI5rUDmzMaADu35+Y4ycyANessT/WwRyAyxZPUxXRiYXlGsBmzZIjvAhAHEQIQNgKPADHzF1gArD5xYGN6eaFn8ILwH37EnP8xASgmfPq1fbHktYVUz4AR59Z3gSHz9O4yxZNURXRCa3q+dpv8LwB+s7Fogn7TVNQbduafw+J+tOMVwQgDiIEIGwFHoCj58x3AvCiwMZ00+3HH0ILwL17E3P8hASgs3bhqlX2xyoUAVijfIHCZ8mCiaoiOr61vyeBvPJdczPeokW+9ku49u3NvPbsCXceBCAOIgQgbAUegKNmJ18APp8dgLUCGzMagIn6mZnIAFyxwv7OlcLwEXB2APo8I7d43ngTgD7PAL72rROASXana2Y75wzg7t3hToQAxEGEAIStwAPwn1nznAC8MLAx3Tz3w/cqEdHyTW4KbMzUDMAyKhHRZcvt71w5mANw0dyxqiI6ruVDvvZ782snAJct87Vfon13+3/MvHbuDHciBCAOIgQgbIUWgKXTLwhsTDfPfh8NwJqBjRm9oSJRJ00SGYBLl9lf61UYAnBMdROAWT4rftHsMaoiOrblg772ezsagCtW+Nov0d687lAzrx07wp0IAYiDCAEIW4EH4N8z5zoBeH5gY7qJfGcC8PAmNwQ2ZjQAd+5MzEKAiQnAsioR0UVL7S9cLAzXAI6tfriqiGbu3uVrv4UzR6qK6JhW/gKw+5dOAMbjIsw46n5jOTOvbdvCnQgBiIMIAQhbgQfg8BnRADwvsDHddP3uOxOATa8LbMxoAG7fkZiFABMSgB0OU4mILlhs/7l1YQrA/Tv9nflaMH2EqoiObvmAr/16RANw5Upf+yVar1oVzby2bg13ItGbUYCDAAEIWyEE4BwTgC3ODWxMN12+NQFYrum1gY0ZvQZw2/YUCkDnDOC8RfafWxeGABxTrWABOH/acFURHeUzAHt+4QTg8uW+9ku0T+oea+YV4P9H8uTnDOCGDeFfswhYIABhK/AAHDY9GoDnBDamm87ffGsCsNnVgY0ZDcAtWxOzdloirwGcs8DfR555KQwBOLaa+ehz3w5/H33OnzpMVURHtrzf1369Pk/Om0C+uPVEM69Nm8KdiJ8AFFGtE9yTf4B4IwBhK/AAHDptthOAZwc2pptOX0cD8MrAxox+BLxpS2IW9U1kAM6eb3/mpFAE4BkmAPdu8/ffz9xJg1RF9B+fAfjh5+lJuQzMd3c4dwFv3BjuRPwGYNWqiZ0PkEAEIGwFHoBDnAA8tMVZgY3ppuNX36hERA9rdkVgY0YDcOPmxKwEncgAnDF3u/WxpHWlQhOAe7b6O/M1Z+IAE4Dp9/ra7+NPnEeuLV7sa79E+/6O08y8NmwIdyJ+rgEUUT322MTOB0ggAhC2Ag/AQVNmJV0AdogGYPPLAhszGoDrNyVmIcBELgQ9fa793Z6FIwAPUxXR3Vv8nfmaM76/E4D3+Nrv04+amnBZuNDXfomWHYDr1oU7Eb9nAI85JrHzARKIAISt8AKw5ZmBjemm/Zdfq0REyza/JLAxowG4dkNiFgJM5LOAp86xv9uzMHwEPO50E4C7Nq/3td/scRmqIjqi2d2+9uvzQRMTLgsW+Nov0X6483Qzr7Vrw52I3wCsXDmx8wESiACErcADcODkmU4A1ghsTDftvogG4MWBjRkNwDXrUy8AJ8+y//1SKALwNBOAOzf6C59ZY/40Adj0Tl/7fdXLBGDm3Dm+9ku076MBuHp1uBPx+xHwUUcldj6FyZw5LLGTZAhA2Ao8AAdMMgFYqmX1wMZ0Ew3AMunBPZ4uGlOr1tnfUZuXRAbgxJn2d3smSwCe+s6p+sqIVwq077jTyhYsAEf/bgKwyR2+9vv2vcbmppOZ033tl2jZZwDDXqDabwBWqpTY+RQmX3xBACYZAhC2Ag/A/pNmOAFYLbAx3bTt85UTgME9nSR6BnDF2sSsRZaIABRnzuOn29/tmSzXAEpE9Lz3C7YoeTQAd2zwd+Zr5si+qiL6d+PbfO33/buNzDWH06f42i/RogGYFfYj6vx+BFyxYmLnU5gQgEmHAIStwAOw38RoAJ4R2Jhu2jgBGOTTSaIBuHxNYp6fmpgAPEQlIjp2mv3dnoUhAMf/xwTg9nX+nswxY8QvJgDTbvW130/vmADcMXm8r/0S7fs7zzALYi8NeXkavwFYoUJi51OYEIBJhwCErcAD8M/x01Qiooe0Oj2wMd20/vzLwBenjgbg0tX2S6rkJZEBOGaav5se8jxWEgXgue8X7Kk04/9TRlVEt63192SO6X//ZAKw0S2+9vvlzafNeJPG+Nov0aLXAO5dHPLdyX4/Aj7iiMTOJy979oR/s0xBEIBJhwCErcAD8I/xU5wAPC2wMd20+uzLwJemiQbgklWpF4Cjptov91EYAnCcE4Bb1/h7Mse0YT+oiujwp+v62q/v60+piujmcSN87Zdo0Y+Ady+YG+5E/AZg+fKJnU9e0tJSM6QIwKRDAMJW4AHYd+ykpAvAlp9+EfjSNNEAXLTCfk29vCQkADuXVImI/jN5jf2xkigAz+lZsDO/4081Abhltb+PPqcN/c4E4FP+HkX2x6tPqoroxjHDfO2XaD/eYQJw1/zZ4U4kGoBZWe7biqgefnji55RbrVqpGVIEYNIhAGEr8AD8Zcx4JwD/E9iYblpkB2BwdyZHA3Dhcvs19fKSmAAsoRIR/XuS/XIf0uqolA/ACaeUNmfkVvp7MsfUwd+oiuiwJ2v72u+vlxuqiuj6kYN87efbjh2+nurx4+0mAHfOnZnASXkQDcDMTPdtRVQPOyzxc8rtlltSM6QIwKRDAMJW4AH44+ixKhHRkq1ODWxMN+mf9An8zuRoAM5flph/94kMwGET7Jf7SKYAPLtnwZ5LnR2AK/xd+zZ10NcmABvW8rVf/xefUBXRNSP6+drPr8wbb/T1w/6n282TQLbPmprAWXkQDcB9Hp6vLaJatmzi55TbnXemZkhFA9DL2VUEggCErcAD8PuRo50APCWwMd00/9gJwABvTIkG4NwlmxNy/MQEYHGViOjQ8f7ues3zWEn0EXDQATilv/lhOuyJmr72G9DtMVURXTn0d1/7+bXu8JK+IuXn20wAbp0xKYGz8iAagHs8PF5RRLVMmcTPKbf77kvtAPRydhWBIABhK/AA/Oaff5wAPDmwMd00cwLwkNbBfSwdDcA5S+wXVc5LIgNw0Dh/d73meawkCsCz3ivYzT8TTjYBuGnZfF/7Ten3uQnAx2/0td+A5x5VFdHlg3/1tZ9fyw4TX5Hy660mALdMn5DAWXkQDcDdHp6uI6J66KGJn1Nu9eqldgDu3Rv2TOAgAGEr8AD8csTfJgBbnxTYmG6afvS5E4DBfSwdDcDZi1MoALsUU4mIDhzr767XPI+VRB8BFzQAJ558qLkpY6m/u18n//mJCcDHbvC134BIfVURXTrgR1/7+bX4cJ8BeMt/TAhPCXl5mmgA7vSwuLqIaqlSiZ9Tbo8+mtoB6CWuEQgCELYCD8A+w4epRERLtD4xsDHdNPkwGoDBnZWMLqkyc5H9UzXyPH5CArCoSkR0wJil9sdqWTlpAvDM9wp29/cEJwA3LPZ39+uk3z9UFdGhDa7ztd+ALv+nKqKL+33naz+/FvkMwL5OAG6cNCqBs/IgGoDbPSytJKJ6yCGJn1NuDRumdgB6iWsEggCErcAD8NOhg50APCGwMd00/uAzlS5FtWSb4KI0GoDTF9g/VSPP4yciALsWUYmI9htt/8QHaXmMSkQ0K+SLym0CcOJJJgDXL57la79JfXubAHzkGl/79e/0oKqILvzzK1/7+bWgvL8A/O1mE4Drx/+dwFl5EA3AbR6WVhJRLVky8XPK7ZlnUjsAvcS1jZEjVccn15NukhUBCFuBB+BHgwc6AXh8YGO6afzBZyqdi2vJNicENmY0AKfNt3+qRp7Hj3MAZmVlZR/zr1H+lj3Ji7SoohIR3Z+5Pw6zs5hHHAJw3cIZvvab9PP7JgAfvtrXfgPa368qovN/7+NrP7/mH+EvAH+vawJw7bihCZyVB9EA9PL/MxHV4sUTP6fcmjZNzbtpowG4NTHLVmUTf7/3DmYEIGwFHoC9BvZPugBs1PtTlU4ltWTb4wIbU5xrAKfMs3+qRp7Hj3MAZmZlZh/zj3/sH/kl6VVVIqJ794d7UblERGv0qFGgfSedWMqEz4Jp/vb7sYeqiA75vyt97Tegzb2qIjr310987efX3CP9/RD+o86pZnmaMYMTOCsPogG4ycN1tSKqxYolfk65tWyZmjdTRAPQy79bGwSgZwQgbAUegO/1/8sEYJvgYstNo16fqnQspSXaVglszGgATp6bmOeCxjsA92Xuyz7mbyMWWB9Pmh+vEhHdtW9XHGZnMY+IaPUeBVsAfGIBA3Did++oiujghy73tV//Vnepiuisnz/0tZ9fcyr4+yH8Z20TgKtG9k/grDyIBqCXRaxFVIsWTfyccmvbNpiPUuMtGoA+FggvEALQMwIQtgIPwHf++kMlIlq8TdXAxnTz9PufqHQorSXaHhvYmNGPgCfNSY0A3Lt/b/Yx+47wt+xJXqT5CSoR0e17wv1BKBHRau8WbAHwSSc4ATjf3wLIE795S1VEBz14ma/9BrQ0iwjP/OF9X/v5NbtiEZ8BeIpZn3BERgJn5UE0ANd7uKwirNBo1y6Yj1LjLRqA6xLziUU2AtAzAhC2Ag/AN//4zQnA4M62uXn6/U9U2h+mxdtVDmzMaABOmG3/XN08jx/nANy9b3f2MX8ZPs/6eNLsRJWI6Nbd4f4gtAvAQ8xHn/Mm+9pvwlevq4rowPsv8bVf//TbVUV0+rfv+trPr5mVfAbgTSeriuiK4X8kcFYedOhg5r3Wwx+qwg7ARH+UGm9ffmnmvSYx/7/KRgB6RgDCVuAB+OpvvzgBGNzZNjdP9fxEpd3hWrzdUYGNGQ3AcbPsn6ub5/HjHIA79+7MPubPw/yte5eXaABu2hXuD0KJiJ7x7hkF2jcagKvnTPS134Q+r5oAvO8iX/sNaGqeIzv167d97efXjKOK+gvAmiepiujyob8lcFYeRM8Arvbw31RYoeHnLGUyiZ4BXGn/FKCYCEDPCEDYCjwAX/r1JxOAbY8JbEw3T773sUrbI7R4+0qBjRkNwLEz7Z+rm+fx4xyA2/dszz7mD0P9rXuXl+hHwOt3JPiaIrd5WATg5ONNAK6a4+8JGBM+f1lVRAfce4Gv/fo3rqsqopO/eN3Xfn5Nq+wzAG88QVVElw7+JXGT8iIaV14iJazQ8HOWMplEA3C5/VOAYiIAPSMAYSvwAHzh5x9UIqLF2gb3caubhu99rNLmSC3WvkJgY0YDcPT0xPyJOt4BuG3Ptuxjfj/E37p3eYneBLJ6a7g/CCUienr3gj0DOhqAK2eN87XfhI9fNAF493m+9hvQqLaqiE78/BVf+/nlNwD/uv54VRFdkuAnlLiKBuCKFe7bhh2AqxLzB7+E6dPHzHup/SLwMRGAnhGAsBV4AD7747cqXYpqsbZHBzamm4bvfaTSuqIWbX9EYGNGA3DUtNQIwC27t2Qf89vBM62PJ+nHqUREl29KzEfgnudhFYAlTQDOHOtrvwkfdTMBeMc5vvYb8PRNqiI6/pMXfe3n15RjivkLwOuOUxXRxf2/T+CsPIgG4DIPjypMRGjM8vAHo44dgzmTFm+fm+dX62L7NUBjkpCW50lBBCBsBR6AXb//WqVziaQKwCd6fKTS6mgt2qF8YGNGA3DkNA9nKwpy/DgH4KZdm7KP+fVAfwsf5yUagIvWJ+b79zyPiOhp3U8r0L6Tj3MCcIa/Z+CO7/2suQbwVn8LUA9oeIOqiI77uJuv/fyaXMVnAF5bVVVEF2Z8k8BZeRC9wWKJhyfVxDsAFy3ydndvNADdzqStW5dcS8V8+qmZ9wL7JaBiElEtUSKxYxQSBCBsBR6Anb79UqVjKS3WNrgbLtw8/u6HKi2P0aIdygU2ZjQAR0xNzJmAeAfghp0bzDG7FNOvBvpb9y4v0SeBzF3j4WxNAtkE4JSqJgCXTRvpa7/x73c1y8DU9Xf38cDHr1cV0TG9I77282tS1eL+AvCaKqoiuuCPLxM4Kw/atDHzXrTIfdt4B+C0aeZ4mzfH3i4aqW5zFFG9zt+zohPqo4/MnObZrwAQk4T0jOYURADCVuAB2O7rz1U6lNGibYO74cLNY+9+qNKiihbpcFhgY0YDcPiUxARQvANw/Y715pidSuoXA/yte5cXaVlZJSI6c0WCP1Jym4dFAE6tWsJ89DnJ3yPQxr/X2QRgbX8fPQ9scK2qiI7q1dnXfn5NPK6ErzjKuPpYVUn8I+pctW5t5r3Qw5Nq4h2AU6aY423cGHu7aKTOd1lLU0S1YsX4zc/WBx+YOc2Zk9hxRFRLl07sGIUEAQhbgQdg6y8/VWl3uBZtmzz/c2vQ/QOV9OO0SMcygY0ZDcBhk+J/UXXO5/bGy5pta80xO5bSPv2nWB9PWlcyj8JbmuCPlNzmERH9zzv/KdC+U6uYUFow1t8TMMa9a24EGFLT37gDH7laVURHvtfB135+TTjeZwBedYyqJP4Rda6ij1lziyvV+AfgxIne7u5t1cpsN9dlKSUR1SOCuybZVa9eZk5ernO0IaJatmxixygkCEDYCjwAW/Qxd9wWbRfcHbduHn3nA5XmJ2iRTocGNqZ0KqkSER0y0cP1Sj7lfGxbvKzYvNocs0MZ/ayfv4WP8yJtjlSJiE5cnOCPlNzmYRGA0441H5XOHfm7r/3Gv20+Bhx6/cm+9hv48JWqIjri3ba+9vNr3Ikl/QXglZVVRXTOzx8lcFYepKd7P0sV7wAcN87bEjQtWngLKRHVcsFdkuKqZ08zpxn21//GlGzfd26nnqo6fnzYs1BVAhD2Ag/AZp99oNK6khZpd2RgY7p59J0PtEjzk1Q6lQpszGgADp4Q/wDM+dSOzKzMuBxz8YaV5pjtDtdPMiZZH0/aHa4SER2zwH5NQat5RERPfefUAu07/RgTgLOG+lv+ZMwb5izQsGtO9LXfoHqXq4ro8Ldb+drPr7EnHeIvAK8wATj7pw8SOCsPmjY1857p4S71eAfgqFHebu5o3txsN326+/zKBPeJhKsePcycpsa4/GPyZG834MQiolo+uJvx/sf27bGv4xRRfe654OYTAwEIW4EHYONPeqm0PEaLtEuejzfqv91bizQ7RaVzycDGlM4lVCKigybE/xq4bbv/XbR57/69cTnmgrUrzDHbHqkf/elv4eO8SIcy5i7oufZLyljNIyJ6ytunFGjfGZXN3bLTB3zla79RrzQzIXfl8b72G/TgpSYc30r3tZ9fY092AjAry9P2/S47yoTw94l9RrGrZ54x857i4RKFeAfg0KHerj+MRqrbHEVUSwX3B1JX3bubOU2OcfZfRPVoy9UdRFSPDPHkwHHHmbN8+RFRfTGxyzB5RQDCVuAB+MzH76mkV9Ui7UL8U14u9d/qrUWb/Uelc/HAxpTOxVUiogPHL4r7sTfu2JwdgDv37orLMeesWmaO2aaifvin/Ucg0rGUuQZylv0dxQUVvVbypLdOKtD+0QCc8uenvvYb8d9GqiL69+VVfe036P6LzbWDrzfxtZ9fY04ppSqiWXv2eNq+36WVVEV05nfvJXRerho2ND+gJ3j4A0q8A7BfP293yTZubLab5HIWXZJsOZS33jJzmhjjsYfx+HcqolopxBsE3c68iqi+ktiF2L0iAGEr8AB88sN3zWPA2h0e2Jhu6r3VU4s1rabSJbgFSKVLUZWIaP+xHu5Y9GnN1g3ZAbhlZ3zWEpuxfIlKRLRI66P0gz/8PfkiL9EzoINn2N9QUlD7M/erRESPf9PfmbiomUebAJz0ay9f+w3v9qS5lu9Sf8/DHnzvRaoiOvjVNF/7+TX61ENVRXTfdpc17Rz9LqmoKqIzvn03ofNy1aCB+QE9xsO6jF5jZc4ccwesm759vV3b18jEv+t1ZCKqRYu6jxuUN95wn3e8AtD2LKLt+BXyuT49K8u8/8Ybwc4pHwQgbAUegE/0fkeLND85qQLw/jfe0uJp56t0LRLIeNHwkIhoxpj43wW7fNOa7OOv3eKyLplHU5YsUulSVIu0Plp7/e7vyRd5ka5FVCKi/abGOKOQYHv371WJiFZ5vUqB9p99lHlk2oQfuvvab0jEhMrIi/w9DnHw3ReoiujAl572tZ9fo/5TWlVEd2309pi+aABO/+rt+E8mK0t1+HBv2/7f/5kf0P/8476t11i56y5v233/vdlumssZ7aef9hap8T5Daeu119znHa8APCbE58THCsA9e8z777wT7JymT8/z3ysBCFuBB2CDXm+aj1vbJc+dXne9/rKWfPqKuN41G8uOvTuyA+33UfFfV2vhuhXZx1+2fkNcjjlx4UKVLsW0aOtjtGff0VbHysz8d5ma3yfan00sqF37dqlERI9+tWBnHGZXMgE49qvXfO03qLMJlVHn+1sMfcid56mK6ID/NvS1n18jTy+jKqJbV3m7oL//RRVURXTql2/GfzL9+3uPigceMNsO9bAuo9dYiS4ts29f7O2+/NLbR7tPmrO/OmpUfOYXL25P+HjlFfd5xysAqxTsD2RxITHWX9y82bz/Xj6XOuzbp7ppU/zn9NVXBCASIvAArN/zdS3W7AyV9sEtuuzm1tee01INb1SJiGZ5vPDdRvZj1boU0x9GxP8j0LlrlmYH1sLV3s7iuBk7f75K5xJatPWx2uNXlx9eLvbs+3eZml/H+3uMWjxFQ7ziKwVbk3JORROAoz/zd1H4gPYmVEaf6+9apyG3n6sqov26NfC1n1//nGECcOMSb3846X/hkSYAP/cXwp788IP3G1LuvttsO3Cg+7ZeY6VrV7Od2/8jP/7YbDfO5Q80TzxhthsxIj7zi4f9+93vTH7pJfd5xysAjzvO7hi24+d3DeLq1eb9Xvlc8tGkSWJ+zaKLcO/ff8A/JgBhK/AArNfjVS3e9EyV9mW93mSYcLVf7ailH79VJSK6P3O/+w6WVm111tRre4R+NdT+49TcZqxYmB1Ys5evissxR86eq9LpEC3Wuoq++4u/R5/ltmO3s0xN5xL64xi7Y9mIhnhBA3BuxSLmTN6Hz/raL6PtPebM4dn+1sIccuvZqiKa8Wx9X/v5NaJ6WVURXTvP2x9O+l9whKqITv705fhPJnr2Y/du921vv91sm5Hhvq3XWIlEzHbr1sXeLrpOntuZvcceM9sNGxaf+cXDtm3uc3/+ebPNkCH5bxOvADwxxvJIq1d7+/W1GT+/AIw+77l377zfv+mmxPyavf22Oe6uA2/oIwBhK/AAfODdl7Rkk/NUOh6a+w80obnh5ZZatsF9cV02JZZFG80NFZJ+nH46+O+4H3/ysrnZ6wxOWxyfZw0PnzlbpeOhWqx1VX3nZw/XWMWwecf27EWlvx3lciYkgVZuXWn1EfC8CiYAR/T092SOP1uaUBlfw99SSENvPlNVRP/qWs/7TuvXmzt693r/fT2i+mGqIrpyhrezswPOL29uhvnkv97n5dWnn3o7A6eqevPNZtvfPSzM7TVWnn3WbLfc5b+j6F2ybmf2HnnEPaT8zM/Nxo2qNWrEPoO6bp0Za2SMP4x16uQe17Zzzsw0+58cY4H0K69MbBjHCsBZs2J/BOwWgCKqv/3mf04vvpjnfwMEIGwFHoD3vfOiln7afNy6ZbuHP9UH4JqXGuvhj9RXiYju2e9t6Qsbs9bMM4HW5D/as9+AuB9//OJZ2evsTZgfn4Wmh0ybpdKhtBZvdby+87NdtK3ftiX7DOiXI1zOhCTQgo0LVCKiR73q71q8qPlHmgD8u3trX/v9nm5CZcIZ/pZCGla3hgnADvd53idr5kxVER027HPP+4ysZs4ALp3o4Vo6VR143uGqIjrxw26ex/As+vGX2xk41X9/AP/8s/u2XmOlSxeznds1ci+/7O36w4cf9vYxdbwCcPJk94BdutQ9XqOPsPv11/y3sZ3z7t1m/1jr8B1+eHgBOGmSef/tfG528hKAXbv6n1M+Z6EJQNgKPADvebubHv74AyoR0flrVgQ2biyXvtBQKz76lEpEdNe++KybF8ukFdNV2h+m8sxZ+lpff48R82LUgmnmSRtdiumo2fG5y3jAlBkq7ctq8VYn6Js/ebwrMx/LN2w0AdjqaP18+JC4zK8gpq+ZrhIRLf9SwdakXHCE+YE37I3mvvbr26S2OWN2mr8boYbWOl1VRPun3+55n4XDflUV0X8+9R5no04z1wAuHO3to7aB55ofyhM+SMATEqJPoHA7A6eqev31Ztvvv3ff1mustDOP7XNd3uW557yFXb16Zrt+/eIzPzfRaIkVpnPmuM89en3bd9/lv43tnKMfRZ9+ev7blC0bXgCOHGnef/31vN+PBmB+H22JmJjzq3Nns++KA39eEoCwFXgA3vLqs1qp4aMq7Q/TkQtiPFYoQOc+W1+rPt5cJSK6Y++OhI83avEElTYVtOjTF+qz3/l7jJgXQ2ZNMs/a7XSIDpvm8tB5jzImTlNpV06LtzpR3/jR7qzdnGXrsj8C/3iohwv2E2TcinEqEdEyLxTskVvRABz6ciNf+/3yzA3mmrlT/d0INfCGk1RFdOAzt7lhtQAAGRZJREFUdTzvM/ZH8wSHUa+38L7PqWYZmHnDY5ztyTmvc8xHxuPf7+p5DM9efdXbGThV1auuMtt+/bX7tl5jJfrs3lhPwFBV7djR2/WHDz5otvvrr/jMz000Wn76Kf9tpkxx/3gyusj25zHOJNvOeeNGs3+1avlvU6aM3RgrV8a+2SVWAA4ebN5/6aW8348G4I48foZE1xB8Np/rhSdPVv07n8uB2rQx+y5adMA/JgBhK9AAzMzM0jPbP6lntGyk0vxEfWfgd4HcdeumWuf79dSn2qtERLftjs/CybEMmTdKpcWxWuKpK7VNny/jfvzfJo5TaXWUSofSOnCyy5kLj34fN0Wl3eFaotVJ+toP3j4azM+EOavMotLNT9beg1zOhCTQsMXDVCKiJZ4r2BMXFpU3P/AGd/O3LMvPT12jKqJTTy7ra7+Ma6qa4Gxwved9hn9irmEb0fUxz/tMr2oeBTd7UIyzPTkMOcM8OWRcz86ex/As+hGsl+f7XnaZ2bZPn9jb7d3rPVaiT+5wW7evdWtv1x/ef7+37eIVgIMGuf87GT3a/exe/fpmm1iLYtvOec0as3+NGvlvU7q03Rg1auS/f/Ru6PwC8I8/zPvPP5/3+9EAzGspmJ07zXv5PUc41r+76NnX2Qc+N50AhK24B2BmZpZOWbBSe/7+jzbs3kev7vycntj8US3b5Cot0upYlbZHaPfvJ+ppT3U268p1LaGlu1bSys9X17Neu15v6vWQPv5dC31h6Cv62eTPtN/8fjpl9RTdsHNDwmLxlA536FmNn1OJiG7a4e3pBzZ+njRUpdmJWuaZG7TxRx/H/fjfjBitRVoeq9L+MP1zvMtD5z36dcxklbZHaImWJ+ur3w+xOtbfU5arRESLNjlDew5wOROSQBnzMrTMC2UKvPzP4sNF9xUVHRR51Nd+Pz5xhe4vIjrjhNK+9vvjCvPM3b8fvMLzPgPeaa4qosPT7/a8z8KKxVVFdEaGS0g5xhxvnogytoe/m2E88XoGTlX1IvOkFP3Y5b+pDRu8x0p03b78zs5ERZ/xG+saOVXVO+/0tl28AvD3381x3o/xnOYhQ8w2n32W/zbRcH03xtNebOe8YoXZ/6yz8t/m0EPtxqhUKf/9d+2KHYA//hj7Or5oAK5e/b/vRW+0yS8eY/27iy4dNPXAT8wIQMTyrIisEJFtIjJURGrksU2BAnDF+q36y6gp+uy3v+gDb72hF3Zuose0vFlLtaiu0vFQ88O99TFarvkVemrrh/X657to4w8+008GjdCVG0xg7dql2ufbbdqk63y9o9E4vfDBP/SE2z/Ww+q8qFKnqco992mxJ67Rki1O1+KdyqlERItHSulR3U7VM1+7Vm96v542/LatvjS4u/4442cds3yMLty4ULfs3qJZWVmaleX5WfZatV1tvb5tD5WOpXT4LA9nGix9Mqy/SpPTtXxaXX2sZ8+4H/+jASO0aMvjVNqW119Hx2edwR/+Ga/SpoKWaHmqvvSd3ce2/Uabu6CLNT5L38mI/zWQXv0862c99vVjC3zzz5rSolsPLaqDOvq4K1dVf2hwqe4qUURnHneor/36XmKWWxl518We9/nzBfPUkWFP1PS0fVZWlq4uY34YTe37oaftp1cy22d+Ev8/zGQHmJfHu51r1knMd5mOqMWL//2B6/Y/iUcf9XZt31NPme1+dLmk45przHaxblSJflwYjwCMPqHktRhrNP75p9mmR4/8t4kusZPf9W+q3v+d5if66xLrDGCpUokLwK1bzXtH5XNT2BdfmPc75PMHnRtvNO8vyePGu+j3VpAzgNHrRnM9ho8ARH5ai8gSEakuIoeIyIsislxESufarpyI6PCpk7TfpGn65dCx+vavg7Xt59/qIz3e1Tovd9HzOj+jx7e6W8unX60l089QaXukuX6rXTkt2fQcrZB2h57ZsoXe1q27dvjkd/3p7xm6btPOvH8je7R/v/lD1KRJ5qz7+++rtuq4VW9/fJaed/dAPf7WT7XcLd206G3PqDx4q8pT52mRNkerdClmPlrsUkKLtamsJZufqSdGrtGzu92tV73SUC96+k59oFcnffLz/2qLb9/WNt++r4990k2Ldiyr7XuM1EMaXaGXvfikDp03VtftWKe79+1OyFnHN//4TYs1Pksrpd2lD74d/6cnvP3rYC1699FapG0F/bTfhLgc87kfvtcSjc/Tw5teq0/0+MjqWD8PNU8VKd74HH3ll77Wc8so4LpgX039Squ9W00lIrp9j7+P/teuXmg+Jj3xMB3Q9l5f+/5Y73zdVqqozq5Sytd+Q6sdqt8fUlTH1jnH8z6/tjePMhv2wOWett+6e6vuKG5+GE36MUYQ5Nh+2WGimVWONU+LiKOMjIx/r5nz8ji4M89ULVYs/2U6oqZN+/cHrttaVA89ZLb744/Y20VD8SOX/zbOOsts98MPB/zjA34Pb9oUvwD87LPY156p/hs2se5QrW1uXNIXYyx6Hp2zy1NT8v3vdd48s3+sZwEfcoi3X7f8xArA6Jnh/Mb/8EPzfqtWeb8fvQZ17r/XXWd/r9Gbcdq3z3vfWL/e0ccR5lqmhwBEfhaKSOMcXxcTkbUiUi/XduVERKVNcZV25bRI66O1eMuT9NAml+iRabfqcWmP6bkt22mtyOv6+Nt9tNvX/fTb4RN13vINmpkZ/rV7WVnmxrFFi8wC/H/+maXvf7pJO742Xx9qPVprNvpDr2j0mZ715Bt60uMdtXT187R8/Se09MMP6SGP3K6HPFZby9R/UK9r9oXu2qXa/fuJWvLxmiqtK2YvpCxdi2jRTqW1eIcKeki7qlq67Wl6WJuztHzb87VC20u0Utsr9Oi21+qxbW/U49rV0RPa3aont79Lq7V/RM/s8ISe0/EpPa/zM3phl8Z6SaSpXvpsE63Q9hIt+3RtPS39aT20VTW97bXn9JF339XHevTWJ3t8pk++20cbdjevx9/uo4+//bk+9vbn2uAt83r0zc/00Tc/03qvfKb3dvtMb+n8sd7Qtqde3uItPb/Jy1qu0U1a8uyTtGz6xXpMo//Tm599R+98vrfe3e1DvefFD/Xe/36g9730gd73cm+9/5Xe+sCrvfW+l3vp3S/20ju6va+3Pvu+3tzlfa3dqafWbN9Tr2vbXculX6ZVGjXQc9q00NLNL9I7u/XSx17/Vpv2+FWb9+yr6e/31Ra9+mrLXn211Qd9tfUHfbXNh+avrZxXy959tdl7v+oFrTppsXaVtGLTm/WCbg/rDzN+0L/m/aX95/fX/vP7a7/5/bJfGfMysl9/zftLf5/zu/ad3Vd/mfWL/jTzJ/1+xvd6c/2b9etpX+uXU7/UPlP66KeTPtWPJ36sH074UHuP7609x/XUHmN7aPcx3fXt0W/rm6Pe1FdGvKK3fnWr1vy8phaJFNEmfzbRbsO66Zs/tdUR9a42r4eu0hEPXKHD77tMh917sQ695yIdfPcFOvTWs3VMjfK6oWwx/efms3Xu0SV0yM01dMg9F+rQ+y7WIfddokPuv0QHP3CpDn7wMh300OU66KHLddhdF+iwWmfokiOK6cia1XR7CdFBdc7QgfddpAPqX6n9c7z61b9C+9W/QjMevlz7P3SpDr3lLN1TVLTe0YfpsiOL61/1LtG/Glyt/RperxnP1NSMtFraL62O9m9cVwc0rqsDG9+sg5rcosPPMWcNp51ymA7s+JAOev5xHfrCkzrsxad12EvP6PCXGunfrzTWv19tqiNea66/djXBtf2QItq/yc06pX8fnTHsB50z5k+dP3mILpkxSlfOGKMrJo/QhWP66ZA/eujeoqJZ119nljjZvr3gZ4BySU9PV73lljyD6X/s2aN6/PHmJgG3EB0xQrW4+Zhbd7r8YTU6vtuZvehj6NyW+TjmGNVy5f7nbFt6evq/X8ye7TmmXL3/vjlOmzb5bxN9ysfTMZ4xfe21Jq7z+/6ia/iJmN8DMRzwveY0Y4bZv0gRc51mXkqUMNts2xZzjHxVNM+tzvP4q1aZ947IZ33O7uaGKn3ggbzfv/hi836O50Fnf699+5r3GuTzFJ+iRfM/e1q3bp5noQlA5KWciGSJyCW5/nk/EXktj211+fItSfNUjkTK9388OWRlmWuRR4zZrn0HrdHPfl2s3b+epf/9dIJ27DVCm3cfoE+9/ps++tLPWu/F7/W+57/Su579XG/r+pHW6fy+1uzYXa9r/6Ze1i6iF7ftpBe07qDntWqnZ7dso2e2aKXVm7fUS1u+ov3+WaWzF2/W6zu8qZUbPaQV0m7TI5rU0vLNrtXyza8xr/Rr9IhcryPTrzWvFtdqxZbX6tFtrtVj212vJ3Sso6d1vkPPevYBvahbA735vnr6zfBxWqPDo1q19e16TOtaWrn1TVq51U16dKub9OiWtfSolrX0qBa19KgWtfXoFrW1cqvaemzrOlqlTR2t2raOHt+urp7Qoa6e1PFmvbRLKx07a7kuWrNOL4uka+XWtbR8q0u1bMtzs19loq8W52rpXK8yzqtsy3P1qJY36vPf/aJd3pusRza6TS/qfZFW71Fdz3j3jOxXtXerZb+q96ie/TrrvbP03PfP1fN7na8X9r5QL/7gYq1cs7Je/tHletXHV+k1n1yj1316nd7w2Q1a8/OaWqtPLa37ZV295atb9Lavb9M7vrlD7/r2Lr33u3v1yb5P6sy1M/W76d9pw74Ntf7P9bXZh/fooFqn6aBap+nA2qfpoDpn6OC61XXwLWfqkFvP1mG3naND7r5Ah6TdrItHZeiuTev0n7b1dNh9l+rQW8/WobecpcNuPlOH1a2hw+vU0OG1q+vftarp37Wq6eDbz9Eh9a7Q4R0f1n27dujkns/q3/ddqiPqnqX/3HC6jrzxdB154xk68sYzdFSO18ibquuQey7UUe0f1iZPNdRRDWrq6JrVdfR1p+noq0/W/2/vzmO0qu4wjn9RHJcZEYddnEFgEFHKgDgMSwqiEnFPbYwxbTRN/6gpLa3GakyrmLTGNMSl1UQdQBBlYEQHwa2ggKIT2QTtQLRiq3WMoshyFGtdyq9/PHP7vo7QpMkwZW6eT/LLvO89973vOXc7Z849977rJpwU68cNiHXjBsS6cZWxdlxlrB1bES+PrYh14ypj68zrY31tRWwe3jOaTz4+moccF81Vx0VzVbdoHtwtmgcfG1sGlcWWgWWx5aTS2Hjm0Fj766uipccRsevoLvFpCfHF4RQqeIivuhCfdyX2HkFsGVquBlJ2hyaosVBSojFbZWV6flt5uSrg3r3VE9Ozp6JHD6WVl6vy7d49onv3uKakRMsaOFCD//v2Ve9Mnz5aRrac8vLC2K0bb9Tr7Pt69dLnevXScrM8nnOOegxLS7Wcfv30E2QVFfot2hNO0OcgorZWyxs0KGLwYP0dNEj5GjgwYsAAzXfGGSprVVXEySfrcSbDhkUMGaJft+jfX/Nl4wWrqnS5c+TIuKZnT+Xn1FO1Dk48UY3UYcPUsKit1U0u48dHTJig3qaJE9UwmzRJ7ydM0Dy1tRoPOXq0ygVqdI4frwcpjx2rtBEjCt93zDH6O2aMyjF6dMSoUbqsXlWlZZx9tvJ0yinK94gREdXVel9RofXbq5fWXXW1YuRIxahRitNPj2t699a04cML62fgQH1/No6zXz+ljRihOO00rVNQHoYOVT5ragoxZkwhamsLMXasora2sH+OHq11Nn680mpqlIe+fbXP1tQU1vWECVpv2b5bVlZY/5MmFbZB1nitrtb+NWVKXFNZGTFlij6XNS7PP18xdWrEuecqPcvXuedGXHSRHmo+darGFZaUKNrcHe0GoO3PiagBOLTN9EVAXZtp3YBoaWmJlFLuY9q0af/3PLishXjttRRdu6Z4//38lzUX23XPnkg7d8bu3bti957d307ftSvS229Ham6O9OqrkTZtirRhQ6S1ayM1NUV68cVIzz8fadWqSKtX6/ULLyjWrFH6iy9GeumlSE1NMe3yyyNt3hxp+3Z9fuVKxapVhWWsXq3Pv/66vj+lSG+9pfnXrFH6ypX6rqamSOvXa5k7d0b66CPlbdWqSM89F2n58kgrVkR69tnC92zaFOnjj/X+iSciPflkIZ56qhAbNkTasUPft2xZpKVLIy1ZEumxxyI9/rjmWbEi0rZtyufzz2ueRx+NtHBhTLvggkiLF+t9Y2OkrVuVz4aGSA8+GGnevEgPPBBpzpxIs2ZFqquLdP/9ke69V3/r6iLNnq155s2LNH9+pIcfjrRwYaR33420aFHhs/PmKa2hQd+3dGmkN97Q6+LPLlgQqb5e+d+0KdLu3cr3o48qHnlEy21sjPTMM1rGm2+q3A0NSlu0SHlYuFDLqq+Paeedp+mLF+uzy5Zp/SxfHum997ScZcu07hoaCvlsbIy0caPWzeLFkR56SDF/fiEefLAQ8+Yp5s4tRGOjttHcuVpnc+YUyrxggZa9YYOmzZmjmD1b662+PtI77ygvdXWFbXDffYqnn9bnZ82KdPfdke65J6ZNnhzpnnsUTU36zO23R7rjjkh33RXpj39UWn29yjtzpuL22wvp8+druUuWfON4a2lpcQPQvuV/6QHsj3Ygh8PhcDgcnS/6Y1Zkf2MAP+TbYwC7oJ2nm8PhcDgcjk4V/VE9bvYf1wHvoEe/HA3cCrTw7buAzczMzCxHbgE+APZy4OcAmpmZmZmZmZmZmXUetwF/BhL6FZR6dFd0sQrgCeAT9GzEu4GuHZjH9nIz8BawB5XjGaC6zTwjgBdQL/B7wIyOzOBBtATd6HRW0bQzgVeAz4C/Ald3fLbaxQzga7R/ftr6d0FReh636ThgJSrrbuClorS8lHcLKl8Wn6F9+JLW9LyUM9MbnX+3A7uAJmBiUfqZ5ON4BegO3I+22yfohsvip3Dkpc4xO6TdCoxCB1c3VHFuLkrvghqIc4FSdGC+BtzZsdlsF0OA41pfdwWuRSfbbEBwGfA+8DugBBiOxoH+omOz2e6uRCfYf1FoAA5AFefVaF1MRA3jS/a3gEPcDGDNAdLyuE3HoUbfD9GvFh0G1LSm5bG8mZ+jxkAJ+SznY6hBW47OSdeiBlB38nW8AiwFngaOR9vvTuBdNP4+T3WOWadSjRoKWUNpEvAFOlAzF6OeliM6Nmvt6kjgl6isPVqnXYUahIcVzTcd2NaxWWtXJ6Kbm7JnXWYNwJtRb0KxO4BnOyxn7ee/NQDzuE3XADMPkJbH8ma2op/ohHyW81XUyM2UomO2hnwdr0ejHvuaomlHAl8BV6DGbR7rHLND3vXokTiZ6cDrbebph05MwzsqU+3ofNR7sg+dhIor0jvQZeFi41AjsaxDctf+lgM/bn1d3ABsBO5tM+8VwMcdlK/2NANVDh8Cb6Ne7JNa0/K2TbPK8/fAOrS9NgCXtqbnrbyZs1ADobL1fR7LeQWwCuiLGjo3AH9BjaM8Ha+laDsVP3c3269nkr86x6xTOAdVpFOKpv0GeLnNfEehg3F8B+XrYOiOLhd9v2jabGBhm/lOQSerEzooX+3pp6gBmNkHTG59/Rwa/1lsKvBlB+SrvZ2KLhOBKoqHUU/QMeRvm/ZH2/ED4HTUA/Y91GMylvyVN7MYjQnL5LGcleiy6D50HG5HjVrI1/EKOi8tR+MeS9EYv6/RuMC81jlmh6wLUc/YxW2m5/m/sS5oHM13Wt/nqVdhEBojVVE0La89gG2VAJ+jf2jytE1B43T3UbgUmvkTaiDkrbyg882XqMGTyVs5u6AbO+ag4TeHoXPxHjQsJ2/Ha080xq8F3Xx4C7rEfyv5rnPMDjk/QI2/c/aTNhH4J/sfj1Fy8LN2UHVFd9Rll8+uJD/jiq5C2+0jYEdr7EPb+T7gJvIzpqitEuAfqCc7T9s0s40DNwDzWN5bUOOoWN7KWY6Oz7ZPJXgF+BX5GgO4P73QMTuZfNc5ZoeUn6FGwYQDpHdBg5MfQP9ZV6K7hDvjHVnT0SUH0AmnDj1uoU/rtDL03+hv0SWH4cDf6Zx3Fh6FLoUVxz7gMnT5uxLdVfgTNN7ou2g/6Ix3FV5G4UaePsB8NI61lHxt08x01LtbjY7Pi1HleQb5K+/h6FEh17WZnrdygnrA6oBj0Xa9EPVkTyZfxyvAyegcDFAFrACWtb7PU51jdkjbh8YPZc/ayp6jVtwgrACebE3bAfyBznk31hNo7NSnqPJ4HI2jKjYc3WX5Gapkb+rIDB5kxY+BAf2nvQmV9W+ocumMlqIbQPaiS0oL0CXwTB636Q3osRkJ2IgaC5k8lfdS1Lgt309ansoJMBg9r/NDdOm3mcINXJCf4xXgR+hY3Ysa7rfxzd69vNQ5ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm38G4OdQhf0lDLEAAAAAElFTkSuQmCC\">"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "clf()\n",
    "for i,a in zip(id28_imgs,id28_ais):\n",
    "    plot(*a.integrate1d(i,1000))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 131,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "id28_mg = MultiGeometry(id28_ais, radial_range=(0, 100), unit=\"q_nm^-1\")\n",
    "qr, Ir = id28_mg.integrate1d(id28_imgs, 10000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 132,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "npt = 10000\n",
    "sum_I = numpy.zeros(npt, dtype=numpy.float64) #Sum intensities corrected for polarization but not solid angle\n",
    "sum_O = numpy.zeros(npt, dtype=numpy.float64) #Sum solid angle\n",
    "EPS = 1e-100\n",
    "for ai, data in zip(id28_ais, id28_imgs):\n",
    "    resI = ai.integrate1d(data, npt=npt,\n",
    "                         correctSolidAngle=False,\n",
    "                         radial_range=(0,100),\n",
    "                         method=\"splitpixel\", unit=\"q_nm^-1\", safe=True)\n",
    "    resO = ai.integrate1d(ai.solidAngleArray(absolute=True), npt=npt,\n",
    "                         correctSolidAngle=False,\n",
    "                         radial_range=(0,100),\n",
    "                         method=\"splitpixel\", unit=\"q_nm^-1\", safe=True)\n",
    "    sum_I += resI.sum\n",
    "    sum_O += resO.sum\n",
    "\n",
    "norm = numpy.maximum(sum_O, EPS)\n",
    "invalid = sum_O <= EPS\n",
    "I_O = sum_I / norm\n",
    "I_O[invalid] = 0\n",
    "qc = resI.radial\n",
    "Ic = I_O"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 142,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "application/javascript": [
       "/* Put everything inside the global mpl namespace */\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('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",
       "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 = $('<div/>');\n",
       "    this._root_extra_style(this.root)\n",
       "    this.root.attr('style', 'display: inline-block');\n",
       "\n",
       "    $(parent_element).append(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",
       "            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",
       "        this.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 = $(\n",
       "        '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
       "        'ui-helper-clearfix\"/>');\n",
       "    var titletext = $(\n",
       "        '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
       "        'text-align: center; padding: 3px;\"/>');\n",
       "    titlebar.append(titletext)\n",
       "    this.root.append(titlebar);\n",
       "    this.header = titletext[0];\n",
       "}\n",
       "\n",
       "\n",
       "\n",
       "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
       "\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
       "\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_canvas = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var canvas_div = $('<div/>');\n",
       "\n",
       "    canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
       "\n",
       "    function canvas_keyboard_event(event) {\n",
       "        return fig.key_event(event, event['data']);\n",
       "    }\n",
       "\n",
       "    canvas_div.keydown('key_press', canvas_keyboard_event);\n",
       "    canvas_div.keyup('key_release', canvas_keyboard_event);\n",
       "    this.canvas_div = canvas_div\n",
       "    this._canvas_extra_style(canvas_div)\n",
       "    this.root.append(canvas_div);\n",
       "\n",
       "    var canvas = $('<canvas/>');\n",
       "    canvas.addClass('mpl-canvas');\n",
       "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
       "\n",
       "    this.canvas = canvas[0];\n",
       "    this.context = canvas[0].getContext(\"2d\");\n",
       "\n",
       "    var rubberband = $('<canvas/>');\n",
       "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
       "\n",
       "    var pass_mouse_events = true;\n",
       "\n",
       "    canvas_div.resizable({\n",
       "        start: function(event, ui) {\n",
       "            pass_mouse_events = false;\n",
       "        },\n",
       "        resize: function(event, ui) {\n",
       "            fig.request_resize(ui.size.width, ui.size.height);\n",
       "        },\n",
       "        stop: function(event, ui) {\n",
       "            pass_mouse_events = true;\n",
       "            fig.request_resize(ui.size.width, ui.size.height);\n",
       "        },\n",
       "    });\n",
       "\n",
       "    function mouse_event_fn(event) {\n",
       "        if (pass_mouse_events)\n",
       "            return fig.mouse_event(event, event['data']);\n",
       "    }\n",
       "\n",
       "    rubberband.mousedown('button_press', mouse_event_fn);\n",
       "    rubberband.mouseup('button_release', mouse_event_fn);\n",
       "    // Throttle sequential mouse events to 1 every 20ms.\n",
       "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
       "\n",
       "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
       "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
       "\n",
       "    canvas_div.on(\"wheel\", function (event) {\n",
       "        event = event.originalEvent;\n",
       "        event['data'] = 'scroll'\n",
       "        if (event.deltaY < 0) {\n",
       "            event.step = 1;\n",
       "        } else {\n",
       "            event.step = -1;\n",
       "        }\n",
       "        mouse_event_fn(event);\n",
       "    });\n",
       "\n",
       "    canvas_div.append(canvas);\n",
       "    canvas_div.append(rubberband);\n",
       "\n",
       "    this.rubberband = rubberband;\n",
       "    this.rubberband_canvas = rubberband[0];\n",
       "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
       "    this.rubberband_context.strokeStyle = \"#000000\";\n",
       "\n",
       "    this._resize_canvas = function(width, height) {\n",
       "        // Keep the size of the canvas, canvas container, and rubber band\n",
       "        // canvas in synch.\n",
       "        canvas_div.css('width', width)\n",
       "        canvas_div.css('height', height)\n",
       "\n",
       "        canvas.attr('width', width);\n",
       "        canvas.attr('height', height);\n",
       "\n",
       "        rubberband.attr('width', width);\n",
       "        rubberband.attr('height', height);\n",
       "    }\n",
       "\n",
       "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
       "    // upon first draw.\n",
       "    this._resize_canvas(600, 600);\n",
       "\n",
       "    // Disable right mouse context menu.\n",
       "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\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 nav_element = $('<div/>')\n",
       "    nav_element.attr('style', 'width: 100%');\n",
       "    this.root.append(nav_element);\n",
       "\n",
       "    // Define a callback function for later on.\n",
       "    function toolbar_event(event) {\n",
       "        return fig.toolbar_button_onclick(event['data']);\n",
       "    }\n",
       "    function toolbar_mouse_event(event) {\n",
       "        return fig.toolbar_button_onmouseover(event['data']);\n",
       "    }\n",
       "\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",
       "            // put a spacer in here.\n",
       "            continue;\n",
       "        }\n",
       "        var button = $('<button/>');\n",
       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
       "                        'ui-button-icon-only');\n",
       "        button.attr('role', 'button');\n",
       "        button.attr('aria-disabled', 'false');\n",
       "        button.click(method_name, toolbar_event);\n",
       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
       "\n",
       "        var icon_img = $('<span/>');\n",
       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
       "        icon_img.addClass(image);\n",
       "        icon_img.addClass('ui-corner-all');\n",
       "\n",
       "        var tooltip_span = $('<span/>');\n",
       "        tooltip_span.addClass('ui-button-text');\n",
       "        tooltip_span.html(tooltip);\n",
       "\n",
       "        button.append(icon_img);\n",
       "        button.append(tooltip_span);\n",
       "\n",
       "        nav_element.append(button);\n",
       "    }\n",
       "\n",
       "    var fmt_picker_span = $('<span/>');\n",
       "\n",
       "    var fmt_picker = $('<select/>');\n",
       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
       "    fmt_picker_span.append(fmt_picker);\n",
       "    nav_element.append(fmt_picker_span);\n",
       "    this.format_dropdown = fmt_picker[0];\n",
       "\n",
       "    for (var ind in mpl.extensions) {\n",
       "        var fmt = mpl.extensions[ind];\n",
       "        var option = $(\n",
       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
       "        fmt_picker.append(option)\n",
       "    }\n",
       "\n",
       "    // Add hover states to the ui-buttons\n",
       "    $( \".ui-button\" ).hover(\n",
       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
       "    );\n",
       "\n",
       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
       "    nav_element.append(status_bar);\n",
       "    this.message = status_bar[0];\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",
       "\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",
       "\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]);\n",
       "        fig.send_message(\"refresh\", {});\n",
       "    };\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
       "    var x0 = msg['x0'];\n",
       "    var y0 = fig.canvas.height - msg['y0'];\n",
       "    var x1 = msg['x1'];\n",
       "    var y1 = fig.canvas.height - msg['y1'];\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, 0, fig.canvas.width, fig.canvas.height);\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",
       "    {\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.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",
       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
       "                evt.data);\n",
       "            fig.updated_canvas_event();\n",
       "            fig.waiting = false;\n",
       "            return;\n",
       "        }\n",
       "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\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(\"No handler for the '\" + msg_type + \"' message type: \", msg);\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(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\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",
       "    if (e.target)\n",
       "        targ = e.target;\n",
       "    else if (e.srcElement)\n",
       "        targ = e.srcElement;\n",
       "    if (targ.nodeType == 3) // defeat Safari bug\n",
       "        targ = targ.parentNode;\n",
       "\n",
       "    // jQuery normalizes the pageX and pageY\n",
       "    // pageX,Y are the mouse positions relative to the document\n",
       "    // offset() returns the position of the element relative to the document\n",
       "    var x = e.pageX - $(targ).offset().left;\n",
       "    var y = e.pageY - $(targ).offset().top;\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",
       "    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",
       "    {\n",
       "        this.canvas.focus();\n",
       "        this.canvas_div.focus();\n",
       "    }\n",
       "\n",
       "    var x = canvas_pos.x;\n",
       "    var y = canvas_pos.y;\n",
       "\n",
       "    this.send_message(name, {x: x, y: y, button: event.button,\n",
       "                             step: event.step,\n",
       "                             guiEvent: simpleKeys(event)});\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",
       "\n",
       "    // Prevent repeat events\n",
       "    if (name == 'key_press')\n",
       "    {\n",
       "        if (event.which === this._key)\n",
       "            return;\n",
       "        else\n",
       "            this._key = event.which;\n",
       "    }\n",
       "    if (name == 'key_release')\n",
       "        this._key = null;\n",
       "\n",
       "    var value = '';\n",
       "    if (event.ctrlKey && event.which != 17)\n",
       "        value += \"ctrl+\";\n",
       "    if (event.altKey && event.which != 18)\n",
       "        value += \"alt+\";\n",
       "    if (event.shiftKey && event.which != 16)\n",
       "        value += \"shift+\";\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,\n",
       "                             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",
       "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\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"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\";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 overriden (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 = $(\"#\" + id);\n",
       "    var ws_proxy = comm_websocket_adapter(comm)\n",
       "\n",
       "    function ondownload(figure, format) {\n",
       "        window.open(figure.imageObj.src);\n",
       "    }\n",
       "\n",
       "    var fig = new mpl.figure(id, ws_proxy,\n",
       "                           ondownload,\n",
       "                           element.get(0));\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.get(0);\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",
       "\n",
       "    var output_index = fig.cell_info[2]\n",
       "    var cell = fig.cell_info[0];\n",
       "\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
       "    fig.root.unbind('remove')\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).html('<img src=\"' + dataURL + '\">');\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 dataURL = this.canvas.toDataURL();\n",
       "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\">';\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 () { fig.push_to_output() }, 1000);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_toolbar = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var nav_element = $('<div/>')\n",
       "    nav_element.attr('style', 'width: 100%');\n",
       "    this.root.append(nav_element);\n",
       "\n",
       "    // Define a callback function for later on.\n",
       "    function toolbar_event(event) {\n",
       "        return fig.toolbar_button_onclick(event['data']);\n",
       "    }\n",
       "    function toolbar_mouse_event(event) {\n",
       "        return fig.toolbar_button_onmouseover(event['data']);\n",
       "    }\n",
       "\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) { continue; };\n",
       "\n",
       "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
       "        button.click(method_name, toolbar_event);\n",
       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
       "        nav_element.append(button);\n",
       "    }\n",
       "\n",
       "    // Add the status bar.\n",
       "    var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
       "    nav_element.append(status_bar);\n",
       "    this.message = status_bar[0];\n",
       "\n",
       "    // Add the close button to the window.\n",
       "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
       "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
       "    button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
       "    button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
       "    buttongrp.append(button);\n",
       "    var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
       "    titlebar.prepend(buttongrp);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._root_extra_style = function(el){\n",
       "    var fig = this\n",
       "    el.on(\"remove\", function(){\n",
       "\tfig.close_ws(fig, {});\n",
       "    });\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._canvas_extra_style = function(el){\n",
       "    // this is important to make the div 'focusable\n",
       "    el.attr('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",
       "    }\n",
       "    else {\n",
       "        // location in version 2\n",
       "        IPython.keyboard_manager.register_events(el);\n",
       "    }\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",
       "    // 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",
       "\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('matplotlib', mpl.mpl_figure_comm);\n",
       "}\n"
      ],
      "text/plain": [
       "<IPython.core.display.Javascript object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAgAElEQVR4nO3deZxT9b3/8TeLbMIBXBERFbcqirb1/mwvP5ffvdZbby2tt7Veq61a22pFbae1FZEl7Du4a6lL615XXNABlc0VVERccANUVkGWAWVY5/P740ymEZLMmflO8j1n8no+HucBJCfJIfmEvDiTk0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTb2ZJmSaqQtENS0zpefoikuZK2VF/Pzn4h6UVJayStljRN0r/Xd2MBAADg7nsKI/BC1S8Az5f0A0k3KHsA/q76NnaX1EzS7yVtkNS5ntsLAACABnKysgfgCZKmS/pC0mJJg7OsI0kDlT0As1kn6Uf120wAAAA0lGwBeITCvXVnSWoi6QBJb0q6OsvlowbgCZK2SjrIYVsBAADQALIF4HWS7tlpvZ9L+ijL5aME4AEK9yIOquc2AgAAoAFlC8CnJW2StDZjWa/wgJGd1RaAh0paJGlEQ2wsAAAA3GULwDsk3Rbx8vkCsIek5ZL61nvrAAAASsAASR8r3OO2StIzko6t5TIdJN2r8CCLtZLultS+lss0ldRS0mkKA7BN9Z+bSDq++vZ/Kmm36nUPkfRfGZdvLqmVpKGSXqi+bMuM8/9d4UfAXFHLdgAAAJS8w/SveGsu6Y+SVioMs1wmS5oqqaOkPSQ9K2lSLbdzvqQqhfG3I+P3J1Wf/2+SpiiM0LUKP/PvNxmXvzPH5dOmSdqu8GCSjdXLBkl9atkuAACAktZS0h8UhtWeOdbpqjC+js44rUf1aV0KunUAAABoMP+t8Me5VQr3oo3Js24vSZVZTt8s6YyG3zQAAAAUUgeF36DxkzzrnCdpRZbTVyr86JadNZG0v6SAhYWFhYWFJVHL/sr/ljA0Ik0UHpBxTI7zeyn8yJad5doDuL8kY2FhYWFhYUnksr9QEppL+krS/+Q4v6vC9wju/B7AHcr+HsBAki1ZssQqKipYPC+9e/f2vg0sPBZxXHg84rPwWMRjWbJkSToAg4ZLDMTJFZL2qf793pImKjwKd988l3lSUrnCA0X2Unj07mM51g0kWUVFhcG/srIy35uAajwW8cLjER88FvFQUVFBADZyTyp8T99GScsUfpzLtzLOP6D6vJ4Zp3VQ+NVt6xUePHKXcg8IARgj/MMaHzwW8cLjER88FvFAAMIVARgj5eXlvjcB1Xgs4oXHIz54LOKBAIQrAhAAgIQhAOGKAAQAIGEIQLgiAAEAsVJZWen9KNs4LJWVlTnvIwIQrghAAEBsVFZWWqdOnXx/tl4slk6dOuWMQAIQrghAAEBspMOm1D+fNv05f7lenwlAuCIAAQCxkQ6bUn9dqu1+IADhigAEAMQGARgiAFFoBCAAIDYIwBABiEIjAAEAsUEAhghAFBoBCACIDQIwRACi0AhAAEBsEIAhAhCFRgACAGKDAAwRgCg0AhAAEBuNOQDnzZtnP/7xj23PPfe01q1b2xFHHGEjR47Mui4BiEIjAAEAsdFYA3D27NnWpk0bO/bYY+2ee+6x6dOn28SJE+2yyy7Luj4BiEIjAAEAsdFYA/DEE0+0rl272ubNmyOtTwCi0AhAAEBs1CUAq6qqrGJzRcGWqqqqBvk7bdq0yZo1a2Z9+/aNfBkCEIVGAAIAYqMuAVixucKUUsGWis0N89q4bNkya9Kkid10002RL0MAotAIQABAbLAHMEQAotAIQABAbDTW9wCefPLJvAcQsUIAAgBio7EG4GuvvWa77767HXfccXb33Xfb9OnT7fbbb7fLL7886/oEIAqNAAQAxEZjDUCz8HMAe/XqZR07drQ2bdrYkUceaaNHj866LgGIQiMAAQCx0ZgDsC4IQBQaAQgAiA0CMEQAotAIQABAbBCAIQIQhUYAAgBigwAMEYAoNAIQABAbBGCIAEShEYAAgNggAEMEIAqNAAQAxAYBGCIAUWgEIAAgNgjAEAGIQiMAAQCxQQCGCEAUGgEIAIiNdNgsWbLEKioqSnZZsmQJAYiCIgABALFRWVlpnTp1SsdNSS+dOnWyysrKrPcTAQhXBCAAIFYqKyu974GLw5Ir/swIQLgjAAEASBgCEK4IQAAAEoYAhCsCEACAhCEA4YoABAAgYQhAuCIAAQBIGAIQrghAAAAShgCEKwIQAICEIQDhigAEACBhCEC4IgABAEgYAhCuCEAAABKGAIQrAhAAgIQhAOGKAAQAIGEIQLgiAAEASBgCEK4IQAAAEoYAhCsCEACAhCEA4YoABAAgYQhAuCIAAQBIGAIQrghAAAAShgCEKwIQAICEIQDhigAEACBhCEC4IgABAEgYArDxGyFpvqQKScsk3SepSy2XuVPSVkkbJG2s/nVEjnUJQAAAEoYAbPyGSfqmpOYKH+R7Jb1Zy2XulHRXxOsnAAEASBgCsPQcK2mHpPZ51iEAAQBoxAjA0vMXSYtqWedOSWslrZb0kaRbJO2VY10CEACAhCEAS8upCt/T971a1vumpH2qf99N0lRJL+dYlwAEACBhCMDScYakdZJ61eOyB0qqknRolvMCSda7d28rKyuzsrIyKy8v9z3XAABgJ+Xl5TWv1b179yYAS8C5CuPv1HpevqvC9w0eluU89gACAJAw7AFs/C5TGH89I67fUtJP9K+BOEjSM5Jm51ifAAQAIGEIwMavStIWhZ/ll/m5fplBuFHSOdW/by1plqQ11acvlnSz/vWewJ0RgAAAJAwBCFcEIAAACUMAwhUBCABAwhCAcEUAAgCQMAQgXBGAAAAkDAEIVwQgAAAJQwDCFQEIAEDCEIBwRQACAJAwBCBcEYAAACQMAQhXBCAAAAlDAMIVAQgAQMIQgHBFAAIAkDAEIFwRgAAAJAwBCFcEIAAACUMAwhUBCABAwhCAcEUAAgCQMAQgXBGAAAAkDAEIVwQgAAAJQwDCFQEIAEDCEIBwRQACAJAwBCBcEYAAACQMAQhXBCAAAAlDAMIVAQgAQMIQgHBFAAIAkDAEIFwRgAAAJAwBCFcEIAAACUMAwhUBCABAwhCAcEUAAgCQMAQgXBGAAAAkDAEIVwQgAAAJQwDCFQEIAEDCEIBwRQACAJAwBCBcBZJs/fr1vmcZAABERADCVSDJ1q1f53uWAQBARAQgXBGAAAAkDAEIV4EkW7ture9ZBgAAERGAcBVIsjXr1vieZQAAEBEBCFeBJPti7Re+ZxkAAEREAMIVAQgAQMIQgHAVSLLVa1f7nmUAABARAQhXgSRbtWaV71kGAAAREYBwFUiyz9d87nuWAQBARAQgXBGAAAAkDAEIV4EkW/nFSt+zDAAAIiIA4SqQZCu+WOF7lgEAQEQEIFwFkmz56uW+ZxkAAEREAMIVAQgAQMIQgHAVSLJlq5f5nmUAABARAQhXgSRbumqp71kGAAAREYBwFUiyJauW+J5lAAAQEQEIVwQgAAAJQwDCVSDJPvv8M9+zDAAAIiIA4SqQZJ9+/qnvWQYAABERgHAVSLJPVn7ie5YBAEBEBCBcEYAAACQMAQhXgSRbvHKx71kGAAAREYCN3whJ8yVVSFom6T5JXWq5TAtJN0laXX25J/JcJgzAFYt9zzIAAIiIAGz8hkn6pqTmCh/keyW9WctlbpI0T2H0tZX0D0lzc6wbSLJFKxb5nmUAABARAVh6jpW0Q1L7HOe3lPSVpDMyTttT0lZJPbOsTwACAJAwBGDp+YukRXnO76EwEPfd6fQPJF2WZf1Aki1cvtD3LAMAgIgIwNJyqqSNkr6XZ53/qzAAW+50+quS+mZZP5BkHy//2PcsAwCAiAjA0nGGpHWSetWyXr32AF74mwutrKzMysrKrLy83PdcAwCAnZSXl9e8Vvfu3ZsALAHnKoy/UyOsm+09gHtJ2qI87wH8aNlHvucaAABExB7Axu8yhfGXLd5yuVHhUb8HSGqn8CjgN3KsG0iyD5d96HuWAQBARARg41elcO/dhuplY/WvmUG4UdI5GX9uIekGSV9Ur/ukpP1zXH8gyT5Y+oHvWQYAABERgHBFAAIAkDAEIFwFkuz9pe/7nmUAABARAQhXgSRbsGSB71kGAAAREYBwFUiy95a853uWAQBARAQgXBGAAAAkDAEIV4Eke/ezd33PMgAAiIgAhKtAkr3z2Tu+ZxkAAEREAMJVIMne/vRt37MMAAAiIgDhigAEACBhCEC4CiTZ/E/n+55lAAAQEQEIV4Eke+uTt3zPMgAAiIgAhKtAks37ZJ7vWQYAABERgHBFAAIAkDAEIFwFkuzNxW/6nmUAABARAQhXgSSbu3iu71kGAAAREYBwRQACAJAwBCBcEYAAACQMAQhXgSR7Y/EbvmcZAABERADCVSDJXl/0uu9ZBgAAERGAcBVIstcWveZ7lgEAQEQEIFwRgAAAJAwBCFeBJJuzcI7vWQYAABERgHAVSLLZC2f7nmUAABARAQhXgSR79eNXfc8yAACIiACEKwIQAICEIQDhKpBkr3z8iu9ZBgAAERGAcBVIspc/etn3LAMAgIgIQLgKJNlLH73ke5YBAEBEBCBcEYAAACQMAQhXgSR78cMXfc8yAACIiACEq0CSvfDhC75nGQAAREQAwhUBCABAwhCAcBVIslkfzPI9ywAAICICEK4CSTbzg5m+ZxkAAEREAMIVAQgAQMIQgHAVSLIZ78/wPcsAACAiAhCuAkk2/f3pvmcZAABERADCFQEIAEDCEIBwFUiyaQum+Z5lAAAQEQEIV4Eke37B875nGQAAREQAwlUYgO8RgAAAJAUBCFcEIAAACUMAwlUgyZ577znfswwAACIiAOEqkGTPvvus71kGAAAREYBwRQACAJAwBCBcBZJs6rtTfc8yAACIiACEq0CSTXlniu9ZBgAAERGAcEUAAgCQMAQgXAWSrPydct+zDAAAIiIA4SqQZM+8/YzvWQYAABERgHBFAAIAkDAEIFwFkuzpt5/2PcsAACAiAhCuAkk2ef5k37MMAAAiIgDhKpBkT81/yvcsAwCAiAhAuCIAAQBIGAKwNJwtaZakCkk7JDWtZf0ZkrZI2iBpY/Wvl+RYN5BkT771pO9ZBgAAERGApeF7CiPwQkULwOmSBkW87kCSPfHWE75nGQAAREQAlpaTFT0AB0e8TgIQAICEIQBLS10CcLWkNZLekzRC0u451g0k2ePzHvc9ywAAICICsLREDcDvSOpQ/ftjJM2VdH+OdQNJNmneJN+zDAAAIiIAS0vUAMx2ua2SWmY5L5Bkvc7rZWVlZVZWVmbl5XwvMAAAcVNeXl7zWt27d28CsITUNwBPUhiArbKcF0iyx958zPdcAwCAiNgDWBqaKtx7d5rCAGxT/ecmWdbdR9J/Va8jSd0lvSbpoRzXHUiyR9981PcsAwCAiAjA0nC+pCqF8bcj4/cnSTpA4Wf99axet6uk2ZLWK/z8vw8V4SAQAhAAgOQgAOEqkGSPzH3E9ywDAICICEC4CiTZw3Mf9j3LAAAgIgIQrghAAAAShgCEKwIQAICEIQDhKpBkD819yPcsAwCAiAhAuAok2YNvPOh7lgEAQEQEIFwRgAAAJAwBCFeBJPvnG//0PcsAACAiAhCuAkn2wOsP+J5lAAAQEQEIVwQgAAAJQwDCVSDJ7n/9ft+zDAAAIiIA4SqQZPe9dp/vWQYAABERgHBFAAIAkDAEIFwFkuze1+71PcsAACAiAhCuAkl2z5x7fM8yAACIiACEKwIQAICEIQDhKpBkd8+52/csAwCAiAhAuAok2V2z7/I9ywAAICICEK4IQAAAEoYAhKtAkv1j9j98zzIAAIiIAISrQJL9/dW/+55lAAAQEQEIV4Eku/PVO33PMgAAiIgAhCsCEACAhCEA4SqQZHe8cofvWQYAABERgHAVSLLbX7nd9ywDAICICEC4IgABAEgYAhCuAkl228u3+Z5lAAAQEQEIV4Ek+9vLf/M9ywAAICICEK4IQAAAEoYAhKtAkk18aaLvWQYAABERgHBFAAIAkDAEIFwRgAAAJAwBCFeBJPvri3/1PcsAACAiAhCuAkl264u3+p5lAAAQEQEIVwQgAAAJQwDCVSDJbnnhFt+zDAAAIiIA4SqQZDe/cLPvWQYAABERgHAVSLKbZt3ke5YBAEBEBCBcEYAAACQMAQhXgSS7cdaNvmcZAABERADCVSDJbph5g+9ZBgAAERGAcEUAAgCQMAQgXAWS7PqZ1/ueZQAAEBEBCFeBJLtuxnW+ZxkAAEREAMIVAQgAQMIQgHAVSLJrZ1zre5YBAEBEBCBcBZJswvQJvmcZAABERADCFQEIAEDCEIBwFUiy8dPH+55lAAAQEQEIV4EkGzdtnO9ZBgAAERGAcEUAAgCQMAQgXAWSbOy0sb5nGQAAREQAwlUgycY8P8b3LAMAgIgIQLgKJNno50f7nmUAABARAQhXBCAAAAlDAJaGsyXNklQhaYekprWs30HSvZLWSVor6W5J7XOsG0iyUc+P8j3LAAAgIgKwNHxPYQReqGgBOFnSVEkdJe0h6VlJk3KsSwACAJAwBGBpOVm1B2BXSVWSjs44rUf1aV2yrE8AAgCQMARgaYkSgL0kVWY5fbOkM7KcHkiykc+N9D3LAAAgIgKwtEQJwPMkrchy+kpJP89yeiDJRjw3wvcsAwCAiAjA0hJ1D+CmLKfn3QPY8yc9rayszMrKyqy8vNz3XAMAgJ2Ul5fXvFb37t2bACwhUd8DuEO7vgdwh/K8B3D4s8N9zzUAAIiIPYCloamklpJOUxhybar/3CTH+k9KKpe0p6S9JE2R9FiOdQNJNuzZYb5nGQAAREQAlobzFR7Fu6N6Sf/+JEkHSNooqWfG+h0k3SNpvcLPArxLuQeEAAQAIGEIQLgKJNnQqUN9zzIAAIiIAISrQJINmTrE9ywDAICICEC4CiTZ4CmDfc8yAACIiACEKwIQAICEIQDhKpBkg6YM8j3LAAAgIgIQrgJJlipP+Z5lAAAQEQEIVwQgAAAJQwDCVSDJBpYP9D3LAAAgIgIQrgJJNuCZAb5nGQAAREQAwhUBCABAwhCAcBVIsv7P9Pc9ywAAICICEK4CSdbv6X6+ZxkAAEREAMIVAQgAQMIQgHAVSLJrnr7G9ywDAICICEC4CiRZ38l9fc8yAACIiACEKwIQAICEIQDhKpBkV0++2vcsAwCAiAhAuAokWZ+n+vieZQAAEBEBCFcEIAAACUMAwhUBCABAwhCAcBVIsquevMr3LAMAgIgIQLgKJNlfnvyL71kGAAAREYBwRQACAJAwBCBcBZLsz0/82fcsAwCAiAhAuAok2ZVPXOl7lgEAQEQEIFwRgAAAJAwBCFeBJPvT43/yPcsAACAiAhCuAkn2x8f/6HuWAQBARAQgXBGAAAAkDAEIV4EkK5tU5nuWAQBARAQgXAWS7A+T/uB7lgEAQEQEIFwRgAAAJAwBCFeBJPv9Y7/3PcsAACAiAhCuAkl2xWNX+J5lAAAQEQEIV4Eku/zRy33PMgAAiIgAhCsCEACAhCEA4SqQZJc9epnvWQYAABERgHAVSLLej/T2PcsAACAiAhCuCEAAABKGAISrQJJd+silvmcZAABERADCVSDJfvfw73zPMgAAiIgAhCsCMAHOf+x8O/OBM31vBgAgJghAuAok2SUPX+J7lpGHUjKl5HszAAAxQQDCVSDJLn74Yt+zjDwIQABAJgIQrgjABCAAAQCZCEC4IgATgAAEAGQiAOEqkGS/fei3vmcZeRCAAIBMBCBcEYAJQAACADIRgHAVSLLfPPQb37OMPAhAAEAmAhCuAkn26wd/7XuWkQcBCADIRADCVSDJLnrwIt+zjDwIQABAJgIQrgjABCAAAQCZCEC4CiTZr/75K9+zjDwIQABAJgIQrgJJduE/L/Q9y8iDAAQAZCIA4YoATAACEACQiQAsHYMkLZO0UdIMSd3zrDtD0hZJG6rX3yDpkhzrBpLsggcu8D3LyIMABABkIgBLw58lfSrpKEktJQ2XtFRSmxzrT1cYjFEEkuz8B873PcvIgwAEAGQiAEvDIkmXZfy5maRVks7Nsf50SYMjXjcBmAAEIAAgEwHY+AWSqiSdsNPpUySNzXGZ6ZJWS1oj6T1JIyTtnuf67Zf3/9L3LCMPAhAAkIkAbPy6KAzAI3Y6/QFJE3Nc5juSOlT//hhJcyXdn2PdQJL94v5f+J5l5EEAAgAyEYCNX332AO7sZElbFb5/MNv125H/faSVlZVZWVmZlZeX+55r7IQABACUl5fXvFb37t2bACwB2d4D+LlyvwdwZycpDMBWWc4LJNl5953ne66RBwEIAMjEHsDScKWkTxR+9EtrScMkLVH2o4D3kfRfGed1l/SapIdyXHcgyc6971zfs4w8CEAAQCYCsHSkJK2Q9KW+/jmAByj8rL+e1X/uKmm2pPUKP//vQ0U4CIQAjDcCEACQiQCEq0CSnXPvOb5nGXkQgACATAQgXAWS7Ox7zvY9y8iDAAQAZCIA4SqQZGfdfZbvWUYeBCAAIBMBCFeBJPvJXT/xPcvIgwAEAGQiAOEqkGQ//vuPfc8y8iAAAQCZCEC4CiRZrzt7+Z5l5EEAAgAyEYBwFUiyH9zxA9+zjDwIQABAJgIQrgJJdvrtp/ueZeRBAAIAMhGAcBVIstP+dprvWY6979/zfTvvUT9fmUcAAgAyEYBwFUiyUyee6nuWY89nhBGAAIBMBCBcBZLsPyb+h+9Zjj0CsPjOfuhsW7xuse/NAIDYIQDhKpBkp/z1FN+zHHsEYPEpJRv70ljfmwEAsUMAwlUgyU685UTfsxx7BGDxEYAAkB0BCFeBJOt5c0/fsxx7BGDxKSUb9/I435sBALFDAMJVIMm+c9N3fM9y7BGAxUcAAkB2BCBcBZLs/9z4f3zPcuwRgMVHAAJAdgQgXAWS7Pgbjvc9y7HnM8KapJoQgACAGgQgXAWS7FvXfcv3LMceAVh8SsnGvzze92YAQOwQgHAVSLLjrj3O9yzHns8AbDqoackG4IRXJvjeDACIHQIQrgJJdsyEY3zPcuwRgMVHAAJAdgQgXAWSrPv47r5nOfYIwOIjAAEgOwIQrgJJ9o2x3/A9y7FHABYfAQgA2RGAcBVIssPHHO57lmPPZwA2G9SMAAQA1CAA4SqQZIeMPsT3LMdeYw7Ab976zViGllKya1+51vdmAEDsEIBwFUiybqO6+Z7l2GvMAaiU7Nhbji3Y9ddHVVUVAQgAORCAcBVIsgNHHuh7lmPPZwA2H9y85AJwR9UOAhAAciAA4SqQZAeMOMD3LMceAVhc23ZsM6Vk1716ne9NAYDYIQDhKpBknYd39j3LsdfYA/C4W+P1YeBbtm8piQC89KlL7ZbXbvG9GQAShgCEq0CSdRrWyfcsx15jD8C47QHctHWTKSW7/tXrfW9KQSklaze8ne/NAJAwBCBcBZJs7yF7+57l2PMZgLsN3q3kAvDLLV+WTAC2GtrK92YASBgCEK4CSbbn4D19z3LsNfYAjNuPgDds3lAyAdhySEvfmwEgYQhAuAokWcdBHX3Pcuz5DMAWQ1qUXACur1xfMgHYYkgL35sBIGEIQLgKJFn7VHvfsxx7BGBxrd201jkAlZK9sfyNBtyqhqeUrPng5r43A0DCEIBwFUiytgPa+p7l2PMZgC2HtCy5APziqy8aJADHvzy+Abeq4RGAAOqDAISrQJK16d/G9yzHHgFYXKu+XOX8MTBKyca9PK4Bt6rhKSVrNqiZ780AkDAEIFwFkqxlP96EXhsCsLhWblzZIAE45qUxDbhVDU8pWZNUk8jrl5WX2ffv+X4BtwhAEhCAcBVIsmZ92QNRGwKwuJZvWN4gATj6xdENuFUNr65zVegjwgEkAwEIV4EkUx/Zjqodvuc51nwGYKuhrUouAJdWLHX+LmClZCNfGNmAW9Xw6jpXrYe2TlQArti4wvcmAI0SAQhXNQFYua3S9zzHGgEY3aovV9naTWudruOz9Z+ZUrIJr0yo93UoJRs+a7jTdhRaXeeq7fC2iQnA9Ef5LN+w3PemAI0OAQhXNQFYsbnC9zzHms8ALPRen4YOQKVkB117kNN1fLLuE+eDOJSSDZs1zGk7Cq2uc9V+RPvEBOCaTWtMKdl7q97zvSlAo0MAwlVNAK76cpXveY61xh6ADflVcA1xXy1au8jpII6qqipTSjZ05lCn7Si0ut5XHUZ2SEwApj/K553P3/G9KUCjQwDCVU0ALq1Y6nueY62xB2CPW3o06PW5bu/Haz52eg/fth3bTCnZ4BmDnbaj0Op6X3Uc2TExAZg+kvvtz9/2vSlAo0MAwlXNUcAL1y70Pc+xRgDW7fpct/fDLz50eg/f5m2bTSnZoBmDnLaj0BpzAC7bsMyUks1fOd/3pgCNDgEIV4Eka92/tS1YvcD3PMeazwBsM6xNwQPwmJuPadDrc93e91e/7/Qj3K+2fmVKyVLTU07bUWh1va/2GLVHndYf89IYW7NpTX02zVn6QJ55K+YV7TarqqqsqqqqaLcH+EIAwlUgyTqkOthbK9/yPc+x1tgDsPtN3Rv0+ly3971V7zntwduweYMpJRswbYDTdhRaXe+rPUftWaf1fX4Ydvp9nK8ve71ot3nOw+fYfmP3K9rtAb4QgHAVSLK9h+xtc5bO8T3PsUYA1u36XLf3nc/fMaVkA6cPrNfl11WuM6Vk/af1d9qOQqvrfbXX6L3qHICjXhxVn01z9tGaj0wp2StLXinabUY5SGbr9q22edvmIm0RUBgEIFwFkqzLiC724qcv+p7nWIvD5wAW6kdbcQzAtz9/25SS9Xu+X70unz4Ctb6XL5a63ld7j947MQGY/jH+C5++ULTbjLKH9DY+dYkAABLfSURBVNS7TrU9R+1ZpC0CCoMAhKtAknUb1c2eX/S873mOtTh8FVyhvq0ljgH41sq3TClZ3+f61uvy6SNQr3n+GqftqIvtO7bb1u1b63SZxhyA6b240xZNK9pt7jNmn1rvn+aDmxf8uVxVVWXnPHyObdyysaC3g9JFAMJVIMl6TOhhkxZM8j3PseYzAFsMaWFKybbv2F6Q649jAL654k1TSnbVs1fV6/LpI1DrG5D1cfo9p9s+Y/ap02Xqel9FCZydr99XAKYjfurHU4t2m/uO2bfW+6cY36ec/hii5xY+V9DbqY9pi6Yl5khy5EYAwlUgyU685UT7+5t/9z3PseYzANMvWHXduxRVHAPwjeVvmFKyP0/9c70unz4Ctc+zfZy2oy6aDWpW5793Xe+rKIGTtn3H9oIE4LwV8+yUv59S63rpx3Dyh5Mb9PbziUsApo9Cn/LxlILeTn0MnTmUAGwECEC4CiTZGXecYde+cq3veY41nwGY/pHVlu1bGvy609+YcdRNRzXYdTbEffXastdMKdmfpvypXpdfvG6xKSW7csqVTttRF/UJi0IGYOW2yoIEYP9p/SNtw5ylc0wp2ePvP96gt59Pp7Gdat229B71QkofhPT0h08X9HbqY8QLIwry97/zzTtt5caVDX69yI4AhKtAkp1737mx/7w033wGYHrPUiGOXEz/qCpuATh76WxTSvaHZ/5Qr8unv0mkvpevj/qERV3vqyiBk1axuaIgAThk5pBI2/DKkldMKdnD7z7coLefT1wC8PMvPzelZE9+8GRBb6c+Rr04qiB/f6Vklzx5SYNfL7IjAOEqkGSXPnJpUV8ok8hnADYd1NSUkm3auqnBrzv9jRlxC8B0PFzx9BX1uvwHX3xgSsl6T+7ttB11UYwA3G/sfpHXTx8J3dABOGzWsEjb8MKnL5hSsvvfvr9Bbz+fuATgkoolppTssQWPFfR26mPsS2NNKdm2Hdsa9HoJwOIiAOEqkGRXT77aLph0ge95jjWfAdgk1cSUkn219asGv+70e5XiFoAvffaSU8C9u+pdU0p28ZMXO21HXaSP1q6Lut5Xncd1jrz+8g3LCxKA6R8h1vae1BmLZ5hSsrvfurtBbz+fKIHcEAH49IdP29E3H53z/IVrF9Yav09/+HRBntO1Gf/yeFNKOY9Qru/BZsV8vj238Dmr3FZZlNuKKwIQrgJJNmH6BDvt7tN8z3Os+QzA9G0X4iMl0t+YEbcAnPXJLFNK9runflevy89fOd+Ukl30+EVO21EX6c9rrIu63lf7j9s/8vqfrv/UlJKNeGFEnbapNqNfHG1KydZXrs+73tSPp5pSsjvm3tGgt59PQwXgmk1r8obQRY9flPc6FqxeUOvfXSnZkJlD8m5HIVz7yrWmlGz1V6t3OS/9nuC3P3+7ztdbzABUSnb9q9fvcvqcpXPsxtk3FmUbfCMAS8cgScskbZQ0Q1L3POt2kHSvpHWS1kq6W1L7HOsGkmzSvEl2yHWH+J7nWItDAG7YvKHBr3vtprWxDMDnFj5nSsl++8Rv63X59MfI/PKxXzptR10UYw9gl/FdIq+f/iaOwTMG12mbapP+EeKKjSvyrjf5w8mmlGzi6xMb5HaXb1he6x6zKHtIowRgbXHWe3LvvNeR/gicm+fcnPc2ivkxRWnXv3q9KSVbUrFkl/PSBw498f4Tdb5el+drfW4r21wfP/H4rI9LVVWV3T739gb5LNU5S+cU9W0NuRCApeHPkj6VdJSklpKGS1oqqU2O9SdLmiqpo6Q9JD0raVKOdQNJNv/T+dZsULOCHGXaGKT/V1zoACwvL896evq2a9vjUh+rvlwVywBMx8OvH/91vS7/+rLXTSnZzx/5eb0un+uxyKcYRwHX5UfA6e9TjvptKDMWz4i0lzl9EMHCtQvzrjdpwSRTSnbTnJsi3X4+5eXlppTsh/f9MO96UfaQRg3AH93/o5znXznlSlNKOX8MmT4CetzL47Kev6Nqhyklu/q5q/NuRy5rNq2xW1+7Nef5E1+fmPMDuNM/Av5ozUe7nJf+9yDfexezPTfSf59ce9yPuOEIe2/Vezmvsy7SH2+Uba6/e9t3sz626bdDLFi9YJfztm7fWqdvWarLf8IKiQAsDYskXZbx52aSVkk6N8u6XSVVSTo647Qe1ad1ybJ+IMnWrV9nncd1LuoHtibJ1u1ba16oC/V1bGZmZWVlu5yW/sdOKdm6ynUNfpufrPvElJL1uKVHg11nQwTgYwseM6Vkv5r0q3pdPn0Qyc8e+lm9Lp/tsahN+mCduqjrfVWXbwKp64dpKxXtcxMHzxgc6ceED77zoCklu+7V6yLdfj5lZWWmlKzzuM5512vIPYCn3nVqzvP7PNvHlJItrVia9fyZn8w0pWRDZw7Nen76rRf1/aDzG2bfYErl/nYgpWT7jtk363nDZw03pWTzV87f5bz0exfvnX9vztvO9tzYtHWTKSU779HzdjkvHYd1/dHs1u1b7cstX+5yer777qQ7T8r62KbfEzx76exdzusyvkvWmNyweYOt3bR2l9MPvvZgAhBFESiMtxN2On2KpLFZ1u8lqTLL6ZslnZHj+q2iosKuevYq+85t37EFqxfY+sr1tmnrptgvX239yio2V9gXX31hKzausM/Wf2YL1y6091e/b29//rbNXT7XZi+dbS9++qJNXzzdpn481SZ/ONkmLZhkD77zoN07/167fe7tdsPsG2zUi6NswLQBduWUK+3Spy61CyZdYD976Gf2g3t/YCf87YSaF+pe9/eyXzz6C7vo8YvskicvscufvtzKysvsyilXWp9n+1i/5/tZanrKhs4caiNeGGFjXhpjE16ZYDfMvsFuee0W+9sbf7M75t5hd827y+6bf589+M6D9uh7j9oT7z9hP77gxzbl4yn2/KLnbeYnM+2lz16qeR+VUrKZn8y0lRtX2ppNa2zjlo321davapbM+6VyW2XNsnnb5pply/YtNcvW7Vtt6/atNnf5XFNKduj1h9brH6Gqqqqar0Dbsn1LzUeP1OcfyPR1bduxzW574zZTSnbWg2fVa7vKPwr3GJ35wJn1unx9AjDf3zv9d9u8bXPN3K7YuCLSfyyqqqpsy/Yt9uWWL63NsDZ5X/jT6++o2lHzjQ+/f+b3tW57+kd/UY7i/MvUv5hSsjlL5+Rd78437zSlZGNfGlvrddYmHYB7jd4r73pRvgu4tvlM/4ev5+09c65z2eTLTCnZvBXzsp7/zEfPmFK5v4pwacVSU6r+n1OZ78e4ZuHfMde30lz93NU5H7/0h3fn22ub7bmR3nOYbY97eu9bXfcE/+6p32V9nPLdd6fedaoptesRzukj0rN945VSsuNuPW6X04+feLwFI4JdTj/0+kMJQBRFF4UBeMROpz8gaWKW9c+TtCLL6Ssl/TzL6YEkW7JkiS1bvcx+etdPrXnf5qY+SuzSrG8za9WvlbUb2M46Dupo+wzdx/Yfvr8dNOogO3T0oXbkuCOtx4Qe9u3rv20n3HiCnfLXU+z020+3n971U/vF/b+wix++2P4w6Q/Wd3JfGzp1qI2bNs5ueeEWm/nBTCt/p9yGPTvM+j/T3/o81cf++Pgf7YrHrrBLH7nULn74YrvowYvsggcusPPuO8/+997/tbPuPsvO/MeZ9sM7f2in3366nfa30+w/J/6nnXzrydbz5p52wo0n2Lev/7Ydd+1xdvT4o22Pk/aww8YcZt1GdbOuI7ta5+Gdbe8he9uZ/zjTzrvvvII9NoePOdyaXt3UWvVrZW0HtLW2A9pau4HtrN3Adrb7gN2tTf821qpfK2txTQtr3re5Nb26qTW5ukmt19u8b3Nr07+Ntenfxlr3b20t+7W0Fte0sN2u2c2a9W1W6/Ucf8Pxpj6y1v1bW7uB7SwYGFj7VHvrOKijdRzU0fYYvId1HNTR2qfaW9sBbb+2nelZUB9Z+1R765Dq8LXL7Tl4z5rLd0h1sPap9hYMDKzdwHbWdkBba35C85rtbtWv1de2vXnf5nm3v1nfZtayX8uav3N6O7Ituw/Y3dRH1uTqJtasbzNr3re57XbNbtbimhbWsl9La3p105yX3e2a3SLfl5nX2bp/65r7qnnf5rtcLv3473y/tRvYzlr1a1WzXpOrm9i+Q/etWfYZus/XlvS87nbNbtZ1ZFc7aNRBdvCog63bqG52yOhDrNuobtZtVDc7eNTBdtCog+zAkQda15Fd7YARB1iXEV2s8/DOtt+w/azTsE7W5t/b1NzuIaMPyXr5g0YdVLPOgSMPrFmv68iutt+w/WyvIXtZh1SHmnW6jepmh44+dJfnXDAwqHkcDx9zuB06+tCa2zlw5IHWZUSXmuvoOrKrfWPsN+yIsUfY4WMOt8PHHG6HjTnMWvdvXbPOEWOPsCPHHWlHjD2i5rr2GLxHzW10H9/duo/vbkeNO8qOHHfk167vsDGH2aGjD93l75u+7o6DOtZcLvMy6fPT15d5nenHJRgY7LJdbQe0NfWRtezXsuayh405zA4ZfUjN379tz7bWeXhn23fovrb3kL1tj8F72G7X7FZzm+nbS1+u46CONfNy1Lij7KhxR1n38d3t6PFH29Hjj7ajxh1l3xj7jV3u6/T1pdfrPr67HTL6kJptVB/VXE/38d2t26huNacfPOrgmssdM+GYmse0df/WdsyEY6zHhB52zIRjvnaZHhN62NHjj665T3Y+/ahxR33t9B/c8QO79JFLvS2/vvvXBGAjV589gJuynJ5rD+D+CgeIhYWFhYWFJXnL/kKjle09gJ8r93sAd2jX9wDuUPb3ADZRODwBCwsLCwsLS6KW/RW+jqORulLSJwo/+qW1pGGSlij3UcBPSiqXtKekvRTuLXys4FsJAACABpVS+N6+L/X1zwE8QOFnA/bMWLeDpHskrVf4WYB3KfyfAgAAAAAAAIBSU5dvGEHDGCFpvqQKhff9fdr1/ZkHKPxR/gaFn/l4g6TmRdzGUvWYwoOu/iPjtFMkvSHpK0kLJV1S/M0qKd+V9LzC2V8n6cWM83pImqnwJyFLJQ0s+taVjn0U/tu0UuE3Sr0k6aSM808Rz4tCOVvSLIWvETskNd3p/CjPA17bkVddv2EEDWOYpG8qDLpA4df2vZlxfhOFgXinpN0VxuBbkiYUdzNLzi8Vvl92h/4VgAcq/Ef2EoWP10kK31rxIx8bWAK+qzD6zlP4b1JTSf9WfV5bScslDZXUQuGBbksk/b74m1kSHlEYGXso/DfpjwqjvIN4XhTa9xRG4IXaNQCjPA94bUet6vINIyicYxU+ydPf13yypC0Kv8ovrZfC/8ntVtxNKxldFB5olf7czXQADlC4lyPTeIVfr4iGN0vSmBznna9wb1Tmi+EVkj4q9EaVqHmSLs/48+4Knxv/Jp4XxXKydg3AKM8DXtuRV6C6fb4gCucvCp+waVdIWrDTOvtp16/4Q8OZIumi6t9nBuCjkm7Zad1zJH1RpO0qJa0lbZc0StJshffxa5L+p/r88ZKe2eky31X4Atm2SNtYSs6RNE1SJ4X/8bxK0gcK9yjxvCiObAFY2/OA13bUqq7fMILCOFXhnr3vZZzWT9IrO63XSuHj9e9F2q5ScqnCfxzTqiT9v+rfP6fwPZuZvi9paxG2q9Tsr/C+XyHpWwpf9M5UuDf8O5Juk3T/Tpf5hsIXvs7F28yS0VXS0wofk60K9zp9t/o8nhfFkS0Aa3se8NqOWvG/BP/OUPh+p147nc4ewOLppvD9NAdknMYeQD/S/yYN3+n0coWxwR7A4mmi8MCO2xW+NaWpwn+n1it8ywrPi+JgDyAKpi7fMIKGda7C+Ds1y3knKfzqvmzvAWxR+E0rKecrvK9XSVpdvVQpfGxuldRfvNepmD5S7gD8pXgPYLHsofB5cOxOp7+h8AAD3gNYHNkCMMrzgNd21Kqu3zCChnGZwsDomeP8JgrfgH2Hwv/RdVV4lDBHATe8Vgp/bJK5VEk6S+HRjl0VHu14scL3QZ2o8LHjaMfCuELhHtljFT4Pein8bvPjFT4XlkkaovBxO1rhkY4cBVwY7yr8kWE7hY/FGZIqFb49gudFYTVV+F7L0xQGYJvqPzdRtOcBr+2IJKXs3zCCwqlS+L6mDdXLxupfM4PwAElPVZ+3WtJ14gjgYsn8GBgp3CM7V+HnnS1S+KKHwrlK0mcKPwPtdYXhkXa0wiOFv1IYiv2LvnWl4xCFn4v5ucIf/b6tfx0oJfG8KKTzFb5O7Khe0r9Pfw5jlOdBSry2AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoOD+PzHj70JioxLdAAAAAElFTkSuQmCC\">"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7f81da9e2a90>"
      ]
     },
     "execution_count": 142,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#plot(qr,Ir,\"-r\",label=\"mg\")\n",
    "plot(qc,Ic,\"-g\",label=\"c\")\n",
    "legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 157,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3999 1511\n",
      "2854942865.56 401767763828.0 140.727076774\n"
     ]
    },
    {
     "data": {
      "application/javascript": [
       "/* Put everything inside the global mpl namespace */\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('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",
       "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 = $('<div/>');\n",
       "    this._root_extra_style(this.root)\n",
       "    this.root.attr('style', 'display: inline-block');\n",
       "\n",
       "    $(parent_element).append(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",
       "            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",
       "        this.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 = $(\n",
       "        '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
       "        'ui-helper-clearfix\"/>');\n",
       "    var titletext = $(\n",
       "        '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
       "        'text-align: center; padding: 3px;\"/>');\n",
       "    titlebar.append(titletext)\n",
       "    this.root.append(titlebar);\n",
       "    this.header = titletext[0];\n",
       "}\n",
       "\n",
       "\n",
       "\n",
       "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
       "\n",
       "}\n",
       "\n",
       "\n",
       "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
       "\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_canvas = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var canvas_div = $('<div/>');\n",
       "\n",
       "    canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
       "\n",
       "    function canvas_keyboard_event(event) {\n",
       "        return fig.key_event(event, event['data']);\n",
       "    }\n",
       "\n",
       "    canvas_div.keydown('key_press', canvas_keyboard_event);\n",
       "    canvas_div.keyup('key_release', canvas_keyboard_event);\n",
       "    this.canvas_div = canvas_div\n",
       "    this._canvas_extra_style(canvas_div)\n",
       "    this.root.append(canvas_div);\n",
       "\n",
       "    var canvas = $('<canvas/>');\n",
       "    canvas.addClass('mpl-canvas');\n",
       "    canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
       "\n",
       "    this.canvas = canvas[0];\n",
       "    this.context = canvas[0].getContext(\"2d\");\n",
       "\n",
       "    var rubberband = $('<canvas/>');\n",
       "    rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
       "\n",
       "    var pass_mouse_events = true;\n",
       "\n",
       "    canvas_div.resizable({\n",
       "        start: function(event, ui) {\n",
       "            pass_mouse_events = false;\n",
       "        },\n",
       "        resize: function(event, ui) {\n",
       "            fig.request_resize(ui.size.width, ui.size.height);\n",
       "        },\n",
       "        stop: function(event, ui) {\n",
       "            pass_mouse_events = true;\n",
       "            fig.request_resize(ui.size.width, ui.size.height);\n",
       "        },\n",
       "    });\n",
       "\n",
       "    function mouse_event_fn(event) {\n",
       "        if (pass_mouse_events)\n",
       "            return fig.mouse_event(event, event['data']);\n",
       "    }\n",
       "\n",
       "    rubberband.mousedown('button_press', mouse_event_fn);\n",
       "    rubberband.mouseup('button_release', mouse_event_fn);\n",
       "    // Throttle sequential mouse events to 1 every 20ms.\n",
       "    rubberband.mousemove('motion_notify', mouse_event_fn);\n",
       "\n",
       "    rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
       "    rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
       "\n",
       "    canvas_div.on(\"wheel\", function (event) {\n",
       "        event = event.originalEvent;\n",
       "        event['data'] = 'scroll'\n",
       "        if (event.deltaY < 0) {\n",
       "            event.step = 1;\n",
       "        } else {\n",
       "            event.step = -1;\n",
       "        }\n",
       "        mouse_event_fn(event);\n",
       "    });\n",
       "\n",
       "    canvas_div.append(canvas);\n",
       "    canvas_div.append(rubberband);\n",
       "\n",
       "    this.rubberband = rubberband;\n",
       "    this.rubberband_canvas = rubberband[0];\n",
       "    this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
       "    this.rubberband_context.strokeStyle = \"#000000\";\n",
       "\n",
       "    this._resize_canvas = function(width, height) {\n",
       "        // Keep the size of the canvas, canvas container, and rubber band\n",
       "        // canvas in synch.\n",
       "        canvas_div.css('width', width)\n",
       "        canvas_div.css('height', height)\n",
       "\n",
       "        canvas.attr('width', width);\n",
       "        canvas.attr('height', height);\n",
       "\n",
       "        rubberband.attr('width', width);\n",
       "        rubberband.attr('height', height);\n",
       "    }\n",
       "\n",
       "    // Set the figure to an initial 600x600px, this will subsequently be updated\n",
       "    // upon first draw.\n",
       "    this._resize_canvas(600, 600);\n",
       "\n",
       "    // Disable right mouse context menu.\n",
       "    $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\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 nav_element = $('<div/>')\n",
       "    nav_element.attr('style', 'width: 100%');\n",
       "    this.root.append(nav_element);\n",
       "\n",
       "    // Define a callback function for later on.\n",
       "    function toolbar_event(event) {\n",
       "        return fig.toolbar_button_onclick(event['data']);\n",
       "    }\n",
       "    function toolbar_mouse_event(event) {\n",
       "        return fig.toolbar_button_onmouseover(event['data']);\n",
       "    }\n",
       "\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",
       "            // put a spacer in here.\n",
       "            continue;\n",
       "        }\n",
       "        var button = $('<button/>');\n",
       "        button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
       "                        'ui-button-icon-only');\n",
       "        button.attr('role', 'button');\n",
       "        button.attr('aria-disabled', 'false');\n",
       "        button.click(method_name, toolbar_event);\n",
       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
       "\n",
       "        var icon_img = $('<span/>');\n",
       "        icon_img.addClass('ui-button-icon-primary ui-icon');\n",
       "        icon_img.addClass(image);\n",
       "        icon_img.addClass('ui-corner-all');\n",
       "\n",
       "        var tooltip_span = $('<span/>');\n",
       "        tooltip_span.addClass('ui-button-text');\n",
       "        tooltip_span.html(tooltip);\n",
       "\n",
       "        button.append(icon_img);\n",
       "        button.append(tooltip_span);\n",
       "\n",
       "        nav_element.append(button);\n",
       "    }\n",
       "\n",
       "    var fmt_picker_span = $('<span/>');\n",
       "\n",
       "    var fmt_picker = $('<select/>');\n",
       "    fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
       "    fmt_picker_span.append(fmt_picker);\n",
       "    nav_element.append(fmt_picker_span);\n",
       "    this.format_dropdown = fmt_picker[0];\n",
       "\n",
       "    for (var ind in mpl.extensions) {\n",
       "        var fmt = mpl.extensions[ind];\n",
       "        var option = $(\n",
       "            '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
       "        fmt_picker.append(option)\n",
       "    }\n",
       "\n",
       "    // Add hover states to the ui-buttons\n",
       "    $( \".ui-button\" ).hover(\n",
       "        function() { $(this).addClass(\"ui-state-hover\");},\n",
       "        function() { $(this).removeClass(\"ui-state-hover\");}\n",
       "    );\n",
       "\n",
       "    var status_bar = $('<span class=\"mpl-message\"/>');\n",
       "    nav_element.append(status_bar);\n",
       "    this.message = status_bar[0];\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",
       "\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",
       "\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]);\n",
       "        fig.send_message(\"refresh\", {});\n",
       "    };\n",
       "}\n",
       "\n",
       "mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
       "    var x0 = msg['x0'];\n",
       "    var y0 = fig.canvas.height - msg['y0'];\n",
       "    var x1 = msg['x1'];\n",
       "    var y1 = fig.canvas.height - msg['y1'];\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, 0, fig.canvas.width, fig.canvas.height);\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",
       "    {\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.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",
       "            fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
       "                evt.data);\n",
       "            fig.updated_canvas_event();\n",
       "            fig.waiting = false;\n",
       "            return;\n",
       "        }\n",
       "        else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\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(\"No handler for the '\" + msg_type + \"' message type: \", msg);\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(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\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",
       "    if (e.target)\n",
       "        targ = e.target;\n",
       "    else if (e.srcElement)\n",
       "        targ = e.srcElement;\n",
       "    if (targ.nodeType == 3) // defeat Safari bug\n",
       "        targ = targ.parentNode;\n",
       "\n",
       "    // jQuery normalizes the pageX and pageY\n",
       "    // pageX,Y are the mouse positions relative to the document\n",
       "    // offset() returns the position of the element relative to the document\n",
       "    var x = e.pageX - $(targ).offset().left;\n",
       "    var y = e.pageY - $(targ).offset().top;\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",
       "    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",
       "    {\n",
       "        this.canvas.focus();\n",
       "        this.canvas_div.focus();\n",
       "    }\n",
       "\n",
       "    var x = canvas_pos.x;\n",
       "    var y = canvas_pos.y;\n",
       "\n",
       "    this.send_message(name, {x: x, y: y, button: event.button,\n",
       "                             step: event.step,\n",
       "                             guiEvent: simpleKeys(event)});\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",
       "\n",
       "    // Prevent repeat events\n",
       "    if (name == 'key_press')\n",
       "    {\n",
       "        if (event.which === this._key)\n",
       "            return;\n",
       "        else\n",
       "            this._key = event.which;\n",
       "    }\n",
       "    if (name == 'key_release')\n",
       "        this._key = null;\n",
       "\n",
       "    var value = '';\n",
       "    if (event.ctrlKey && event.which != 17)\n",
       "        value += \"ctrl+\";\n",
       "    if (event.altKey && event.which != 18)\n",
       "        value += \"alt+\";\n",
       "    if (event.shiftKey && event.which != 16)\n",
       "        value += \"shift+\";\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,\n",
       "                             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",
       "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\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"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\";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 overriden (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 = $(\"#\" + id);\n",
       "    var ws_proxy = comm_websocket_adapter(comm)\n",
       "\n",
       "    function ondownload(figure, format) {\n",
       "        window.open(figure.imageObj.src);\n",
       "    }\n",
       "\n",
       "    var fig = new mpl.figure(id, ws_proxy,\n",
       "                           ondownload,\n",
       "                           element.get(0));\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.get(0);\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",
       "\n",
       "    var output_index = fig.cell_info[2]\n",
       "    var cell = fig.cell_info[0];\n",
       "\n",
       "};\n",
       "\n",
       "mpl.figure.prototype.handle_close = function(fig, msg) {\n",
       "    fig.root.unbind('remove')\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).html('<img src=\"' + dataURL + '\">');\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 dataURL = this.canvas.toDataURL();\n",
       "    this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\">';\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 () { fig.push_to_output() }, 1000);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._init_toolbar = function() {\n",
       "    var fig = this;\n",
       "\n",
       "    var nav_element = $('<div/>')\n",
       "    nav_element.attr('style', 'width: 100%');\n",
       "    this.root.append(nav_element);\n",
       "\n",
       "    // Define a callback function for later on.\n",
       "    function toolbar_event(event) {\n",
       "        return fig.toolbar_button_onclick(event['data']);\n",
       "    }\n",
       "    function toolbar_mouse_event(event) {\n",
       "        return fig.toolbar_button_onmouseover(event['data']);\n",
       "    }\n",
       "\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) { continue; };\n",
       "\n",
       "        var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
       "        button.click(method_name, toolbar_event);\n",
       "        button.mouseover(tooltip, toolbar_mouse_event);\n",
       "        nav_element.append(button);\n",
       "    }\n",
       "\n",
       "    // Add the status bar.\n",
       "    var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
       "    nav_element.append(status_bar);\n",
       "    this.message = status_bar[0];\n",
       "\n",
       "    // Add the close button to the window.\n",
       "    var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
       "    var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
       "    button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
       "    button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
       "    buttongrp.append(button);\n",
       "    var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
       "    titlebar.prepend(buttongrp);\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._root_extra_style = function(el){\n",
       "    var fig = this\n",
       "    el.on(\"remove\", function(){\n",
       "\tfig.close_ws(fig, {});\n",
       "    });\n",
       "}\n",
       "\n",
       "mpl.figure.prototype._canvas_extra_style = function(el){\n",
       "    // this is important to make the div 'focusable\n",
       "    el.attr('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",
       "    }\n",
       "    else {\n",
       "        // location in version 2\n",
       "        IPython.keyboard_manager.register_events(el);\n",
       "    }\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",
       "    // 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",
       "\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('matplotlib', mpl.mpl_figure_comm);\n",
       "}\n"
      ],
      "text/plain": [
       "<IPython.core.display.Javascript object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAgAElEQVR4nOzdeXwTdf7H8U9SSilHoYWWGwq4oKL7W111VbzXdT3X3fVGUcRdL9xVvM8lqCCKt4iAIpcILfdVSjlKuVtKua+WlkIphd6lpXf7/v0xTQqmpQ2T5DtJ3s/HI4/HEjLz/YZ+V15MMjMiRERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERETkJUwi0l1Egvjggw8++OCDD496dBft73Eih3UXEfDBBx988MEHHx756C5EFyBIRJCRkYGioiKlj+HDhzf8e+npKBLB8RaC+VPeVz5Pl71PL3vwfXrXg+/Tux6+8D69/T1mZGRYAzBIcUeQhwoSERQVFUG1ESNGNPwbeXmACIpamhD960funZQLNPo+vQzfp3fh+/QuvvA+vf09FhUVMQBJF48JwMKWJqz49UP3TsoFvP0/SlZ8n96F79O7+ML79Pb3yAAkvQwTgNHR0Q3/Rm4uIIKCABOiZ3l+ADb6Pr0M36d34fv0Lr7wPr39PTIASS/DBGCj6gIwP8CEFb+MUj0bIiIi5RiApJdnBeBMi+rZEBERKccAJL2MH4A5OYAI8gJMiJo5UvVsiIgMr6ysTPlZqnzof5SVlTX6M2YAkl4eE4C5rcxYwQAkIjqvsrIydOnSRfW16fhwwqNLly6NRiADkPQyfgBmZwMiyGllRtSM/6meDRGRoVnDwAjXd+Xjwh/W6/w19vczA5D08pgAzA40I2r6B6pnQ0RkaNYwMPR/16lJTf0cGYCkl8cE4KlAM5YzAImIzosB6B0YgORqxg/AU6cAEZwMNCNq2vuqZ0NEZGgMQO/AACRX85gAzGrth+VT31M9GyIiQ2MAegcGILma8QPw5EkGIBFRM3lrAFosFpjN5vO+Zt26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\">"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7f81907c5a58>"
      ]
     },
     "execution_count": 157,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "idx_min = abs(qc - 40).argmin()\n",
    "idx_max = (Ic[numpy.logical_and(qc>10,qc<20)]).argmax() + (qc<10).sum()\n",
    "print(idx_min, idx_max)\n",
    "print(Ic[idx_min],Ic[idx_max], Ic[idx_max]/Ic[idx_min])\n",
    "Ic_scaled = (Ic-Ic[idx_min])/(Ic[idx_max]-Ic[idx_min])\n",
    "plot(qc, Ic_scaled , label=\"id28\")\n",
    "legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "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.4.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}