'Match and store Fenced Code Blocks in the HtmlStash.'

def run(self, lines):

    if (not self.checked_for_codehilite):
        for ext in self.markdown.registeredExtensions:
            if isinstance(ext, CodeHiliteExtension):
                self.codehilite_conf = ext.config
                break
        self.checked_for_codehilite = True
    text = u'\n'.join(lines)
    while 1:
        m = self.FENCED_BLOCK_RE.search(text)
        if m:
            lang = u''
            if m.group(u'lang'):
                lang = (self.LANG_TAG % m.group(u'lang'))
            if self.codehilite_conf:
                highliter = CodeHilite(m.group(u'code'), linenums=self.codehilite_conf[u'linenums'][0], guess_lang=self.codehilite_conf[u'guess_lang'][0], css_class=self.codehilite_conf[u'css_class'][0], style=self.codehilite_conf[u'pygments_style'][0], lang=(m.group(u'lang') or None), noclasses=self.codehilite_conf[u'noclasses'][0], hl_lines=parse_hl_lines(m.group(u'hl_lines')))
                code = highliter.hilite()
            else:
                code = (self.CODE_WRAP % (lang, self._escape(m.group(u'code'))))
            placeholder = self.markdown.htmlStash.store(code, safe=True)
            text = (u'%s\n%s\n%s' % (text[:m.start()], placeholder, text[m.end():]))
        else:
            break
    return text.split(u'\n')
