greenpng — bundled third-party data notices
==================================================

This file states the origin, license, and data date of every
third-party data file and library shipped inside the plugin package, as required
by the WordPress.org submission guidelines.

------------------------------------------------------------------
1. Scanner user-agent rules — assets/data/
------------------------------------------------------------------

Files:
  assets/data/gr-ua-crawlers.txt    (crawler patterns, matched
                                     case-insensitively)
  assets/data/gr-ua-exclusions.txt  (browser-token patterns stripped
                                     from the agent before matching)

Source:   JayBizzle/Crawler-Detect
          https://github.com/JayBizzle/Crawler-Detect

License:  MIT — Copyright (c) 2015-2020 Mark Beech (m@rkbee.ch)

The pattern lists were extracted from the source's fixture arrays
and re-hosted here as plain data under greenpng's own maintenance;
each data file carries the copyright header inline. Behavior parity
against the reference library was verified at extraction time
(18/18 sample user agents identical verdicts).

Data date: 2026-09-10 (1468 crawler patterns, 52 exclusion
patterns). Later edits to these files are greenpng maintenance and
are recorded in the repository changelog, not here.

Permission notice (MIT, as required for substantial portions):

  Permission is hereby granted, free of charge, to any person
  obtaining a copy of this software and associated documentation
  files (the "Software"), to deal in the Software without
  restriction, including without limitation the rights to use,
  copy, modify, merge, publish, distribute, sublicense, and/or sell
  copies of the Software, and to permit persons to whom the Software
  is furnished to do so, subject to the following conditions:

  The above copyright notice and this permission notice shall be
  included in all copies or substantial portions of the Software.

  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
  OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  OTHER DEALINGS IN THE SOFTWARE.

------------------------------------------------------------------
2. Country-level IP geolocation database — assets/data/
------------------------------------------------------------------

Files:
  assets/data/gr-geoip-v4.dat    (IPv4 ranges, 9 bytes each: start,
                                  end, country index)
  assets/data/gr-geoip-v6.dat    (IPv6 ranges, 33 bytes each)
  assets/data/gr-geoip.json      (country table, range counts,
                                  build date, provenance)

Source:   DB-IP — https://db-ip.com/
          free "Country Lite" database

License:  CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/
          Attribution requirement is met by this notice and the
          plugin readme's Attribution section; no additional
          restrictions apply.

The CSV was repacked into the plugin's fixed-width binary format by
tools/pack-geoip.php; the country data itself is unchanged. The
admin update button refreshes these files from the same source; the
refresh writes to the uploads directory and never modifies the
plugin directory.

Data date: 2026-09 (357,325 IPv4 ranges, 359,845 IPv6 ranges, 251
country codes, including the reserved-address code ZZ). Later
refreshes record their own date in gr-geoip.json; this notice states
the date of the copy bundled with the release.

------------------------------------------------------------------
3. IP lists: hosting networks, crawler ranges, AI crawler names —
   assets/data/ip-lists/
------------------------------------------------------------------

Files:
  assets/data/ip-lists/hosting.json, hosting-*-v4.dat, hosting-*-v6.dat
      (hosting and cloud network ranges: sorted, non-overlapping
      start/end records with a label index; the JSON holds labels,
      counts, build date, per-source counts, and the ASN set)
  assets/data/ip-lists/crawlers.json, crawlers-*-v4.dat, crawlers-*-v6.dat
      (official crawler address ranges, same format)
  assets/data/ip-lists/agents.json
      (AI crawler user-agent names and their category)

Built by tools/build-ip-lists.php, which runs the same refresh code
the admin "Update lists now" button runs. A refresh writes to the
uploads directory and never modifies the plugin directory; a source
that fails keeps its previous ranges.

Sources — official lists published by the provider or crawler
operator for exactly this purpose, fetched without any account:
  Amazon Web Services   https://ip-ranges.amazonaws.com/ip-ranges.json
  Google Cloud          https://www.gstatic.com/ipranges/cloud.json
  Microsoft Azure       Service Tags, linked from
                        https://www.microsoft.com/en-us/download/details.aspx?id=56519
  Oracle Cloud          https://docs.oracle.com/en-us/iaas/tools/public_ip_ranges.json
  DigitalOcean          https://digitalocean.com/geo/google.csv
  Linode / Akamai       https://geoip.linode.com/
  Cloudflare            https://www.cloudflare.com/ips-v4, /ips-v6
  Fastly                https://api.fastly.com/public-ip-list
  Google crawlers       https://developers.google.com/static/search/apis/ipranges/
  Bingbot               https://www.bing.com/toolbox/bingbot.json
  Applebot              https://search.developer.apple.com/applebot.json
  DuckDuckGo            https://duckduckgo.com/duckduckbot.json, duckassistbot.json
  OpenAI                https://openai.com/gptbot.json, searchbot.json,
                        chatgpt-user.json
  Perplexity            https://www.perplexity.ai/perplexitybot.json,
                        perplexity-user.json
  Anthropic             https://claude.com/crawling/bots.json
  Common Crawl          https://index.commoncrawl.org/ccbot.json
  Ahrefs                https://api.ahrefs.com/v3/public/crawler-ip-ranges
  UptimeRobot           https://uptimerobot.com/inc/files/ips/
  Pingdom               https://my.pingdom.com/probes/ipv4, /ipv6
  StatusCake            https://app.statuscake.com/Workfloor/Locations.php?format=txt
License:  public operational data of their respective publishers.

Sources — hosting networks by network number (ASN). An ASN is
included when it appears on either list below, belongs to a
provider named above, or its registered network name in the
iptoasn.com data marks it as an IDC, data center, server, VPS,
cloud, or CDN operator; its announced ranges come from iptoasn.com.
The same data gives the ranges of networks that crawler operators
run themselves (Baidu, Yandex, 360, Seznam, Meta, ByteDance, X,
LinkedIn, Pinterest, Telegram, Anthropic, Semrush, Ahrefs, Internet
Archive). Official lists win where both cover an address.
  - X4BNet lists_vpn, datacenter ASN list
    https://github.com/X4BNet/lists_vpn
    License: MIT — Copyright (c) 2024 X4B (Mathew Heard)
  - bad-asn-list
    https://github.com/brianhama/bad-asn-list
    License: MIT — Copyright (c) 2025 Brian Hamachek
  - iptoasn.com IP-to-ASN database
    https://iptoasn.com/
    License: Public Domain Dedication and License (PDDL) 1.0 —
    https://opendatacommons.org/licenses/pddl/1-0/

Source — Amazonbot ranges:
  - cloud-provider-ip-addresses
    https://github.com/rezmoss/cloud-provider-ip-addresses
    License: Creative Commons CC0 1.0 Universal —
    https://creativecommons.org/publicdomain/zero/1.0/

Source — AI crawler names:
  - ai.robots.txt
    https://github.com/ai-robots-txt/ai.robots.txt
    License: MIT — Copyright (c) 2024 ai.robots.txt

The MIT permission notice reproduced in section 1 applies to the
three MIT-licensed sources above, with their own copyright lines.

Data date: 2026-10-23 (hosting networks: 59,042 IPv4 and 19,192 IPv6
ranges, 2,657 ASNs among them; crawler ranges: 4,772 IPv4 and 375
IPv6 ranges; 195 AI crawler names). Later refreshes record their own date in the
JSON files; this notice states the date of the copy bundled with the
release.

------------------------------------------------------------------
4. MaxMind GeoLite2 country database — deliberately NOT bundled
------------------------------------------------------------------

The optional GeoLite2 Country database (MaxMind, https://www.maxmind.com/)
is NOT distributed inside this plugin package, and this section
states that absence as a matter of record: the GeoLite2 EULA
(https://www.maxmind.com/en/geolite/eula) forbids redistribution,
so no mmdb file ships here and none ever will.

How it arrives: the site owner enters their own MaxMind license key
on the IP Intelligence page and clicks the download button. The
plugin then sends that license key to MaxMind's download endpoint
(the only request it makes for this feature, no visitor data
involved) and writes the received database into the site's own
uploads directory. The owner may delete it there at any time; the
bundled DB-IP Lite country data keeps answering lookups regardless.

Origin and ownership of that file remain MaxMind's under the
GeoLite2 EULA between MaxMind and the downloading site owner; the
plugin only stores and reads it locally. This notice therefore
carries no MaxMind attribution obligation of its own, and lists
this section so the absence of bundled MaxMind data is stated
where a reviewer would look for it.

------------------------------------------------------------------
5. uPlot chart library — assets/js/vendor/, assets/css/
------------------------------------------------------------------

Files:    assets/js/vendor/uplot.iife.js (unminified source)
          assets/js/vendor/uplot.iife.min.js
          assets/css/uplot.min.css
Version:  1.6.19
Source:   https://github.com/leeoniya/uPlot
License:  MIT — Copyright (c) 2022 Leon Sorokin

The full license text ships as assets/js/vendor/uplot-license.txt.
