extends ../layouts/basic

block variables
    - var pageTitle = 'Security'

block extra_head
    title Security - Apache ECharts

block content
    nav(class='navbar navbar-default navbar-fixed-top', role="navigation")
        include ./nav

    .page-main
        .page-info
            .container
                h1 Security
                p.page-info-echarts Apache ECharts<sup>TM</sup>

        .page-content#maillist
            .page-nav
            .container
                p The Apache ECharts<sup>TM</sup> takes a rigorous standpoint in annihilating the security issues in its software projects. Apache ECharts is highly sensitive and forthcoming to issues pertaining to its features and functionality.
                p If you have apprehensions regarding ECharts's security or you discover vulnerability or potential threat, don't hesitate to get in touch with the <a href="http://www.apache.org/security/" target="_blank">Apache Security Team</a> by dropping a mail at <a href="mailto:security@apache.org">security@apache.org</a>. In the mail, specify the project name ECharts with the description of the issue or potential threat. You are also urged to recommend the way to reproduce and replicate the issue. The security team and the ECharts community will get back to you after assessing and analysing the findings.
                p PLEASE PAY ATTENTION to report the security issue on the security email before disclosing it on public domain.

        include ../components/footer

block extra_js
    script(type='text/javascript').
        document.getElementById('nav-others').className = 'active';
