Ñò
.-~Mc           @   sG  d  d k  Z  d  d k Z d  d k Z d  d k Z d  d k Z d  d k l Z d  d k l Z l	 Z	 l
 Z
 d  d k l Z l Z l Z l Z d  d k l Z l Z d  d k l Z d  d k l Z d  d k l Z l Z e i d	 ƒ Z d
 „  Z d „  Z d „  Z d „  Z d e  f d „  ƒ  YZ! d „  Z" d „  Z# d Z$ d Z% d Z& d S(   iÿÿÿÿN(   t   settings(   t   HttpResponset   HttpResponseServerErrort   HttpResponseNotFound(   t   Templatet   Contextt   TemplateDoesNotExistt   TemplateSyntaxError(   t   force_escapet   pprint(   t   escape(   t   import_module(   t   smart_unicodet	   smart_strs*   SECRET|PASSWORD|PROFANITIES_LIST|SIGNATUREc         c   s[   d V|  i  d ƒ } x1 | d j o# | d V|  i  d | d ƒ } q Wt |  ƒ d Vd  S(   Ni    s   
i   (   t   findt   len(   t   template_sourcet   p(    (    s<   /usr/local/lib/python2.6/dist-packages/django/views/debug.pyt   linebreak_iter   s     	c         C   st   yT t  i |  ƒ o
 d } n7 t | t ƒ o  t d „  | i ƒ  Dƒ ƒ } n | } Wn t j
 o | } n X| S(   sš   Cleanse an individual setting key/value of sensitive content.

    If the value is a dictionary, recursively cleanse the keys in
    that dictionary.
    s   ********************c         s   s.   x' |  ]  \ } } | t  | | ƒ f Vq Wd  S(   N(   t   cleanse_setting(   t   .0t   kt   v(    (    s<   /usr/local/lib/python2.6/dist-packages/django/views/debug.pys	   <genexpr>%   s   	 (   t   HIDDEN_SETTINGSt   searcht
   isinstancet   dictt   itemst	   TypeError(   t   keyt   valuet   cleansed(    (    s<   /usr/local/lib/python2.6/dist-packages/django/views/debug.pyR      s    
 
c          C   sN   h  }  xA t  t ƒ D]3 } | i ƒ  o  t | t t | ƒ ƒ |  | <q q W|  S(   sQ   Returns a dictionary of the settings module, with sensitive settings blurred out.(   t   dirR    t   isupperR   t   getattr(   t   settings_dictR   (    (    s<   /usr/local/lib/python2.6/dist-packages/django/views/debug.pyt   get_safe_settings-   s     $c         C   s1   t  |  | | | ƒ } | i ƒ  } t | d d ƒS(   s‰   
    Create a technical server error response. The last three arguments are
    the values returned from sys.exc_info() and friends.
    t   mimetypes	   text/html(   t   ExceptionReportert   get_traceback_htmlR   (   t   requestt   exc_typet	   exc_valuet   tbt   reportert   html(    (    s<   /usr/local/lib/python2.6/dist-packages/django/views/debug.pyt   technical_500_response5   s    R&   c           B   sM   e  Z d  Z e d „ Z d „  Z d „  Z d d d „ Z d „  Z	 d „  Z
 RS(   sE   
    A class to organize and coordinate reporting on exceptions.
    c         C   s‹   | |  _  | |  _ | |  _ | |  _ | |  _ d  |  _ t |  _ d  |  _	 t
 |  i t ƒ o, t d |  i ƒ |  _ t |  i ƒ |  _ n d  S(   Ns   Deprecated String Exception: %r(   R(   R)   R*   R+   t   is_emailt   Nonet   template_infot   Falset   template_does_not_existt   loader_debug_infoR   t
   basestringt	   Exceptiont   type(   t   selfR(   R)   R*   R+   R/   (    (    s<   /usr/local/lib/python2.6/dist-packages/django/views/debug.pyt   __init__B   s    								c         C   sú  |  i  oLt |  i  t ƒ o9d d k l } t |  _ g  |  _ x| D]} yƒ t | i	 ƒ } t
 | d ƒ o | i } n
 | i } g  } | t |  i ƒ ƒ D]' } | h | d 6t i i | ƒ d 6qž ~ } Wn t t f j
 o g  } n Xt
 | d ƒ o | i	 d | i i } n | i	 d | i } |  i i h | d 6| d 6ƒ qF Wn t i o4 t
 |  i d	 ƒ o! t |  i t ƒ o |  i ƒ  n |  i ƒ  }	 xv t |	 ƒ D]h \ }
 } d
 | j oE g  } | d
 D]% \ } } | | t t | ƒ ƒ f qÕ~ | d
 <n | |	 |
 <q­Wd } |  i  o« t |  i  t ƒ o˜ t  |  i d d( ƒ } t  |  i d d( ƒ } | d( j	 o] | d( j	 oP |  i i" d } t# | t$ | d d ƒ t% | d t& | ƒ ƒ !d d d ƒ} qÔn d d k' l( } t) t* d d ƒ} t+ h |  i, d 6| d 6|	 d 6|  i- d 6t. ƒ  d 6t/ i0 d 6d t/ i1 d d !d 6t2 i2 i3 ƒ  d 6| ƒ  d  6t/ i d! 6|  i4 d" 6|  i d# 6|  i d$ 6ƒ } |  i  o |  i  i | d% <n |  i o t# |  i d d ƒ| d& <n |	 o |	 d | d' <n | i5 | ƒ S()   s   Return HTML code for traceback.iÿÿÿÿ(   t   template_source_loaderst	   __class__t   namet   existst   .t   loadert	   templatest   sourcet   varst    t   startt   endi   i   i    t   asciit   errorst   replace(   t   get_versions   Technical 500 templateR/   t   unicode_hintt   framesR(   R    t   sys_executables   %d.%d.%di   t   sys_version_infot   server_timet   django_version_infot   sys_pathR1   R3   R4   t   exception_typet   exception_valuet	   lastframeN(6   R)   t
   issubclassR   t   django.template.loaderR:   t   TrueR3   R4   R   t
   __module__t   hasattrt   get_template_sourcest   strR*   t   ost   pathR=   t   ImportErrort   AttributeErrorR;   t   __name__t   appendR    t   TEMPLATE_DEBUGR   R   t   get_template_exception_infot   get_traceback_framest	   enumerateR   R	   t   UnicodeErrorR"   R0   t   argsR   t   maxt   minR   t   djangoRI   R   t   TECHNICAL_500_TEMPLATER   R/   R(   R$   t   syst
   executablet   version_infot   datetimet   nowR1   t   render(   R8   R:   R?   t   modulet   source_list_funct   _[1]t   tt   template_listt   loader_nameRK   t   it   framet   _[2]R   R   RJ   RD   RE   t   unicode_strRI   t   c(    (    s<   /usr/local/lib/python2.6/dist-packages/django/views/debug.pyR'   R   sx    		 	G ED









c      
   C   s  |  i  i \ } \ } } | i ƒ  } d } d } d } g  } d }	 }
 } x£ t t | ƒ ƒ D] \ } } | | j oP | | j oC | } t | | | !ƒ }	 t | | | !ƒ }
 t | | | !ƒ } n | i | t | | | !ƒ f ƒ | } q] Wt | ƒ } t d | | ƒ } t	 | | d | ƒ } h
 |  i  i
 d d 6| | | !d 6|	 d 6|
 d 6| d	 6| d
 6| d 6| d 6| d 6| i d 6|  _ d  S(   Ni
   i    RC   i   t   messaget   source_linest   beforet   duringt   aftert   topt   bottomt   totalt   lineR<   (   R*   RA   t   reloadRd   R   R
   R`   R   Rg   Rh   Rf   R<   R1   (   R8   t   originRD   RE   R   t   context_linesR„   t   uptoR}   R~   R   R€   t   numt   nextRƒ   R   R‚   (    (    s<   /usr/local/lib/python2.6/dist-packages/django/views/debug.pyRb   ™   s<      
c         C   sç  d } | d j	 o@ t | d ƒ o0 | i | ƒ } | d j	 o | i ƒ  } qS n | d j oN y. t | ƒ } z | i ƒ  } Wd | i ƒ  XWq® t t f j
 o q® Xn | d j o d g  d g  f Sd } x? | d  D]3 }	 t	 i
 d |	 ƒ }
 |
 o |
 i d ƒ } PqÝ qÝ Wg  } | D] } | t | | d ƒ q~ } t d | | ƒ } | | } g  } | | | !D] }	 | |	 i d	 ƒ qp~ } | | i d	 ƒ } g  } | | d | !D] }	 | |	 i d	 ƒ q¸~ } | | | | f S(
   s™   
        Returns context_lines before and after lineno from file.
        Returns (pre_context_lineno, pre_context, context_line, post_context).
        t
   get_sourceNRF   i   s   coding[:=]\s*([-\w.]+)i   RH   i    s   
(   R0   RX   R‹   t
   splitlinest   opent	   readlinest   closet   OSErrort   IOErrort   reR   t   groupt   unicodeRg   t   strip(   R8   t   filenamet   linenoR‡   R?   t   module_nameRA   t   ft   encodingR„   t   matchRs   t   slinet   lower_boundt   upper_boundRy   t   pre_contextt   context_linet   _[3]t   post_context(    (    s<   /usr/local/lib/python2.6/dist-packages/django/views/debug.pyt   _get_lines_from_file»   s:    	 	-
15c         C   sQ  g  } |  i  } x;| d  j	 o-| i i i d ƒ o | i } q n | i i i } | i i i } | i	 d } | i i
 i d ƒ } | i i
 i d ƒ } |  i | | d | | ƒ \ } }	 }
 } | d  j	 oq | i h
 | d 6| d 6| d 6| d d	 6| i i i ƒ  d
 6t | ƒ d 6|	 d 6|
 d 6| d 6| d d 6ƒ n | i } q W| S(   Nt   __traceback_hide__i   t
   __loader__R_   i   R+   R–   t   functionR—   RB   t   idRŸ   R    R¢   t   pre_context_lineno(   R+   R0   t   tb_framet   f_localst   gett   tb_nextt   f_codet   co_filenamet   co_namet	   tb_linenot	   f_globalsR£   R`   R   R§   (   R8   RK   R+   R–   R¦   R—   R?   R˜   R¨   RŸ   R    R¢   (    (    s<   /usr/local/lib/python2.6/dist-packages/django/views/debug.pyRc   ä   s6    	 	'	c      	   C   s‘   d d k  } |  i ƒ  } g  } | D]) } | | d | d | d | d f q# ~ } d g } | | i | ƒ 7} | | i |  i |  i ƒ 7} | S(   sJ   
        Return the same data as from traceback.format_exception.
        iÿÿÿÿNR–   R—   R¦   R    s#   Traceback (most recent call last):
(   t	   tracebackRc   t   format_listt   format_exception_onlyR)   R*   (   R8   R²   RK   Rs   R™   R+   t   list(    (    s<   /usr/local/lib/python2.6/dist-packages/django/views/debug.pyt   format_exception  s    =	N(   R_   RW   t   __doc__R2   R9   R'   Rb   R0   R£   Rc   R¶   (    (    (    s<   /usr/local/lib/python2.6/dist-packages/django/views/debug.pyR&   >   s   	G	")	 c      
   C   s  y | i  d d } Wn" t t t f j
 o g  } n X| p t |  ƒ St |  d t i ƒ } t | t	 i
 ƒ o | i } n t t d d ƒ} t h | d 6t i d 6|  i d d 6| d	 6t | d
 d ƒd 6|  d 6t ƒ  d 6ƒ } t | i | ƒ d d ƒS(   sK   Create a technical 404 error response. The exception should be the Http404.i    t   triedt   urlconfR<   s   Technical 404 templatet   root_urlconfi   t   request_patht   urlpatternsRG   RH   t   reasonR(   R    R%   s	   text/html(   Rf   t
   IndexErrorR   t   KeyErrort   empty_urlconfR"   R    t   ROOT_URLCONFR   t   typest
   ModuleTypeR_   R   t   TECHNICAL_404_TEMPLATER   t	   path_infoR   R$   R   Rp   (   R(   t	   exceptionR¸   R¹   Rt   R{   (    (    s<   /usr/local/lib/python2.6/dist-packages/django/views/debug.pyt   technical_404_response  s&    
c         C   sN   t  t d d ƒ} t h t i i d ƒ d d 6ƒ } t | i | ƒ d d ƒS(   s+   Create an empty URLconf 404 error response.R<   s   Empty URLConf templateR>   i    t   project_nameR%   s	   text/html(   R   t   EMPTY_URLCONF_TEMPLATER   R    t   SETTINGS_MODULEt   splitR   Rp   (   R(   Rt   R{   (    (    s<   /usr/local/lib/python2.6/dist-packages/django/views/debug.pyRÀ   ,  s    s@  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <meta name="robots" content="NONE,NOARCHIVE">
  <title>{% if exception_type %}{{ exception_type }}{% else %}Report{% endif %}{% if request %} at {{ request.path_info|escape }}{% endif %}</title>
  <style type="text/css">
    html * { padding:0; margin:0; }
    body * { padding:10px 20px; }
    body * * { padding:0; }
    body { font:small sans-serif; }
    body>div { border-bottom:1px solid #ddd; }
    h1 { font-weight:normal; }
    h2 { margin-bottom:.8em; }
    h2 span { font-size:80%; color:#666; font-weight:normal; }
    h3 { margin:1em 0 .5em 0; }
    h4 { margin:0 0 .5em 0; font-weight: normal; }
    code, pre { font-size: 100%; }
    table { border:1px solid #ccc; border-collapse: collapse; width:100%; background:white; }
    tbody td, tbody th { vertical-align:top; padding:2px 3px; }
    thead th { padding:1px 6px 1px 3px; background:#fefefe; text-align:left; font-weight:normal; font-size:11px; border:1px solid #ddd; }
    tbody th { width:12em; text-align:right; color:#666; padding-right:.5em; }
    table.vars { margin:5px 0 2px 40px; }
    table.vars td, table.req td { font-family:monospace; }
    table td.code { width:100%; }
    table td.code pre { overflow:hidden; }
    table.source th { color:#666; }
    table.source td { font-family:monospace; white-space:pre; border-bottom:1px solid #eee; }
    ul.traceback { list-style-type:none; }
    ul.traceback li.frame { padding-bottom:1em; }
    div.context { padding:10px 0; overflow:hidden; }
    div.context ol { padding-left:30px; margin:0 10px; list-style-position: inside; }
    div.context ol li { font-family:monospace; white-space:pre; color:#666; cursor:pointer; }
    div.context ol li pre { display:inline; }
    div.context ol.context-line li { color:black; background-color:#ccc; }
    div.context ol.context-line li span { position:absolute; right:32px; }
    div.commands { margin-left: 40px; }
    div.commands a { color:black; text-decoration:none; }
    #summary { background: #ffc; }
    #summary h2 { font-weight: normal; color: #666; }
    #explanation { background:#eee; }
    #template, #template-not-exist { background:#f6f6f6; }
    #template-not-exist ul { margin: 0 0 0 20px; }
    #unicode-hint { background:#eee; }
    #traceback { background:#eee; }
    #requestinfo { background:#f6f6f6; padding-left:120px; }
    #summary table { border:none; background:transparent; }
    #requestinfo h2, #requestinfo h3 { position:relative; margin-left:-100px; }
    #requestinfo h3 { margin-bottom:-1em; }
    .error { background: #ffc; }
    .specific { color:#cc3300; font-weight:bold; }
    h2 span.commands { font-size:.7em;}
    span.commands a:link {color:#5E5694;}
    pre.exception_value { font-family: sans-serif; color: #666; font-size: 1.5em; margin: 10px 0 10px 0; }
  </style>
  {% if not is_email %}
  <script type="text/javascript">
  //<!--
    function getElementsByClassName(oElm, strTagName, strClassName){
        // Written by Jonathan Snook, http://www.snook.ca/jon; Add-ons by Robert Nyman, http://www.robertnyman.com
        var arrElements = (strTagName == "*" && document.all)? document.all :
        oElm.getElementsByTagName(strTagName);
        var arrReturnElements = new Array();
        strClassName = strClassName.replace(/\-/g, "\-");
        var oRegExp = new RegExp("(^|\s)" + strClassName + "(\s|$)");
        var oElement;
        for(var i=0; i<arrElements.length; i++){
            oElement = arrElements[i];
            if(oRegExp.test(oElement.className)){
                arrReturnElements.push(oElement);
            }
        }
        return (arrReturnElements)
    }
    function hideAll(elems) {
      for (var e = 0; e < elems.length; e++) {
        elems[e].style.display = 'none';
      }
    }
    window.onload = function() {
      hideAll(getElementsByClassName(document, 'table', 'vars'));
      hideAll(getElementsByClassName(document, 'ol', 'pre-context'));
      hideAll(getElementsByClassName(document, 'ol', 'post-context'));
      hideAll(getElementsByClassName(document, 'div', 'pastebin'));
    }
    function toggle() {
      for (var i = 0; i < arguments.length; i++) {
        var e = document.getElementById(arguments[i]);
        if (e) {
          e.style.display = e.style.display == 'none' ? 'block' : 'none';
        }
      }
      return false;
    }
    function varToggle(link, id) {
      toggle('v' + id);
      var s = link.getElementsByTagName('span')[0];
      var uarr = String.fromCharCode(0x25b6);
      var darr = String.fromCharCode(0x25bc);
      s.innerHTML = s.innerHTML == uarr ? darr : uarr;
      return false;
    }
    function switchPastebinFriendly(link) {
      s1 = "Switch to copy-and-paste view";
      s2 = "Switch back to interactive view";
      link.innerHTML = link.innerHTML == s1 ? s2 : s1;
      toggle('browserTraceback', 'pastebinTraceback');
      return false;
    }
    //-->
  </script>
  {% endif %}
</head>
<body>
<div id="summary">
  <h1>{% if exception_type %}{{ exception_type }}{% else %}Report{% endif %}{% if request %} at {{ request.path_info|escape }}{% endif %}</h1>
  <pre class="exception_value">{% if exception_value %}{{ exception_value|force_escape }}{% else %}No exception supplied{% endif %}</pre>
  <table class="meta">
{% if request %}
    <tr>
      <th>Request Method:</th>
      <td>{{ request.META.REQUEST_METHOD }}</td>
    </tr>
    <tr>
      <th>Request URL:</th>
      <td>{{ request.build_absolute_uri|escape }}</td>
    </tr>
{% endif %}
    <tr>
      <th>Django Version:</th>
      <td>{{ django_version_info }}</td>
    </tr>
{% if exception_type %}
    <tr>
      <th>Exception Type:</th>
      <td>{{ exception_type }}</td>
    </tr>
{% endif %}
{% if exception_type and exception_value %}
    <tr>
      <th>Exception Value:</th>
      <td><pre>{{ exception_value|force_escape }}</pre></td>
    </tr>
{% endif %}
{% if lastframe %}
    <tr>
      <th>Exception Location:</th>
      <td>{{ lastframe.filename|escape }} in {{ lastframe.function|escape }}, line {{ lastframe.lineno }}</td>
    </tr>
{% endif %}
    <tr>
      <th>Python Executable:</th>
      <td>{{ sys_executable|escape }}</td>
    </tr>
    <tr>
      <th>Python Version:</th>
      <td>{{ sys_version_info }}</td>
    </tr>
    <tr>
      <th>Python Path:</th>
      <td><pre>{{ sys_path|pprint }}</pre></td>
    </tr>
    <tr>
      <th>Server time:</th>
      <td>{{server_time|date:"r"}}</td>
    </tr>
  </table>
</div>
{% if unicode_hint %}
<div id="unicode-hint">
    <h2>Unicode error hint</h2>
    <p>The string that could not be encoded/decoded was: <strong>{{ unicode_hint|force_escape }}</strong></p>
</div>
{% endif %}
{% if template_does_not_exist %}
<div id="template-not-exist">
    <h2>Template-loader postmortem</h2>
    {% if loader_debug_info %}
        <p>Django tried loading these templates, in this order:</p>
        <ul>
        {% for loader in loader_debug_info %}
            <li>Using loader <code>{{ loader.loader }}</code>:
                <ul>{% for t in loader.templates %}<li><code>{{ t.name }}</code> (File {% if t.exists %}exists{% else %}does not exist{% endif %})</li>{% endfor %}</ul>
            </li>
        {% endfor %}
        </ul>
    {% else %}
        <p>Django couldn't find any templates because your <code>TEMPLATE_LOADERS</code> setting is empty!</p>
    {% endif %}
</div>
{% endif %}
{% if template_info %}
<div id="template">
   <h2>Template error</h2>
   <p>In template <code>{{ template_info.name }}</code>, error at line <strong>{{ template_info.line }}</strong></p>
   <h3>{{ template_info.message }}</h3>
   <table class="source{% if template_info.top %} cut-top{% endif %}{% ifnotequal template_info.bottom template_info.total %} cut-bottom{% endifnotequal %}">
   {% for source_line in template_info.source_lines %}
   {% ifequal source_line.0 template_info.line %}
       <tr class="error"><th>{{ source_line.0 }}</th>
       <td>{{ template_info.before }}<span class="specific">{{ template_info.during }}</span>{{ template_info.after }}</td></tr>
   {% else %}
      <tr><th>{{ source_line.0 }}</th>
      <td>{{ source_line.1 }}</td></tr>
   {% endifequal %}
   {% endfor %}
   </table>
</div>
{% endif %}
{% if frames %}
<div id="traceback">
  <h2>Traceback <span class="commands">{% if not is_email %}<a href="#" onclick="return switchPastebinFriendly(this);">Switch to copy-and-paste view</a></span>{% endif %}</h2>
  {% autoescape off %}
  <div id="browserTraceback">
    <ul class="traceback">
      {% for frame in frames %}
        <li class="frame">
          <code>{{ frame.filename|escape }}</code> in <code>{{ frame.function|escape }}</code>

          {% if frame.context_line %}
            <div class="context" id="c{{ frame.id }}">
              {% if frame.pre_context and not is_email %}
                <ol start="{{ frame.pre_context_lineno }}" class="pre-context" id="pre{{ frame.id }}">{% for line in frame.pre_context %}<li onclick="toggle('pre{{ frame.id }}', 'post{{ frame.id }}')"><pre>{{ line|escape }}</pre></li>{% endfor %}</ol>
              {% endif %}
              <ol start="{{ frame.lineno }}" class="context-line"><li onclick="toggle('pre{{ frame.id }}', 'post{{ frame.id }}')"><pre>{{ frame.context_line|escape }}</pre>{% if not is_email %} <span>...</span>{% endif %}</li></ol>
              {% if frame.post_context and not is_email  %}
                <ol start='{{ frame.lineno|add:"1" }}' class="post-context" id="post{{ frame.id }}">{% for line in frame.post_context %}<li onclick="toggle('pre{{ frame.id }}', 'post{{ frame.id }}')"><pre>{{ line|escape }}</pre></li>{% endfor %}</ol>
              {% endif %}
            </div>
          {% endif %}

          {% if frame.vars %}
            <div class="commands">
                {% if is_email %}
                    <h2>Local Vars</h2>
                {% else %}
                    <a href="#" onclick="return varToggle(this, '{{ frame.id }}')"><span>&#x25b6;</span> Local vars</a>
                {% endif %}
            </div>
            <table class="vars" id="v{{ frame.id }}">
              <thead>
                <tr>
                  <th>Variable</th>
                  <th>Value</th>
                </tr>
              </thead>
              <tbody>
                {% for var in frame.vars|dictsort:"0" %}
                  <tr>
                    <td>{{ var.0|force_escape }}</td>
                    <td class="code"><pre>{{ var.1 }}</pre></td>
                  </tr>
                {% endfor %}
              </tbody>
            </table>
          {% endif %}
        </li>
      {% endfor %}
    </ul>
  </div>
  {% endautoescape %}
  <form action="http://dpaste.com/" name="pasteform" id="pasteform" method="post">
{% if not is_email %}
  <div id="pastebinTraceback" class="pastebin">
    <input type="hidden" name="language" value="PythonConsole">
    <input type="hidden" name="title" value="{{ exception_type|escape }}{% if request %} at {{ request.path_info|escape }}{% endif %}">
    <input type="hidden" name="source" value="Django Dpaste Agent">
    <input type="hidden" name="poster" value="Django">
    <textarea name="content" id="traceback_area" cols="140" rows="25">
Environment:

{% if request %}
Request Method: {{ request.META.REQUEST_METHOD }}
Request URL: {{ request.build_absolute_uri|escape }}
{% endif %}
Django Version: {{ django_version_info }}
Python Version: {{ sys_version_info }}
Installed Applications:
{{ settings.INSTALLED_APPS|pprint }}
Installed Middleware:
{{ settings.MIDDLEWARE_CLASSES|pprint }}

{% if template_does_not_exist %}Template Loader Error:
{% if loader_debug_info %}Django tried loading these templates, in this order:
{% for loader in loader_debug_info %}Using loader {{ loader.loader }}:
{% for t in loader.templates %}{{ t.name }} (File {% if t.exists %}exists{% else %}does not exist{% endif %})
{% endfor %}{% endfor %}
{% else %}Django couldn't find any templates because your TEMPLATE_LOADERS setting is empty!
{% endif %}
{% endif %}{% if template_info %}
Template error:
In template {{ template_info.name }}, error at line {{ template_info.line }}
   {{ template_info.message }}{% for source_line in template_info.source_lines %}{% ifequal source_line.0 template_info.line %}
   {{ source_line.0 }} : {{ template_info.before }} {{ template_info.during }} {{ template_info.after }}
{% else %}
   {{ source_line.0 }} : {{ source_line.1 }}
{% endifequal %}{% endfor %}{% endif %}
Traceback:
{% for frame in frames %}File "{{ frame.filename|escape }}" in {{ frame.function|escape }}
{% if frame.context_line %}  {{ frame.lineno }}. {{ frame.context_line|escape }}{% endif %}
{% endfor %}
Exception Type: {{ exception_type|escape }}{% if request %} at {{ request.path_info|escape }}{% endif %}
Exception Value: {{ exception_value|force_escape }}
</textarea>
  <br><br>
  <input type="submit" value="Share this traceback on a public Web site">
  </div>
</form>
</div>
{% endif %}
{% endif %}

<div id="requestinfo">
  <h2>Request information</h2>

{% if request %}
  <h3 id="get-info">GET</h3>
  {% if request.GET %}
    <table class="req">
      <thead>
        <tr>
          <th>Variable</th>
          <th>Value</th>
        </tr>
      </thead>
      <tbody>
        {% for var in request.GET.items %}
          <tr>
            <td>{{ var.0 }}</td>
            <td class="code"><pre>{{ var.1|pprint }}</pre></td>
          </tr>
        {% endfor %}
      </tbody>
    </table>
  {% else %}
    <p>No GET data</p>
  {% endif %}

  <h3 id="post-info">POST</h3>
  {% if request.POST %}
    <table class="req">
      <thead>
        <tr>
          <th>Variable</th>
          <th>Value</th>
        </tr>
      </thead>
      <tbody>
        {% for var in request.POST.items %}
          <tr>
            <td>{{ var.0 }}</td>
            <td class="code"><pre>{{ var.1|pprint }}</pre></td>
          </tr>
        {% endfor %}
      </tbody>
    </table>
  {% else %}
    <p>No POST data</p>
  {% endif %}
  <h3 id="files-info">FILES</h3>
  {% if request.FILES %}
    <table class="req">
        <thead>
            <tr>
                <th>Variable</th>
                <th>Value</th>
            </tr>
        </thead>
        <tbody>
            {% for var in request.FILES.items %}
                <tr>
                    <td>{{ var.0 }}</td>
                    <td class="code"><pre>{{ var.1|pprint }}</pre></td>
                </tr>
            {% endfor %}
        </tbody>
    </table>
  {% else %}
    <p>No FILES data</p>
  {% endif %}


  <h3 id="cookie-info">COOKIES</h3>
  {% if request.COOKIES %}
    <table class="req">
      <thead>
        <tr>
          <th>Variable</th>
          <th>Value</th>
        </tr>
      </thead>
      <tbody>
        {% for var in request.COOKIES.items %}
          <tr>
            <td>{{ var.0 }}</td>
            <td class="code"><pre>{{ var.1|pprint }}</pre></td>
          </tr>
        {% endfor %}
      </tbody>
    </table>
  {% else %}
    <p>No cookie data</p>
  {% endif %}

  <h3 id="meta-info">META</h3>
  <table class="req">
    <thead>
      <tr>
        <th>Variable</th>
        <th>Value</th>
      </tr>
    </thead>
    <tbody>
      {% for var in request.META.items|dictsort:"0" %}
        <tr>
          <td>{{ var.0 }}</td>
          <td class="code"><pre>{{ var.1|pprint }}</pre></td>
        </tr>
      {% endfor %}
    </tbody>
  </table>
{% else %}
  <p>Request data not supplied</p>
{% endif %}

  <h3 id="settings-info">Settings</h3>
  <h4>Using settings module <code>{{ settings.SETTINGS_MODULE }}</code></h4>
  <table class="req">
    <thead>
      <tr>
        <th>Setting</th>
        <th>Value</th>
      </tr>
    </thead>
    <tbody>
      {% for var in settings.items|dictsort:"0" %}
        <tr>
          <td>{{ var.0 }}</td>
          <td class="code"><pre>{{ var.1|pprint }}</pre></td>
        </tr>
      {% endfor %}
    </tbody>
  </table>

</div>
{% if not is_email %}
  <div id="explanation">
    <p>
      You're seeing this error because you have <code>DEBUG = True</code> in your
      Django settings file. Change that to <code>False</code>, and Django will
      display a standard 500 page.
    </p>
  </div>
{% endif %}
</body>
</html>
s	  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <title>Page not found at {{ request.path_info|escape }}</title>
  <meta name="robots" content="NONE,NOARCHIVE">
  <style type="text/css">
    html * { padding:0; margin:0; }
    body * { padding:10px 20px; }
    body * * { padding:0; }
    body { font:small sans-serif; background:#eee; }
    body>div { border-bottom:1px solid #ddd; }
    h1 { font-weight:normal; margin-bottom:.4em; }
    h1 span { font-size:60%; color:#666; font-weight:normal; }
    table { border:none; border-collapse: collapse; width:100%; }
    td, th { vertical-align:top; padding:2px 3px; }
    th { width:12em; text-align:right; color:#666; padding-right:.5em; }
    #info { background:#f6f6f6; }
    #info ol { margin: 0.5em 4em; }
    #info ol li { font-family: monospace; }
    #summary { background: #ffc; }
    #explanation { background:#eee; border-bottom: 0px none; }
  </style>
</head>
<body>
  <div id="summary">
    <h1>Page not found <span>(404)</span></h1>
    <table class="meta">
      <tr>
        <th>Request Method:</th>
        <td>{{ request.META.REQUEST_METHOD }}</td>
      </tr>
      <tr>
        <th>Request URL:</th>
      <td>{{ request.build_absolute_uri|escape }}</td>
      </tr>
    </table>
  </div>
  <div id="info">
    {% if urlpatterns %}
      <p>
      Using the URLconf defined in <code>{{ urlconf }}</code>,
      Django tried these URL patterns, in this order:
      </p>
      <ol>
        {% for pattern in urlpatterns %}
          <li>
            {% for pat in pattern %}
                {{ pat.regex.pattern }}
                {% if forloop.last and pat.name %}[name='{{ pat.name }}']{% endif %}
            {% endfor %}
          </li>
        {% endfor %}
      </ol>
      <p>The current URL, <code>{{ request_path|escape }}</code>, didn't match any of these.</p>
    {% else %}
      <p>{{ reason }}</p>
    {% endif %}
  </div>

  <div id="explanation">
    <p>
      You're seeing this error because you have <code>DEBUG = True</code> in
      your Django settings file. Change that to <code>False</code>, and Django
      will display a standard 404 page.
    </p>
  </div>
</body>
</html>
s  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en"><head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <meta name="robots" content="NONE,NOARCHIVE"><title>Welcome to Django</title>
  <style type="text/css">
    html * { padding:0; margin:0; }
    body * { padding:10px 20px; }
    body * * { padding:0; }
    body { font:small sans-serif; }
    body>div { border-bottom:1px solid #ddd; }
    h1 { font-weight:normal; }
    h2 { margin-bottom:.8em; }
    h2 span { font-size:80%; color:#666; font-weight:normal; }
    h3 { margin:1em 0 .5em 0; }
    h4 { margin:0 0 .5em 0; font-weight: normal; }
    table { border:1px solid #ccc; border-collapse: collapse; width:100%; background:white; }
    tbody td, tbody th { vertical-align:top; padding:2px 3px; }
    thead th { padding:1px 6px 1px 3px; background:#fefefe; text-align:left; font-weight:normal; font-size:11px; border:1px solid #ddd; }
    tbody th { width:12em; text-align:right; color:#666; padding-right:.5em; }
    ul { margin-left: 2em; margin-top: 1em; }
    #summary { background: #e0ebff; }
    #summary h2 { font-weight: normal; color: #666; }
    #explanation { background:#eee; }
    #instructions { background:#f6f6f6; }
    #summary table { border:none; background:transparent; }
  </style>
</head>

<body>
<div id="summary">
  <h1>It worked!</h1>
  <h2>Congratulations on your first Django-powered page.</h2>
</div>

<div id="instructions">
  <p>Of course, you haven't actually done any work yet. Here's what to do next:</p>
  <ul>
    <li>If you plan to use a database, edit the <code>DATABASES</code> setting in <code>{{ project_name }}/settings.py</code>.</li>
    <li>Start your first app by running <code>python {{ project_name }}/manage.py startapp [appname]</code>.</li>
  </ul>
</div>

<div id="explanation">
  <p>
    You're seeing this message because you have <code>DEBUG = True</code> in your
    Django settings file and you haven't configured any URLs. Get to work!
  </p>
</div>
</body></html>
('   Rn   R[   R’   Rk   RÂ   t   django.confR    t   django.httpR   R   R   t   django.templateR   R   R   R   t   django.template.defaultfiltersR   R	   t   django.utils.htmlR
   t   django.utils.importlibR   t   django.utils.encodingR   R   t   compileR   R   R   R$   R.   t   objectR&   RÇ   RÀ   Rj   RÄ   RÉ   (    (    (    s<   /usr/local/lib/python2.6/dist-packages/django/views/debug.pyt   <module>   s.   "					Ó		ÿ ×H4