From e9956593dc9bbe2403e06dd7a548464e5e76db81 Mon Sep 17 00:00:00 2001 From: erwanlr Date: Sun, 30 Sep 2018 13:16:58 +0100 Subject: [PATCH] Adds DFs --- spec/fixtures/db/dynamic_finders.yml | 137 ++++++++++++++ spec/fixtures/dynamic_finders/expected.yml | 172 ++++++++++++++++++ .../query_parameter_passive_all.html | 92 ++++++++++ 3 files changed, 401 insertions(+) diff --git a/spec/fixtures/db/dynamic_finders.yml b/spec/fixtures/db/dynamic_finders.yml index 667e931c..75e72db9 100644 --- a/spec/fixtures/db/dynamic_finders.yml +++ b/spec/fixtures/db/dynamic_finders.yml @@ -491,6 +491,12 @@ plugins: path: css/parallax.css pattern: !ruby/regexp /\*\* [^\s]+ \- V(?\d+\.[\.\d]+)/i version: true + adbutler: + QueryParameter: + files: + - js/adbutler_hb_init.js + - js/adbutler_hb_final.js + version: true add-amazon-block: ComposerFile: class: ConfigParser @@ -4949,6 +4955,12 @@ plugins: path: package.json key: version version: true + cosmic-carousel: + QueryParameter: + files: + - public/css/cosmic-public.css + - public/js/cosmic-public.js + version: true coupon-reveal-button: QueryParameter: files: @@ -6846,6 +6858,12 @@ plugins: - assets/js/frontend.js - assets/js/jAlert-v3.js version: true + expivi: + TranslationFile: + class: BodyPattern + path: languages/expivi.pot + pattern: !ruby/regexp '/"Project\-Id\-Version: Expivi (?\d+\.[\.\d]+)/i' + version: true explanatory-dictionary: QueryParameter: files: @@ -6886,6 +6904,12 @@ plugins: path: languages/extensive-vc.pot pattern: !ruby/regexp /"Project\-Id\-Version:\ Extensive VC (?\d+\.[\.\d]+)/i version: true + extra-blocks: + TranslationFile: + class: BodyPattern + path: languages/extra-blocks.po + pattern: !ruby/regexp '/"Project\-Id\-Version: Extra Blocks (?\d+\.[\.\d]+)/i' + version: true extra-privacy-for-elementor: QueryParameter: files: @@ -8771,6 +8795,12 @@ plugins: files: - guardian_headlines.css version: true + guten-editor-blocks: + TranslationFile: + class: BodyPattern + path: languages/guten-editor-blocks.pot + pattern: !ruby/regexp /"v(?\d+\.[\.\d]+)/i + version: true gutenbee: ComposerFile: class: ConfigParser @@ -9229,6 +9259,13 @@ plugins: path: languages/ico-lw.pot pattern: !ruby/regexp /"Project\-Id\-Version:\ ICO List Widget (?\d+\.[\.\d]+)/i version: true + iconpress-lite: + QueryParameter: + files: + - assets/css/iconpress.css + - assets/css/panel.css + - assets/js/iconpress.min.js + version: true ics-button: JavascriptVar: class: BodyPattern @@ -9277,6 +9314,18 @@ plugins: class: Xpath xpath: //meta[@name="IE9 Pinned Site"]/@content version: true + ifthengive: + QueryParameter: + files: + - public/css/datatables/jquery.dataTables.css + - public/css/datatables/dataTables.responsive.css + - includes/css/alertify/alertify.css + - public/css/ifthengive-public.css + - includes/css/alertify/alertify.min.js + - public/js/ifthengive-public.js + - public/js/datatables/jquery.dataTables.min.js + - public/js/datatables/dataTables.responsive.js + version: true ifttt-instagram-gallery: QueryParameter: files: @@ -10642,6 +10691,12 @@ plugins: path: lang/lead-to-clio.pot pattern: !ruby/regexp /"Project\-Id\-Version:\ lead_to_clio (?\d+\.[\.\d]+)/i version: true + leader: + QueryParameter: + files: + - public/css/leader-public.css + - public/js/leader-public.js + version: true leaflet-map: QueryParameter: files: @@ -10980,6 +11035,12 @@ plugins: path: languages/livepress.pot pattern: !ruby/regexp /"Project\-Id\-Version:\ livepress (?\d+\.[\.\d]+)/i version: true + livestream-notice: + QueryParameter: + files: + - livestream-notice.css + - livestream-notice.js + version: true loanthru-calculator: QueryParameter: files: @@ -11068,6 +11129,12 @@ plugins: - public/js/ajax-methods.min.js - public/css/display.css version: true + login-and-logout-redirect: + QueryParameter: + files: + - public/css/login-and-logout-redirect-public.css + - public/js/login-and-logout-redirect-public.js + version: true login-customizer: ChangeLog: class: BodyPattern @@ -11271,6 +11338,12 @@ plugins: files: - assets/css/frontend/main.css version: true + luckywp-cookie-notice-gdpr: + QueryParameter: + files: + - front/assets/main.min.css + - front/assets/main.min.js + version: true lukas-tripster: TranslationFile: class: BodyPattern @@ -12659,6 +12732,12 @@ plugins: - naver-map.css - naver-map.js version: true + nbsp-french: + TranslationFile: + class: BodyPattern + path: languages/nbsp-french.pot + pattern: !ruby/regexp /s Non\-Breaking Space for French Content (?\d+\.[\.\d]+)/i + version: true nearby-locations: QueryParameter: files: @@ -13201,6 +13280,12 @@ plugins: xpath: //meta[@name="omniads"]/@content version: true pattern: !ruby/regexp /omniads\/(?\d+\.[\.\d]+)/i + onc-master: + QueryParameter: + files: + - public/css/onc_master-public.css + - public/js/onc_master-public.js + version: true one-click-demo-import: TranslationFile: class: BodyPattern @@ -13504,6 +13589,24 @@ plugins: path: package.json key: version version: true + page-builder-by-azexo: + QueryParameter: + files: + - css/swiper.css + - css/animate.css + - css/magnific-popup.css + - css/frontend.css + - js/isotope.pkgd.js + - js/jquery.waypoints.js + - js/jquery.countdown.js + - js/jquery.maskedinput.js + - js/swiper.js + - js/jquery.magnific-popup.js + - js/scrollReveal.js + - js/parallax.js + - js/rellax.js + - js/frontend.js + version: true page-builder-sandwich: QueryParameter: files: @@ -15503,6 +15606,12 @@ plugins: - public/css/reframer-public.min.css - public/js/reframer-public.min.js version: true + registration-for-woocommerce: + TranslationFile: + class: BodyPattern + path: languages/registration-for-woocommerce.pot + pattern: !ruby/regexp '/d\-Version: Registration For WooCommerce (?\d+\.[\.\d]+)/i' + version: true registrations-for-the-events-calendar: QueryParameter: files: @@ -19586,6 +19695,11 @@ plugins: files: - js/ttt-devices.js version: true + ttv-easy-embed-player: + QueryParameter: + files: + - public/js/twitch-player-public.js + version: true tumblr-crosspostr: TranslationFile: class: BodyPattern @@ -20462,6 +20576,13 @@ plugins: path: languages/voice-search.pot pattern: !ruby/regexp /"Project\-Id\-Version:\ Voice Search (?\d+\.[\.\d]+)/i version: true + vowels-contact-form-with-drag-and-drop: + QueryParameter: + files: + - css/styles.css + - js/vowels.js + - js/jquery.vowels.js + version: true voxpress: Comment: xpath: //comment()[contains(., "voxpress")] @@ -23047,6 +23168,11 @@ plugins: - public/js/wfwc-uploadfile.min.js - public/js/wfwc-public.js version: true + wp-film-studio: + QueryParameter: + files: + - assets/js/popper.min.js + version: true wp-flexible-map: QueryParameter: files: @@ -25024,6 +25150,11 @@ plugins: - public/css/wpmerchant-public.css - public/js/wpmerchant-public.js version: true + wpmk-faq: + QueryParameter: + files: + - assets/js/wpmk-script.js + version: true wpmk-portfolio: QueryParameter: files: @@ -25345,6 +25476,12 @@ plugins: - public/css/wt-advanced-woocommerce-report-public.css - public/js/wt-advanced-woocommerce-report-public.js version: true + wt-pocket-navigator: + QueryParameter: + files: + - public/css/wtpn-pocket-nav-public.css + - public/js/wtpn-pocket-nav-public.js + version: true wt-smart-coupons-for-woocommerce: QueryParameter: files: diff --git a/spec/fixtures/dynamic_finders/expected.yml b/spec/fixtures/dynamic_finders/expected.yml index 73cd5b15..20553f00 100644 --- a/spec/fixtures/dynamic_finders/expected.yml +++ b/spec/fixtures/dynamic_finders/expected.yml @@ -572,6 +572,14 @@ plugins: interesting_entries: - 'http://wp.lab/wp-content/plugins/adamrob-parallax-scroll/css/parallax.css, Match: ''** 22MAR2016 - V2.0''' + adbutler: + QueryParameter: + number: '1.18' + found_by: Query Parameter (Passive Detection) + interesting_entries: + - http://wp.lab/wp-content/plugins/adbutler/js/adbutler_hb_init.js?ver=1.18 + - http://wp.lab/wp-content/plugins/adbutler/js/adbutler_hb_final.js?ver=1.18 + confidence: 20 add-amazon-block: ComposerFile: number: 0.2.1 @@ -6175,6 +6183,14 @@ plugins: found_by: Composer File (Aggressive Detection) interesting_entries: - 'http://wp.lab/wp-content/plugins/cornerstone/package.json, Match: ''0.7.5''' + cosmic-carousel: + QueryParameter: + number: 1.0.0 + found_by: Query Parameter (Passive Detection) + interesting_entries: + - http://wp.lab/wp-content/plugins/cosmic-carousel/public/css/cosmic-public.css?ver=1.0.0 + - http://wp.lab/wp-content/plugins/cosmic-carousel/public/js/cosmic-public.js?ver=1.0.0 + confidence: 20 coupon-reveal-button: QueryParameter: number: 1.0.0 @@ -8515,6 +8531,13 @@ plugins: - http://wp.lab/wp-content/plugins/exit-notifier/assets/css/jAlert-v3.css?ver=1.4.3 - http://wp.lab/wp-content/plugins/exit-notifier/assets/js/frontend.js?ver=1.4.3 - http://wp.lab/wp-content/plugins/exit-notifier/assets/js/jAlert-v3.js?ver=1.4.3 + expivi: + TranslationFile: + number: '0.1' + found_by: Translation File (Aggressive Detection) + interesting_entries: + - 'http://wp.lab/wp-content/plugins/expivi/languages/expivi.pot, Match: ''"Project-Id-Version: + Expivi 0.1''' explanatory-dictionary: QueryParameter: number: 4.1.5 @@ -8564,6 +8587,13 @@ plugins: interesting_entries: - 'http://wp.lab/wp-content/plugins/extensive-vc-addon/languages/extensive-vc.pot, Match: ''"Project-Id-Version: Extensive VC 1.4.1''' + extra-blocks: + TranslationFile: + number: '1.0' + found_by: Translation File (Aggressive Detection) + interesting_entries: + - 'http://wp.lab/wp-content/plugins/extra-blocks/languages/extra-blocks.po, + Match: ''"Project-Id-Version: Extra Blocks 1.0''' extra-privacy-for-elementor: QueryParameter: number: 0.0.5 @@ -10928,6 +10958,13 @@ plugins: interesting_entries: - http://wp.lab/wp-content/plugins/guardian-news-headlines/guardian_headlines.css?ver=0.5.4 confidence: 10 + guten-editor-blocks: + TranslationFile: + number: 1.0.0 + found_by: Translation File (Aggressive Detection) + interesting_entries: + - 'http://wp.lab/wp-content/plugins/guten-editor-blocks/languages/guten-editor-blocks.pot, + Match: ''"v1.0.0''' gutenbee: ComposerFile: number: 1.0.0 @@ -11501,6 +11538,15 @@ plugins: interesting_entries: - 'http://wp.lab/wp-content/plugins/ico-list-widget/languages/ico-lw.pot, Match: ''"Project-Id-Version: ICO List Widget 1.0.0''' + iconpress-lite: + QueryParameter: + number: 1.4.0 + found_by: Query Parameter (Passive Detection) + interesting_entries: + - http://wp.lab/wp-content/plugins/iconpress-lite/assets/css/iconpress.css?ver=1.4.0 + - http://wp.lab/wp-content/plugins/iconpress-lite/assets/css/panel.css?ver=1.4.0 + - http://wp.lab/wp-content/plugins/iconpress-lite/assets/js/iconpress.min.js?ver=1.4.0 + confidence: 30 ics-button: JavascriptVar: number: '0.6' @@ -11562,6 +11608,20 @@ plugins: found_by: Meta Tag (Passive Detection) interesting_entries: - 'http://wp.lab/, Match: ''1.1.2''' + ifthengive: + QueryParameter: + number: 0.1.0 + found_by: Query Parameter (Passive Detection) + interesting_entries: + - http://wp.lab/wp-content/plugins/ifthengive/public/css/datatables/jquery.dataTables.css?ver=0.1.0 + - http://wp.lab/wp-content/plugins/ifthengive/public/css/datatables/dataTables.responsive.css?ver=0.1.0 + - http://wp.lab/wp-content/plugins/ifthengive/includes/css/alertify/alertify.css?ver=0.1.0 + - http://wp.lab/wp-content/plugins/ifthengive/public/css/ifthengive-public.css?ver=0.1.0 + - http://wp.lab/wp-content/plugins/ifthengive/includes/css/alertify/alertify.min.js?ver=0.1.0 + - http://wp.lab/wp-content/plugins/ifthengive/public/js/ifthengive-public.js?ver=0.1.0 + - http://wp.lab/wp-content/plugins/ifthengive/public/js/datatables/jquery.dataTables.min.js?ver=0.1.0 + - http://wp.lab/wp-content/plugins/ifthengive/public/js/datatables/dataTables.responsive.js?ver=0.1.0 + confidence: 80 ifttt-instagram-gallery: QueryParameter: number: 1.0.5 @@ -13275,6 +13335,14 @@ plugins: interesting_entries: - 'http://wp.lab/wp-content/plugins/lead-to-clio/lang/lead-to-clio.pot, Match: ''"Project-Id-Version: lead_to_clio 1.0''' + leader: + QueryParameter: + number: 1.0.0 + found_by: Query Parameter (Passive Detection) + interesting_entries: + - http://wp.lab/wp-content/plugins/leader/public/css/leader-public.css?ver=1.0.0 + - http://wp.lab/wp-content/plugins/leader/public/js/leader-public.js?ver=1.0.0 + confidence: 20 leaflet-map: QueryParameter: number: 2.9.1 @@ -13702,6 +13770,14 @@ plugins: interesting_entries: - 'http://wp.lab/wp-content/plugins/livepress/languages/livepress.pot, Match: ''"Project-Id-Version: livepress 1.4.5''' + livestream-notice: + QueryParameter: + number: 1.1.2 + found_by: Query Parameter (Passive Detection) + interesting_entries: + - http://wp.lab/wp-content/plugins/livestream-notice/livestream-notice.css?ver=1.1.2 + - http://wp.lab/wp-content/plugins/livestream-notice/livestream-notice.js?ver=1.1.2 + confidence: 20 loanthru-calculator: QueryParameter: number: 1.0.0 @@ -13814,6 +13890,14 @@ plugins: - http://wp.lab/wp-content/plugins/logic-hop/public/js/ajax-methods.min.js?ver=2.1.9 - http://wp.lab/wp-content/plugins/logic-hop/public/css/display.css?ver=2.1.9 confidence: 20 + login-and-logout-redirect: + QueryParameter: + number: 1.0.4 + found_by: Query Parameter (Passive Detection) + interesting_entries: + - http://wp.lab/wp-content/plugins/login-and-logout-redirect/public/css/login-and-logout-redirect-public.css?ver=1.0.4 + - http://wp.lab/wp-content/plugins/login-and-logout-redirect/public/js/login-and-logout-redirect-public.js?ver=1.0.4 + confidence: 20 login-customizer: ChangeLog: number: 1.2.1 @@ -14067,6 +14151,14 @@ plugins: interesting_entries: - http://wp.lab/wp-content/plugins/lucidlms/assets/css/frontend/main.css?ver=1.0.5 confidence: 10 + luckywp-cookie-notice-gdpr: + QueryParameter: + number: 1.0.0 + found_by: Query Parameter (Passive Detection) + interesting_entries: + - http://wp.lab/wp-content/plugins/luckywp-cookie-notice-gdpr/front/assets/main.min.css?ver=1.0.0 + - http://wp.lab/wp-content/plugins/luckywp-cookie-notice-gdpr/front/assets/main.min.js?ver=1.0.0 + confidence: 20 lukas-tripster: TranslationFile: number: '1.0' @@ -15841,6 +15933,13 @@ plugins: - http://wp.lab/wp-content/plugins/naver-map/naver-map.css?ver=1.10 - http://wp.lab/wp-content/plugins/naver-map/naver-map.js?ver=1.10 confidence: 20 + nbsp-french: + TranslationFile: + number: 1.9.0 + found_by: Translation File (Aggressive Detection) + interesting_entries: + - 'http://wp.lab/wp-content/plugins/nbsp-french/languages/nbsp-french.pot, Match: + ''s Non-Breaking Space for French Content 1.9.0''' nearby-locations: QueryParameter: number: 1.1.1 @@ -16531,6 +16630,14 @@ plugins: found_by: Meta Tag (Passive Detection) interesting_entries: - 'http://wp.lab/, Match: ''omniads/0.54''' + onc-master: + QueryParameter: + number: 1.0.0 + found_by: Query Parameter (Passive Detection) + interesting_entries: + - http://wp.lab/wp-content/plugins/onc-master/public/css/onc_master-public.css?ver=1.0.0 + - http://wp.lab/wp-content/plugins/onc-master/public/js/onc_master-public.js?ver=1.0.0 + confidence: 20 one-click-demo-import: TranslationFile: number: 2.4.0 @@ -16916,6 +17023,26 @@ plugins: interesting_entries: - 'http://wp.lab/wp-content/plugins/pagamentos-digitais-4all/package.json, Match: ''1.0.0''' + page-builder-by-azexo: + QueryParameter: + number: 1.27.84 + found_by: Query Parameter (Passive Detection) + interesting_entries: + - http://wp.lab/wp-content/plugins/page-builder-by-azexo/css/swiper.css?ver=1.27.84 + - http://wp.lab/wp-content/plugins/page-builder-by-azexo/css/animate.css?ver=1.27.84 + - http://wp.lab/wp-content/plugins/page-builder-by-azexo/css/magnific-popup.css?ver=1.27.84 + - http://wp.lab/wp-content/plugins/page-builder-by-azexo/css/frontend.css?ver=1.27.84 + - http://wp.lab/wp-content/plugins/page-builder-by-azexo/js/isotope.pkgd.js?ver=1.27.84 + - http://wp.lab/wp-content/plugins/page-builder-by-azexo/js/jquery.waypoints.js?ver=1.27.84 + - http://wp.lab/wp-content/plugins/page-builder-by-azexo/js/jquery.countdown.js?ver=1.27.84 + - http://wp.lab/wp-content/plugins/page-builder-by-azexo/js/jquery.maskedinput.js?ver=1.27.84 + - http://wp.lab/wp-content/plugins/page-builder-by-azexo/js/swiper.js?ver=1.27.84 + - http://wp.lab/wp-content/plugins/page-builder-by-azexo/js/jquery.magnific-popup.js?ver=1.27.84 + - http://wp.lab/wp-content/plugins/page-builder-by-azexo/js/scrollReveal.js?ver=1.27.84 + - http://wp.lab/wp-content/plugins/page-builder-by-azexo/js/parallax.js?ver=1.27.84 + - http://wp.lab/wp-content/plugins/page-builder-by-azexo/js/rellax.js?ver=1.27.84 + - http://wp.lab/wp-content/plugins/page-builder-by-azexo/js/frontend.js?ver=1.27.84 + confidence: 100 page-builder-sandwich: QueryParameter: number: 4.4.3 @@ -19443,6 +19570,13 @@ plugins: - http://wp.lab/wp-content/plugins/reframer/public/css/reframer-public.min.css?ver=1.0.2 - http://wp.lab/wp-content/plugins/reframer/public/js/reframer-public.min.js?ver=1.0.2 confidence: 20 + registration-for-woocommerce: + TranslationFile: + number: 1.0.0 + found_by: Translation File (Aggressive Detection) + interesting_entries: + - 'http://wp.lab/wp-content/plugins/registration-for-woocommerce/languages/registration-for-woocommerce.pot, + Match: ''d-Version: Registration For WooCommerce 1.0.0''' registrations-for-the-events-calendar: QueryParameter: number: 2.0.3 @@ -24642,6 +24776,13 @@ plugins: interesting_entries: - http://wp.lab/wp-content/plugins/ttt-devices/js/ttt-devices.js?ver=0.4 confidence: 10 + ttv-easy-embed-player: + QueryParameter: + number: 1.0.2 + found_by: Query Parameter (Passive Detection) + interesting_entries: + - http://wp.lab/wp-content/plugins/ttv-easy-embed-player/public/js/twitch-player-public.js?ver=1.0.2 + confidence: 10 tumblr-crosspostr: TranslationFile: number: 0.9.0 @@ -25738,6 +25879,15 @@ plugins: interesting_entries: - 'http://wp.lab/wp-content/plugins/voice-search/languages/voice-search.pot, Match: ''"Project-Id-Version: Voice Search 1.2.1''' + vowels-contact-form-with-drag-and-drop: + QueryParameter: + number: 1.0.4 + found_by: Query Parameter (Passive Detection) + interesting_entries: + - http://wp.lab/wp-content/plugins/vowels-contact-form-with-drag-and-drop/css/styles.css?ver=1.0.4 + - http://wp.lab/wp-content/plugins/vowels-contact-form-with-drag-and-drop/js/vowels.js?ver=1.0.4 + - http://wp.lab/wp-content/plugins/vowels-contact-form-with-drag-and-drop/js/jquery.vowels.js?ver=1.0.4 + confidence: 30 voxpress: Comment: number: 1.1.5 @@ -28977,6 +29127,13 @@ plugins: - http://wp.lab/wp-content/plugins/wp-file-word-counter/public/js/wfwc-uploadfile.min.js?ver=1.0.0 - http://wp.lab/wp-content/plugins/wp-file-word-counter/public/js/wfwc-public.js?ver=1.0.0 confidence: 30 + wp-film-studio: + QueryParameter: + number: 1.0.0 + found_by: Query Parameter (Passive Detection) + interesting_entries: + - http://wp.lab/wp-content/plugins/wp-film-studio/assets/js/popper.min.js?ver=1.0.0 + confidence: 10 wp-flexible-map: QueryParameter: number: 1.12.1 @@ -31489,6 +31646,13 @@ plugins: - http://wp.lab/wp-content/plugins/wpmerchant/public/css/wpmerchant-public.css?ver=2.0.5 - http://wp.lab/wp-content/plugins/wpmerchant/public/js/wpmerchant-public.js?ver=2.0.5 confidence: 20 + wpmk-faq: + QueryParameter: + number: 1.0.0 + found_by: Query Parameter (Passive Detection) + interesting_entries: + - http://wp.lab/wp-content/plugins/wpmk-faq/assets/js/wpmk-script.js?ver=1.0.0 + confidence: 10 wpmk-portfolio: QueryParameter: number: 1.0.0 @@ -31885,6 +32049,14 @@ plugins: - http://wp.lab/wp-content/plugins/wt-advanced-woocommerce-report/public/css/wt-advanced-woocommerce-report-public.css?ver=1.0.0 - http://wp.lab/wp-content/plugins/wt-advanced-woocommerce-report/public/js/wt-advanced-woocommerce-report-public.js?ver=1.0.0 confidence: 20 + wt-pocket-navigator: + QueryParameter: + number: 1.0.1 + found_by: Query Parameter (Passive Detection) + interesting_entries: + - http://wp.lab/wp-content/plugins/wt-pocket-navigator/public/css/wtpn-pocket-nav-public.css?ver=1.0.1 + - http://wp.lab/wp-content/plugins/wt-pocket-navigator/public/js/wtpn-pocket-nav-public.js?ver=1.0.1 + confidence: 20 wt-smart-coupons-for-woocommerce: QueryParameter: number: 0.0.1 diff --git a/spec/fixtures/dynamic_finders/plugin_version/query_parameter_passive_all.html b/spec/fixtures/dynamic_finders/plugin_version/query_parameter_passive_all.html index 9e5f028b..6a03f377 100644 --- a/spec/fixtures/dynamic_finders/plugin_version/query_parameter_passive_all.html +++ b/spec/fixtures/dynamic_finders/plugin_version/query_parameter_passive_all.html @@ -212,6 +212,11 @@ + + + + + @@ -2536,6 +2541,11 @@ + + + + + @@ -4625,6 +4635,12 @@ + + + + + + @@ -4643,6 +4659,17 @@ + + + + + + + + + + + @@ -5341,6 +5368,11 @@ + + + + + @@ -5533,6 +5565,11 @@ + + + + + @@ -5578,6 +5615,11 @@ + + + + + @@ -5699,6 +5741,11 @@ + + + + + @@ -6747,6 +6794,11 @@ + + + + + @@ -6897,6 +6949,23 @@ + + + + + + + + + + + + + + + + + @@ -10057,6 +10126,10 @@ + + + + @@ -10524,6 +10597,12 @@ + + + + + + @@ -11713,6 +11792,10 @@ + + + + @@ -12849,6 +12932,10 @@ + + + + @@ -12984,6 +13071,11 @@ + + + + +