ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ Yc@@sdZddlmZddlZddlZddlmZddlmZm Z dZ de fd YZ e ed rd Zn d Zde fdYZde fdYZd e fdYZdS(s raven.events ~~~~~~~~~~~~ :copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details. :license: BSD, see LICENSE for more details. i(tabsolute_importN(t to_unicode(tget_stack_infotiter_traceback_framest BaseEventt ExceptiontMessagetQuerycB@s,eZdZdZdZdZRS(cC@s||_tjt|_dS(N(tclienttloggingt getLoggert__name__tlogger(tselfR((s=/opt/alt/python27/lib/python2.7/site-packages/raven/events.pyt__init__s cC@s tdS(N(tNotImplementedError(R tdata((s=/opt/alt/python27/lib/python2.7/site-packages/raven/events.pyt to_stringscK@siS(N((R tkwargs((s=/opt/alt/python27/lib/python2.7/site-packages/raven/events.pytcapturescC@s|jj|S(N(Rt transform(R tvalue((s=/opt/alt/python27/lib/python2.7/site-packages/raven/events.pyR s(R t __module__RRRR(((s=/opt/alt/python27/lib/python2.7/site-packages/raven/events.pyRs   t__suppress_context__cc@s|V|\}}}t}|j|xltr|jrH|j}n |j}||kraPn|j||dkr~Pnt|||jfVq-WdS(s Return a generator iterator over an exception's chain. The exceptions are yielded from outermost to innermost (i.e. last to first when viewing a stack trace). N( tsettaddtTrueRt __cause__t __context__tNonettypet __traceback__(texc_infotexc_typetexct exc_tracebacktcontext((s=/opt/alt/python27/lib/python2.7/site-packages/raven/events.pyt_chained_exceptions(s         cc@s |VdS(N((R ((s=/opt/alt/python27/lib/python2.7/site-packages/raven/events.pyR%CscB@s2eZdZdZdZdZddZRS(s Exceptions store the following metadata: - value: 'My exception value' - type: 'ClassName' - module '__builtin__' (i.e. __builtin__.TypeError) - frames: a list of serialized frames (see _get_traceback_frames) t exceptioncC@s=||jdd}|dr5d|d|dfS|dS(NtvaluesiRs%s: %sR(tname(R RR"((s=/opt/alt/python27/lib/python2.7/site-packages/raven/events.pyRTs cC@stt|d|jd|jj}t|dd }|rNt|}nt|dd}it|d6t|d6t|d6|d 6S( sH Convert exception info to a value for the values list. t transformertcapture_localsRR s RRtmodulet stacktraceN( RRRRR*tgetattrRtstrR(R R!t exc_valueR#t stack_infot exc_module((s=/opt/alt/python27/lib/python2.7/site-packages/raven/events.pyt _get_valueZs     cK@s| s|tkr"tj}n|s7tdng}x3t|D]%}|j|}|jd|qJWi|jdtj d6i|d6|j 6S(NsNo exception founditlevelR'( RtsysR t ValueErrorR%R2tinserttgetR tERRORR((R R RR'R((s=/opt/alt/python27/lib/python2.7/site-packages/raven/events.pyRpsN(R Rt__doc__R(RR2RR(((s=/opt/alt/python27/lib/python2.7/site-packages/raven/events.pyRGs    cB@s,eZdZdZdZdddZRS(s{ Messages store the following metadata: - message: 'My message from %s about %s' - params: ('foo', 'bar') ssentry.interfaces.MessagecC@s||jdS(Ntmessage(R((R R((s=/opt/alt/python27/lib/python2.7/site-packages/raven/events.pyRscK@s]t|}ii|d6|j|d6|d6|j6}d|krY|pO||ds    ;