Twig Metrics

565 ms Render time
66 Template calls
73 Block calls
62 Macro calls

Render time includes sub-requests rendering time (if any).

Rendered Templates

Template Name & Path Render Count
@Provider/document/default.html.twig templates/bundles/ProviderBundle/document/default.html.twig 1
@Provider/layouts/layout.html.twig templates/bundles/ProviderBundle/layouts/layout.html.twig 1
@Provider/partials/head.html.twig templates/bundles/ProviderBundle/partials/head.html.twig 1
@Provider/partials/head/meta.html.twig templates/bundles/ProviderBundle/partials/head/meta.html.twig 1
@Provider/partials/head/fonts.html.twig templates/bundles/ProviderBundle/partials/head/fonts.html.twig 1
@Provider/partials/head/styles.html.twig templates/bundles/ProviderBundle/partials/head/styles.html.twig 1
@Provider/partials/head/scripts.html.twig templates/bundles/ProviderBundle/partials/head/scripts.html.twig 1
@Provider/partials/head/cookie-banner.html.twig templates/bundles/ProviderBundle/partials/head/cookie-banner.html.twig 1
@Provider/partials/misc/schema-org-json.html.twig templates/bundles/ProviderBundle/partials/misc/schema-org-json.html.twig 1
@Provider/partials/accessibility-shortcuts.html.twig vendor/conecto/pimcore-provider/templates/partials/accessibility-shortcuts.html.twig 1
@Provider/partials/main-nav.html.twig templates/bundles/ProviderBundle/partials/main-nav.html.twig 1
@Provider/partials/main-nav/quick-links.html.twig templates/bundles/ProviderBundle/partials/main-nav/quick-links.html.twig 1
@Provider/partials/main-nav/nav-items.html.twig templates/bundles/ProviderBundle/partials/main-nav/nav-items.html.twig 1
@Provider/partials/header/lang-nav.html.twig templates/bundles/ProviderBundle/partials/header/lang-nav.html.twig 1
@Provider/partials/header/floating-nav.html.twig templates/bundles/ProviderBundle/partials/header/floating-nav.html.twig 1
@Provider/partials/header/media.html.twig templates/bundles/ProviderBundle/partials/header/media.html.twig 1
@Provider/partials/header/livebar.html.twig templates/bundles/ProviderBundle/partials/header/livebar.html.twig 1
live-data/weather-temperature.html.twig templates/live-data/weather-temperature.html.twig 1
live-data/lift-status.html.twig templates/live-data/lift-status.html.twig 1
@Provider/partials/breadcrumbs.html.twig templates/bundles/ProviderBundle/partials/breadcrumbs.html.twig 1
@Provider/includes/contentblocks.html.twig templates/bundles/ProviderBundle/includes/contentblocks.html.twig 1
@PimcoreCore/Areabrick/wrapper.html.twig vendor/pimcore/pimcore/bundles/CoreBundle/templates/Areabrick/wrapper.html.twig 15
@Provider/areas/headline/view.html.twig templates/bundles/ProviderBundle/areas/headline/view.html.twig 1
@Provider/areas/text/view.html.twig vendor/conecto/pimcore-provider/templates/areas/text/view.html.twig 2
@Provider/areas/textmedia/view.html.twig templates/bundles/ProviderBundle/areas/textmedia/view.html.twig 1
@Provider/areas/separator/view.html.twig templates/bundles/ProviderBundle/areas/separator/view.html.twig 4
@Provider/areas/promo-textmedia/view.html.twig templates/bundles/ProviderBundle/areas/promo-textmedia/view.html.twig 2
@Provider/areas/teaser/view.html.twig templates/bundles/ProviderBundle/areas/teaser/view.html.twig 1
@Provider/areas/media/view.html.twig templates/bundles/ProviderBundle/areas/media/view.html.twig 2
@Provider/areas/cols/view.html.twig templates/bundles/ProviderBundle/areas/cols/view.html.twig 1
@Provider/areas/quote/view.html.twig templates/bundles/ProviderBundle/areas/quote/view.html.twig 1
@Provider/snippets/footer.html.twig templates/bundles/ProviderBundle/snippets/footer.html.twig 1
@Provider/layouts/snippet.html.twig templates/bundles/ProviderBundle/layouts/snippet.html.twig 1
@Provider/partials/footer/social.html.twig templates/bundles/ProviderBundle/partials/footer/social.html.twig 1
@Provider/partials/footer/info.html.twig templates/bundles/ProviderBundle/partials/footer/info.html.twig 1
@Provider/partials/footer/address.html.twig templates/bundles/ProviderBundle/partials/footer/address.html.twig 1
@Provider/partials/footer/nav.html.twig templates/bundles/ProviderBundle/partials/footer/nav.html.twig 1
@Provider/partials/footer/partner-logos.html.twig templates/bundles/ProviderBundle/partials/footer/partner-logos.html.twig 1
@Provider/partials/footer/bottom.html.twig templates/bundles/ProviderBundle/partials/footer/bottom.html.twig 1
@Provider/partials/page-search.html.twig templates/bundles/ProviderBundle/partials/page-search.html.twig 1
@Provider/partials/login.html.twig templates/bundles/ProviderBundle/partials/login.html.twig 1
popup/popup.html.twig templates/popup/popup.html.twig 1
@WebProfiler/Profiler/toolbar_js.html.twig vendor/symfony/web-profiler-bundle/Resources/views/Profiler/toolbar_js.html.twig 1
@WebProfiler/Profiler/toolbar.html.twig vendor/symfony/web-profiler-bundle/Resources/views/Profiler/toolbar.html.twig 1
@WebProfiler/Profiler/toolbar_item.html.twig vendor/symfony/web-profiler-bundle/Resources/views/Profiler/toolbar_item.html.twig 1
@WebProfiler/Profiler/toolbar.css.twig vendor/symfony/web-profiler-bundle/Resources/views/Profiler/toolbar.css.twig 1

Rendering Call Graph

main 565.05ms/100%@Provider/document/default.html.twig 564.33ms/100%
│ └ @Provider/layouts/layout.html.twig 564.20ms/100%
│   └ @Provider/partials/head.html.twig 23.08ms/4%
│   │ └ @Provider/partials/head/meta.html.twig 15.82ms/3%
│   │ └ @Provider/partials/head/fonts.html.twig
│   │ └ @Provider/partials/head/styles.html.twig
│   │ └ @Provider/partials/head/scripts.html.twig
│   │ │ └ @Provider/partials/head/cookie-banner.html.twig
│   │ └ @Provider/partials/head.html.twig::block(head_meta)
│   │ └ @Provider/partials/head.html.twig::block(head_stylesheets)
│   │ └ @Provider/partials/head.html.twig::block(head_scripts)
│   └ @Provider/layouts/layout.html.twig::block(bodyClass)
│   └ @Provider/partials/misc/schema-org-json.html.twig 5.14ms/1%
│   └ @Provider/layouts/layout.html.twig::block(toggles)
│   └ @Provider/partials/accessibility-shortcuts.html.twig 15.86ms/3%
│   └ @Provider/partials/main-nav.html.twig 53.37ms/9%
│   │ └ @Provider/macros/logo.html.twig::macro(logo) 5.92ms/1%
│   │ └ @Provider/partials/main-nav/quick-links.html.twig
│   │ └ @Provider/partials/main-nav/nav-items.html.twig 33.98ms/6%
│   │ └ @Provider/macros/include-svg.html.twig::macro(includeSvg)
│   │ └ @Provider/macros/include-svg.html.twig::macro(includeSvg)
│   └ @Provider/layouts/layout.html.twig::block(header) 17.98ms/3%
│   │ └ @Provider/layouts/layout.html.twig::block(headerTop) 10.01ms/2%
│   │ │ └ @Provider/macros/logo.html.twig::macro(logo)
│   │ │ └ @Provider/macros/include-svg.html.twig::macro(includeSvg)
│   │ │ └ @Provider/macros/include-svg.html.twig::macro(includeSvg)
│   │ │ └ @Provider/partials/header/lang-nav.html.twig 7.41ms/1%
│   │ │ └ @Provider/partials/header/floating-nav.html.twig 1.47ms/0%
│   │ │   └ @Provider/macros/include-svg.html.twig::macro(includeSvg)
│   │ └ @Provider/partials/header/media.html.twig 7.85ms/1%
│   └ @Provider/partials/header/livebar.html.twig 31.42ms/6%
│   │ └ @Provider/macros/include-svg.html.twig::macro(includeSvg)
│   │ └ live-data/weather-temperature.html.twig 10.56ms/2%
│   │ └ @Provider/macros/include-svg.html.twig::macro(includeSvg)
│   │ └ @Provider/macros/include-svg.html.twig::macro(includeSvg)
│   │ └ @Provider/macros/include-svg.html.twig::macro(includeSvg)
│   │ └ live-data/lift-status.html.twig 6.40ms/1%
│   │ └ @Provider/macros/include-svg.html.twig::macro(includeSvg)
│   │ └ @Provider/macros/include-svg.html.twig::macro(includeSvg)
│   └ @Provider/layouts/layout.html.twig::block(breadcrumbs) 24.13ms/4%
│   │ └ @Provider/partials/breadcrumbs.html.twig 24.00ms/4%
│   └ @Provider/document/default.html.twig::block(content) 357.17ms/63%
│   │ └ @Provider/includes/contentblocks.html.twig 357.03ms/63%
│   │   └ @PimcoreCore/Areabrick/wrapper.html.twig 1.16ms/0%
│   │   │ └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickWrapper) 1.13ms/0%
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickOpenTag)
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickFrontend) 1.03ms/0%
│   │   │   │ └ @Provider/areas/headline/view.html.twig
│   │   │   │   └ @Provider/macros/include-svg.html.twig::macro(includeSvg)
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickCloseTag)
│   │   └ @PimcoreCore/Areabrick/wrapper.html.twig
│   │   │ └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickWrapper)
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickOpenTag)
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickFrontend)
│   │   │   │ └ @Provider/areas/text/view.html.twig
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickCloseTag)
│   │   └ @PimcoreCore/Areabrick/wrapper.html.twig 94.74ms/17%
│   │   │ └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickWrapper) 94.73ms/17%
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickOpenTag)
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickFrontend) 94.66ms/17%
│   │   │   │ └ @Provider/areas/textmedia/view.html.twig 94.59ms/17%
│   │   │   │   └ @Provider/macros/media.html.twig::macro(media) 89.63ms/16%
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickCloseTag)
│   │   └ @PimcoreCore/Areabrick/wrapper.html.twig
│   │   │ └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickWrapper)
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickOpenTag)
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickFrontend)
│   │   │   │ └ @Provider/areas/separator/view.html.twig
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickCloseTag)
│   │   └ @PimcoreCore/Areabrick/wrapper.html.twig 18.09ms/3%
│   │   │ └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickWrapper) 18.08ms/3%
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickOpenTag)
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickFrontend) 18.03ms/3%
│   │   │   │ └ @Provider/areas/promo-textmedia/view.html.twig 17.95ms/3%
│   │   │   │   └ @Provider/macros/info-icon.html.twig::macro(infoIcon)
│   │   │   │   └ @Provider/macros/headline.html.twig::macro(specialHeadline)
│   │   │   │     └ @Provider/macros/include-svg.html.twig::macro(includeSvg)
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickCloseTag)
│   │   └ @PimcoreCore/Areabrick/wrapper.html.twig
│   │   │ └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickWrapper)
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickOpenTag)
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickFrontend)
│   │   │   │ └ @Provider/areas/separator/view.html.twig
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickCloseTag)
│   │   └ @PimcoreCore/Areabrick/wrapper.html.twig 106.03ms/19%
│   │   │ └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickWrapper) 106.01ms/19%
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickOpenTag)
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickFrontend) 105.96ms/19%
│   │   │   │ └ @Provider/areas/teaser/view.html.twig 105.87ms/19%
│   │   │   │   └ @Provider/macros/teaser.html.twig::macro(teaser) 26.93ms/5%
│   │   │   │   │ └ @Provider/macros/teaser.html.twig::macro(teaserCard) 26.90ms/5%
│   │   │   │   │   └ @Provider/macros/teaser.html.twig::macro(teaserLink)
│   │   │   │   │   └ @Provider/macros/teaser.html.twig::macro(teaserMedia) 14.73ms/3%
│   │   │   │   │   │ └ @Provider/macros/video.html.twig::macro(video) 14.54ms/3%
│   │   │   │   │   └ @Provider/macros/teaser.html.twig::macro(teaserCategories)
│   │   │   │   │   └ @Provider/macros/teaser.html.twig::macro(teaserLinkEnd)
│   │   │   │   │   └ @Provider/macros/teaser.html.twig::macro(teaserProfilePic)
│   │   │   │   └ @Provider/macros/teaser.html.twig::macro(teaser) 11.54ms/2%
│   │   │   │   │ └ @Provider/macros/teaser.html.twig::macro(teaserCard) 11.52ms/2%
│   │   │   │   │   └ @Provider/macros/teaser.html.twig::macro(teaserLink)
│   │   │   │   │   └ @Provider/macros/teaser.html.twig::macro(teaserMedia) 9.93ms/2%
│   │   │   │   │   │ └ @Provider/macros/video.html.twig::macro(video) 9.80ms/2%
│   │   │   │   │   └ @Provider/macros/teaser.html.twig::macro(teaserCategories)
│   │   │   │   │   └ @Provider/macros/teaser.html.twig::macro(teaserLinkEnd)
│   │   │   │   │   └ @Provider/macros/teaser.html.twig::macro(teaserProfilePic)
│   │   │   │   └ @Provider/macros/teaser.html.twig::macro(teaser) 46.13ms/8%
│   │   │   │     └ @Provider/macros/teaser.html.twig::macro(teaserCard) 46.10ms/8%
│   │   │   │       └ @Provider/macros/teaser.html.twig::macro(teaserLink)
│   │   │   │       └ @Provider/macros/teaser.html.twig::macro(teaserMedia) 38.69ms/7%
│   │   │   │       │ └ @Provider/macros/media.html.twig::macro(media) 38.61ms/7%
│   │   │   │       └ @Provider/macros/teaser.html.twig::macro(teaserCategories)
│   │   │   │       └ @Provider/macros/teaser.html.twig::macro(teaserLinkEnd)
│   │   │   │       └ @Provider/macros/teaser.html.twig::macro(teaserProfilePic)
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickCloseTag)
│   │   └ @PimcoreCore/Areabrick/wrapper.html.twig
│   │   │ └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickWrapper)
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickOpenTag)
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickFrontend)
│   │   │   │ └ @Provider/areas/separator/view.html.twig
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickCloseTag)
│   │   └ @PimcoreCore/Areabrick/wrapper.html.twig
│   │   │ └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickWrapper)
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickOpenTag)
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickFrontend)
│   │   │   │ └ @Provider/areas/text/view.html.twig
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickCloseTag)
│   │   └ @PimcoreCore/Areabrick/wrapper.html.twig 50.68ms/9%
│   │   │ └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickWrapper) 50.67ms/9%
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickOpenTag)
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickFrontend) 50.59ms/9%
│   │   │   │ └ @Provider/areas/media/view.html.twig 50.51ms/9%
│   │   │   │   └ @Provider/macros/media.html.twig::macro(media) 25.27ms/4%
│   │   │   │   └ @Provider/macros/media.html.twig::macro(media) 23.54ms/4%
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickCloseTag)
│   │   └ @PimcoreCore/Areabrick/wrapper.html.twig
│   │   │ └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickWrapper)
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickOpenTag)
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickFrontend)
│   │   │   │ └ @Provider/areas/separator/view.html.twig
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickCloseTag)
│   │   └ @PimcoreCore/Areabrick/wrapper.html.twig 5.88ms/1%
│   │   │ └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickWrapper) 5.86ms/1%
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickOpenTag)
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickFrontend) 5.82ms/1%
│   │   │   │ └ @Provider/areas/promo-textmedia/view.html.twig 5.79ms/1%
│   │   │   │   └ @Provider/macros/info-icon.html.twig::macro(infoIcon)
│   │   │   │   └ @Provider/macros/headline.html.twig::macro(specialHeadline)
│   │   │   │     └ @Provider/macros/include-svg.html.twig::macro(includeSvg)
│   │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickCloseTag)
│   │   └ @PimcoreCore/Areabrick/wrapper.html.twig 58.18ms/10%
│   │     └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickWrapper) 58.17ms/10%
│   │       └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickOpenTag)
│   │       └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickFrontend) 58.12ms/10%
│   │       │ └ @Provider/areas/cols/view.html.twig 58.04ms/10%
│   │       │   └ @PimcoreCore/Areabrick/wrapper.html.twig 4.96ms/1%
│   │       │   │ └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickWrapper) 4.94ms/1%
│   │       │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickOpenTag)
│   │       │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickFrontend) 4.86ms/1%
│   │       │   │   │ └ @Provider/areas/quote/view.html.twig 4.76ms/1%
│   │       │   │   │   └ @Provider/areas/quote/view.html.twig::macro(quote) 4.59ms/1%
│   │       │   │   │     └ @Provider/macros/include-svg.html.twig::macro(includeSvg)
│   │       │   │   └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickCloseTag)
│   │       │   └ @PimcoreCore/Areabrick/wrapper.html.twig 43.81ms/8%
│   │       │     └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickWrapper) 43.80ms/8%
│   │       │       └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickOpenTag)
│   │       │       └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickFrontend) 43.74ms/8%
│   │       │       │ └ @Provider/areas/media/view.html.twig 43.71ms/8%
│   │       │       │   └ @Provider/macros/media.html.twig::macro(media) 42.17ms/7%
│   │       │       └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickCloseTag)
│   │       └ @PimcoreCore/Areabrick/wrapper.html.twig::block(areabrickCloseTag)
│   └ @Provider/layouts/layout.html.twig::block(footer) 23.55ms/4%
│   │ └ @Provider/snippets/footer.html.twig 13.03ms/2%
│   │   └ @Provider/layouts/snippet.html.twig 12.92ms/2%
│   │     └ @Provider/snippets/footer.html.twig::block(content) 12.65ms/2%
│   │       └ @Provider/macros/logo.html.twig::macro(logo)
│   │       └ @Provider/partials/footer/social.html.twig 1.35ms/0%
│   │       │ └ @Provider/macros/include-svg.html.twig::macro(includeSvg)
│   │       │ └ @Provider/macros/include-svg.html.twig::macro(includeSvg)
│   │       │ └ @Provider/macros/include-svg.html.twig::macro(includeSvg)
│   │       │ └ @Provider/macros/include-svg.html.twig::macro(includeSvg)
│   │       └ @Provider/partials/footer/info.html.twig 1.21ms/0%
│   │       │ └ @Provider/macros/include-svg.html.twig::macro(includeSvg)
│   │       └ @Provider/partials/footer/address.html.twig
│   │       │ └ @Provider/macros/include-svg.html.twig::macro(includeSvg)
│   │       │ └ @Provider/macros/include-svg.html.twig::macro(includeSvg)
│   │       └ @Provider/partials/footer/nav.html.twig
│   │       └ @Provider/partials/footer/partner-logos.html.twig 6.08ms/1%
│   │       └ @Provider/partials/footer/bottom.html.twig
│   │         └ @Provider/macros/include-svg.html.twig::macro(includeSvg)
│   │         └ @Provider/macros/include-svg.html.twig::macro(includeSvg)
│   └ @Provider/partials/page-search.html.twig
│   │ └ @Provider/macros/include-svg.html.twig::macro(includeSvg)
│   └ @Provider/partials/login.html.twig 4.38ms/1%
│   │ └ @Provider/macros/include-svg.html.twig::macro(includeSvg)
│   └ popup/popup.html.twig
│   └ @Provider/layouts/layout.html.twig::block(footerScripts)
└ @WebProfiler/Profiler/toolbar_js.html.twig@WebProfiler/Profiler/toolbar.html.twig
  │ └ @WebProfiler/Profiler/cancel.html.twig::block(toolbar)
  │   └ @WebProfiler/Profiler/toolbar_item.html.twig@WebProfiler/Profiler/toolbar.css.twig