JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrB o] i@sdZddlmZddlZddlZyddlmZddlmZWn$e k r`ddl mZmZYnXddl m Z ddl mZdd l mZmZdd l mZmZyeWnek reZYnXyeWnek reZYnXyeWnek reefZYnXd d d ddddgZedejejBZedejZedejj Z!edejj Z"ddZ#edj$Z%edejejBZ&e 'dZ(e j'ddeidZ)Gdd d e*Z+e+Z,e,j-Z-edejed ejgZ.d!d"d#d$d%d&gZ/ed'ejed(ejed)gZ0d*gZ1e.e/e0e1fd+dZ2d,d-Z3d.dZ4e2je4_d"d!d#gZ5d/gZ6d0e5e6ed1fd2dZ7d3dZ8d4d5Z9ed6ejZ:d7d8Z;dS)9zcA cleanup tool for HTML. Removes unwanted tags and content. See the `Cleaner` class for details. )absolute_importN)urlsplit) unquote_plus)rr)etree)defs) fromstringXHTML_NAMESPACE) xhtml_to_html_transform_result clean_htmlcleanCleanerautolink autolink_html word_breakword_break_htmlzexpression\s*\(.*?\)z @\s*importz^data:image/.+;base64z<(?:javascript|jscript|livescript|vbscript|data|about|mocha):cCst|r dSt|S)N)_is_image_dataurl_is_possibly_malicious_scheme)srB/opt/alt/python37/lib64/python3.7/site-packages/lxml/html/clean.py_is_javascript_schemeNsrz[\s\x00-\x08\x0B\x0C\x0E-\x19]+z\[if[\s\n\r]+.*?][\s\n\r]*>zdescendant-or-self::*[@style]zdescendant-or-self::a [normalize-space(@href) and substring(normalize-space(@href),1,1) != '#'] |descendant-or-self::x:a[normalize-space(@href) and substring(normalize-space(@href),1,1) != '#']x)Z namespacesc @seZdZdZdZdZdZdZdZdZ dZ dZ dZ dZ dZdZdZdZdZdZdZdZejZdZdZddhZdd Zed d d d gd d d d dZddZddZddZ ddZ!ddZ"d"ddZ#ddZ$e%&de%j'j(Z)ddZ*d d!Z+dS)#r a Instances cleans the document of each of the possible offending elements. The cleaning is controlled by attributes; you can override attributes in a subclass, or set them in the constructor. ``scripts``: Removes any ``