{% if paginator.route is empty and app.request.attributes.has('_route') %}
    {% do paginator.setRoute(app.request.attributes.get('_route')) %}
{% endif %}
{% if paginator.hasToPaginate %}
    <nav aria-label="{% trans %}Page navigation{% endtrans %}">
        <ul class="pagination justify-content-center flex-wrap{# flex-wrap class is required for responsive behaviour, see https://github.com/twbs/bootstrap/issues/23504 #}">
            {% do paginator.setRouteParameter('page', 1) %}
            <li class="page-item">
                <a class="page-link" title="{% trans %}First page{% endtrans %}" href="{{ path(paginator.route, paginator.routeParameters) }}">
                    <i class="fas fa-angle-double-left"></i>
                </a>
            </li>
            {% if paginator.hasPreviousPage %}
                {% do paginator.setRouteParameter('page', paginator.previousPage) %}
                <li class="page-item">
                    <a class="page-link" title="{% trans %}Previous page{% endtrans %}" href="{{ path(paginator.route, paginator.routeParameters) }}">
                        <i class="fas fw fa-arrow-left"></i>
                    </a>
                </li>
            {% else %}
                <li class="page-item disabled">
                    <a class="page-link" title="{% trans %}Previous page{% endtrans %}" href="#" aria-label="{% trans %}Previous page{% endtrans %}">
                        <span aria-hidden="true"><i class="fas fw fa-arrow-left"></i></span>
                    </a>
                </li>
            {% endif %}

            {% for i in 1..paginator.lastPage %}
                {% do paginator.setRouteParameter('page', i) %}
                {% if i == paginator.currentPage %}
                    <li class="page-item active" aria-current="page">
                        <a class="page-link" href="{{ path(paginator.route, paginator.routeParameters) }}">{{ i }} <span class="sr-only">{{ 'paginator.current'|trans }}</span></a>
                    </li>
                {% else %}
                    <li class="page-item">
                        <a class="page-link" href="{{ path(paginator.route, paginator.routeParameters) }}">{{ i }}</a>
                    </li>
                {% endif %}
            {% endfor %}

            {% if paginator.hasNextPage %}
                {% do paginator.setRouteParameter('page', paginator.nextPage) %}
                <li class="page-item">
                    <a class="page-link" title="{% trans %}Next page{% endtrans %}" href="{{ path(paginator.route, paginator.routeParameters) }}">
                        <i class="fas fw fa-arrow-right"></i>
                    </a>
                </li>
            {% else %}
                <li class="page-item disabled">
                    <a class="page-link" title="{% trans %}Next page{% endtrans %}" href="#" aria-label="{% trans %}Next page{% endtrans %}">
                        <span aria-hidden="true"><i class="fas fw fa-arrow-right"></i></span>
                    </a>
                </li>
            {% endif %}
            {% do paginator.setRouteParameter('page', paginator.lastPage) %}
            <li class="page-item">
                <a class="page-link" title="{% trans %}Last page{% endtrans %}" href="{{ path(paginator.route, paginator.routeParameters) }}">
                    <i class="fas fa-angle-double-right"></i>
                </a>
            </li>
        </ul>
    </nav>
{% endif %}
