{"_id":"@elcubonegro/compare_files","_rev":"5-c319f0a8207ad512b7c25507781c3217","name":"@elcubonegro/compare_files","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.0":{"name":"@elcubonegro/compare_files","version":"1.0.0","description":"compare files, the diff() returns either null if no changes have occurred, or an object with a type (which is either added, removed or changed) and a file property pointing to the (first) according file.","main":"compare-files.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gist.github.com/98e17eb8bf9fda86c8cf80c918918134.git"},"keywords":["compare","files","content"],"author":{"name":"Florian Reuschel, Juan José Albán."},"license":"MIT","bugs":{"url":"https://gist.github.com/98e17eb8bf9fda86c8cf80c918918134"},"homepage":"https://gist.github.com/98e17eb8bf9fda86c8cf80c918918134","gitHead":"5f715dadeb3035de03678176d858f98faea9cf47","_id":"@elcubonegro/compare_files@1.0.0","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-Ca2+zC/Sf2XXxU4Y6UWWczJ1itbR2IU/yaMyHADUyGgBdJEdBI5VQRmj9xmD47go1wdMMfA4m7f4o4zIUZk/Ag==","shasum":"097a2b03d49f4b88bfee784e62e5f63d34dfd3aa","tarball":"https://registry.npmjs.org/@elcubonegro/compare_files/-/compare_files-1.0.0.tgz","fileCount":3,"unpackedSize":5679,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfAwf4CRA9TVsSAnZWagAA3pQP/incr/4W5mJidfpD42mu\n/zLV2cQ0Bvli+wlPt1p4wyJSid1z3uSjivk20jJ4QGN/mJBduJt6LUCiAJQH\nHV6sgHW0yQoWrhmS4ScqvVum61Q2w0xa9w+st+k8ZJIUq3GdEd3kcXrq6raK\nE++5E78z6C/YLZ55pfs3sOmHcX30Jd/N+iR0QBEpMbC9JTqLAIs7B2Rkvijf\ndT1cBxRBDVU9rPIHBoiT5cil+g7UFbq99htO1NmGivgSZ3eU74WmYJblhJXg\nLlsrjOmB/ZaH4u/tARVkq0A/xflGKVp/Vu5E4nzilnSIeo/9ruAn2sYojd9p\nLolYJ7LpkMBQJ7mQ5DIsNF4sNwaItsbnxDqfpWukkyHh/zBXDum0IgwCuHe7\nJ4XwADWGQihKFcJ7rUMY/7fhGsa2e1QaTXAHjaEdfkNAQOVt/kVNph7ResQj\nI9F3cwB+ziSmdYfSwHd3vsnghYm9R4yTjwiuV2hbImIJNfvzZV78M2FkFqpT\nqRA0z0RM1jUjdDUdvpftQiaqhmiiqT5lOtsyqzMm7nmPnz7Ny9dPeXD37bvb\nPavpTWHlTExcUET6RkHgzucNKT8xYuMTqwOra+vbrY8AqvLarIwrBdnxM+Mv\nxf5XtyFJa+q0NcVdTIA3Cp1vXr++E3LusGws0xavdGephHJJjfxIgl75sStP\nDxaJ\r\n=eSpc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDgvtxaAXQkzl7W8/yrH9WBvBW+4ENlmoQ4Osc2tSVKeAiBchC3Qc2Y3KBeHH++53eYtSOJzx7jioCw3bdjkYibYdQ=="}]},"maintainers":[{"name":"elcubonegro","email":"J.ALBAN@UNIANDES.EDU.CO"}],"_npmUser":{"name":"elcubonegro","email":"J.ALBAN@UNIANDES.EDU.CO"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/compare_files_1.0.0_1594034168552_0.6086606956001421"},"_hasShrinkwrap":false},"1.0.1":{"name":"@elcubonegro/compare_files","version":"1.0.1","description":"compare files, the diff() returns either null if no changes have occurred, or an object with a type (which is either added, removed or changed) and a file property pointing to the (first) according file.","main":"compare-files.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gist.github.com/98e17eb8bf9fda86c8cf80c918918134.git"},"keywords":["compare","files","content"],"author":{"name":"Florian Reuschel, Juan José Albán."},"license":"MIT","bugs":{"url":"https://gist.github.com/98e17eb8bf9fda86c8cf80c918918134"},"homepage":"https://gist.github.com/98e17eb8bf9fda86c8cf80c918918134","gitHead":"5f715dadeb3035de03678176d858f98faea9cf47","_id":"@elcubonegro/compare_files@1.0.1","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-MphvnH3Ca50420sAjk3C1XTNh/g36QD/Mzgz/jyNapNhuM1k0+fdGy80FfBYcrJFJxaL0nxcQGM9VakxD9hC/Q==","shasum":"5eedc4742f5a53f70a7f75c2360a6b602dd25f39","tarball":"https://registry.npmjs.org/@elcubonegro/compare_files/-/compare_files-1.0.1.tgz","fileCount":3,"unpackedSize":5686,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfAwyZCRA9TVsSAnZWagAAmLYP/jnOm97ZBQ9O1j9URhxr\n/cnZc6AJRhTAC1msz0plfsBlme0U7JxEDaBFyTp1MqYFsOP2b6NOC4GPCtNy\nh52KnzGVfHQhSZrQdgGPvawMeTfPsS+NZZ2kHWFE8gGqfTn31aeZAAB8MBb6\nrJwp7hSkA6E4XheRVx9Rfn/GdQB9aDQRCIaudD8RvywaMEz/eKSYlYeu2cqo\nh8CyDaerbWvdLWVkWMV+wVfDxSwHQ6SgOh2p9wyFnL9EOKhSOReZ3jtChhjl\ntR9Z2yYgfahtNigQFCdo9T/ZS+aHa5lD+Pcb0tKPbZObsCjQ76Fu30BeWItc\nowGxcgz8JA8Q2WxOjII0L0O33VSH0a5u6wf9BQ0x8d/p1l+KosE43G1Dk/7d\nLYDzoDWePsQUHIibwDFm+OY62txkEmNvEsQKtbG0Uy4Abx31Uo53zlz7lvvL\nBuyHsTn7gkpoohIeSgKJXxr2GPEWRHex9/HYyJ8pPUOSbb+6rOgKimH1UGUt\noAOSQ0o/mBL7ZW3Ydpd4+R+CfWIi9RFNGrGt8P/FHybf2Uy+56HQ3GCEoD8R\nA/K+GF/EiombTzj5mvGml6O9vjiSvw/reLeFDsDiwzC7gZ0euNobPBrAITdX\n+pxGekYdyPO67sgp58RqK8lyXifO5fAS9qqZJ6ACkdBSKEHDwdh5Xu1/vZ7j\n0kLG\r\n=3VvR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCk34bvudSJeum4yzhJ69hzuu+VWispsg5TCHoXdXcdnAIgH7JuwAosUn9zN1W76JrEgXi1aZImVZGdKg403TZ5FSg="}]},"maintainers":[{"name":"elcubonegro","email":"J.ALBAN@UNIANDES.EDU.CO"}],"_npmUser":{"name":"elcubonegro","email":"J.ALBAN@UNIANDES.EDU.CO"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/compare_files_1.0.1_1594035353300_0.4656709930380525"},"_hasShrinkwrap":false},"1.0.2":{"name":"@elcubonegro/compare_files","version":"1.0.2","description":"compare files, the diff() returns either null if no changes have occurred, or an object with a type (which is either added, removed or changed) and a file property pointing to the (first) according file.","main":"compare-files.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gist.github.com/98e17eb8bf9fda86c8cf80c918918134.git"},"keywords":["compare","files","content"],"author":{"name":"Florian Reuschel, Juan José Albán."},"license":"MIT","bugs":{"url":"https://gist.github.com/98e17eb8bf9fda86c8cf80c918918134"},"homepage":"https://gist.github.com/98e17eb8bf9fda86c8cf80c918918134","gitHead":"5f715dadeb3035de03678176d858f98faea9cf47","_id":"@elcubonegro/compare_files@1.0.2","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-XQIJCDpauPKxu704PEcH3nskI4/tDevfcK7RFbQ8Mq4UU+SX+RjFrXvL5HY9BolU2sxYLkxIOEsU7pkZO6awUw==","shasum":"f131175b5df7a148917161936b4dcea83ad10f66","tarball":"https://registry.npmjs.org/@elcubonegro/compare_files/-/compare_files-1.0.2.tgz","fileCount":3,"unpackedSize":5890,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfAw6uCRA9TVsSAnZWagAAo90P/ivf4MhShT+s7+BI6TDC\nXsuWG7GAstfXFf8pIrazXxi8Etxahy2HAUD9jkwhbX1flg9WRZbyRH9YwnbD\n3QWwEHVEzTsNPg2i+ZRA39XO5sDx5rQACqscTr9J3kKdOhmx2q8WNBZu/h9Q\nD4SKHuPacfpJ0MvECFgIKqAgANwqe/W9PSuZhiuupKdaPuBM6EteTHsdxiBO\n1e1bqK9oZaMm8cBC0Ouf5nMUMjeqoPm4QZShV7xEK7rrqhXl5CznhNqm5me5\nq8rZKXVygHFjCHghsxD0ZpVSXvL5Xe+xJ9kKnPeTJRu/9xrqj4QVB4d3e2SU\nWuMLhSP9eBY/MKgRzHj27PjF/d9AgNm5y11KZWaC7kchZ1vkIXeGUb151jlN\n6TyzD/HOcZqyM+j8icXv7M050k/Pca+tlJJRTmMWJRtS6k7rMrHhkfSbQ65k\nRRplq42C+gfEhDptJhnLNKvAymdvIuiLsEKxBcJD0JYsZ0HCVTFji/lOfTCw\nCkOvbsP0WmYSCypeKR8j5yMPVaeTbJ4GcTBAN0NZ6kphlw6/j66a15te5ZC9\nkNGsB9zUSfP4xQQVOgodcRh2+dVyWajLnqKI0/jyrHSYcdgj14UAnRC8bHu8\nfbaqVeCKePyafotV2WP73Y/7UXDx9CqHvL4VWilp/SXc94dGnwhK7n9sTz/R\nZ6mY\r\n=xKtc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD8vGqc17/A/oNc6Px5tb6nJHc5HA5Cp2pMh/+JIlxIjQIhAMEx2gFyXuuj2QxuS9syn67uqLjga6C+VlB1W0E2ADsL"}]},"maintainers":[{"name":"elcubonegro","email":"J.ALBAN@UNIANDES.EDU.CO"}],"_npmUser":{"name":"elcubonegro","email":"J.ALBAN@UNIANDES.EDU.CO"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/compare_files_1.0.2_1594035885770_0.18729552673268346"},"_hasShrinkwrap":false},"1.0.3":{"name":"@elcubonegro/compare_files","version":"1.0.3","description":"compare files, the diff() returns either null if no changes have occurred, or an object with a type (which is either added, removed or changed) and a file property pointing to the (first) according file.","main":"compare-files.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gist.github.com/98e17eb8bf9fda86c8cf80c918918134.git"},"keywords":["compare","files","content"],"author":{"name":"Florian Reuschel, Juan José Albán."},"license":"MIT","bugs":{"url":"https://gist.github.com/98e17eb8bf9fda86c8cf80c918918134"},"homepage":"https://gist.github.com/98e17eb8bf9fda86c8cf80c918918134","dependencies":{"rev-hash":"^3.0.0"},"devDependencies":{},"gitHead":"5f715dadeb3035de03678176d858f98faea9cf47","_id":"@elcubonegro/compare_files@1.0.3","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-XTCIOzAT4/fqmVGEfavT6k0Vd/x11pqf0W4Hy9nFvc6ssUYqXj5+wh8yr/+TzV91QqSMBKTgYkQqxFkcrgpj7Q==","shasum":"b8407be9d0b0fa77fc43c7950336c76628f4c73b","tarball":"https://registry.npmjs.org/@elcubonegro/compare_files/-/compare_files-1.0.3.tgz","fileCount":3,"unpackedSize":5965,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfAx3mCRA9TVsSAnZWagAAYH8P/0/XLP3mMw3sNeoBQyIr\nscPi1a/N5nLIlI+IpLdbJehplaVHksh30rYqRtbrZXhdUKEFdSfIXD8LKe6t\nCz0vNbxj7NSTciCOoYfPkozwseB2cmZiijOH+cSNu8SQzsTkAs1sSgHIOUKB\nFj1pOwq7Jqp41U4968iWUFwltwpLpmt6GFfZCqxRSu06R8hLiwMNKPq39/Ev\nP164gYWv3F+tjpLJJ7e4w4sa34jokSoVtu2nMhaEmJXJIExBvqh+eGYXJ0dH\nlvB4+DlrT/Llp9gqOu7fiuLnpYgQXjMjwu8SK/VpktjobhcYjwBj4bRRjm0n\nAU+c+1/ntFZb8M0DqdRBAovT1E0Mn9Bfew+NkUEq7Kww9wrmSKL4xX2dm2ms\nf58Z+pqDfjXIm5ItZuGtND8GMW4l0EqHnLcsQRIU++xR5iZb9tltRR0eR4+4\n9q5JingTe4UEAfe3IFpoEvuwgFKBomVTBGTYfv4sK9Z8RnjVKF4pDaCBJ5gm\nlggs6W7RZtbr5DRHOvZMLOWRT9iUrDzD6rlC5XR0fHwSNkEjGRFP4fNvdrhv\n8oW6HMO4v7uzOmctJ9gXeZp1+Wh/R/lwba6ZkT6H+KycJDm0B5lVAwH0nikV\nww16HtWUJFYUhsm5gzQG91qiP/7vkNk8MJroG4VxEWCzQonaF9aYBx7Vk4j9\ntk5R\r\n=e8xG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDsSW/11BQF0aMrRHquyQkk2PfwwSJTprx9fl9stIlOMwIhAK044P2/h6ilcNGTb3l9aavK159ITtOzYrGnjyPOPJnt"}]},"maintainers":[{"name":"elcubonegro","email":"J.ALBAN@UNIANDES.EDU.CO"}],"_npmUser":{"name":"elcubonegro","email":"J.ALBAN@UNIANDES.EDU.CO"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/compare_files_1.0.3_1594039782002_0.9705867684761502"},"_hasShrinkwrap":false},"1.0.4":{"name":"@elcubonegro/compare_files","version":"1.0.4","description":"compare files, the diff() returns either null if no changes have occurred, or an object with a type (which is either added, removed or changed) and a file property pointing to the (first) according file.","main":"compare-files.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://gist.github.com/98e17eb8bf9fda86c8cf80c918918134.git"},"keywords":["compare","files","content"],"author":{"name":"Florian Reuschel, Juan José Albán."},"license":"MIT","bugs":{"url":"https://gist.github.com/98e17eb8bf9fda86c8cf80c918918134"},"homepage":"https://gist.github.com/98e17eb8bf9fda86c8cf80c918918134","dependencies":{"rev-hash":"^3.0.0"},"devDependencies":{},"gitHead":"b0efe08751807d3321dab49fe22d12b2e58a7b2b","_id":"@elcubonegro/compare_files@1.0.4","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-b3ZVC32h/8vj5FquwFagdp86yhQYU2gFq4d83Cf4aHMON8bGZQDbJSgSGr+BLegUhHoRmaLP0L65ejkd1vw1dQ==","shasum":"eabf9a621f23669e924f977288d8d44aa1d9c327","tarball":"https://registry.npmjs.org/@elcubonegro/compare_files/-/compare_files-1.0.4.tgz","fileCount":3,"unpackedSize":5984,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfBQR3CRA9TVsSAnZWagAAeFsP/0sc7DAZxT1vN3vek2qO\n5qkk22BZ2793S3awA53Wirkl3nNWcXlBhbpExevMyJ2HKEwtTP9eBrN5OjuV\n3lBuNU3aa3MyzIvkGkhgnNquCgpuC+T4cADEkbXicuFI/gR29Ziznjd3pi1j\nVYMajx9rOMWDUuLXWU5vPLrvv/EIAsADfEFSjBMLVCxr91oQNjGx4GPdRGcS\nRMFf89PlNKYMy0+q/0RA/Ey55/1kwwYqRhQJnW5vFVhwtqc4FKF3Vfy2tMfj\nAAhj+2DzJRJ8XjluCdIjxoYXsGdVoixEGj9EVZJcihRrx1FG0FKwWLFQTGor\nQ8eJtRvV6PCrGyKcd09cjls4Tqxvt+FA6hcEKfTHEa/YFn1pKUV530E9TMUU\nDwanl+DIj37S0m3f37abaOIgRwarCrlc6D9RhQ+cK5NOD7QZkACjDfAF8h6w\nMZj7FOvTZ9qe6Ssx5FtiodNR4qzCnlXNtwYBWOPAdqNFT6Z1ihtr3rwC+Yce\nCWtWTSIapnY3p4RKdBqjAe0OY7HoncxPnQ7frEniAiX+gYNOoezbG0eosCCb\nsFLIyZRLrjFC0x7RO50O/JOnDJ1yPxOIwhlo0fWO7CKvJ+t+5aaenIeIUrBr\ngzbZfIrUD1Nu0gDWZWOqol+NlY/pyatytWXdvQjn0TFbAC7lySLZE6ijiz3y\nv0eL\r\n=3PkG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCkg08f43cJBD36B/D5O48rnKEmRnmuhjbs/N0rbTUw6AIgIpwHRZLhXa9Z5uB+0NgE4apmv5TXWD06k5WR/A6QCcE="}]},"maintainers":[{"name":"elcubonegro","email":"J.ALBAN@UNIANDES.EDU.CO"}],"_npmUser":{"name":"elcubonegro","email":"J.ALBAN@UNIANDES.EDU.CO"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/compare_files_1.0.4_1594164342967_0.3306406303271492"},"_hasShrinkwrap":false}},"time":{"created":"2020-07-06T11:16:08.515Z","1.0.0":"2020-07-06T11:16:08.669Z","modified":"2022-04-05T07:07:23.425Z","1.0.1":"2020-07-06T11:35:53.445Z","1.0.2":"2020-07-06T11:44:45.867Z","1.0.3":"2020-07-06T12:49:42.236Z","1.0.4":"2020-07-07T23:25:43.081Z"},"maintainers":[{"name":"elcubonegro","email":"J.ALBAN@UNIANDES.EDU.CO"}],"description":"compare files, the diff() returns either null if no changes have occurred, or an object with a type (which is either added, removed or changed) and a file property pointing to the (first) according file.","homepage":"https://gist.github.com/98e17eb8bf9fda86c8cf80c918918134","keywords":["compare","files","content"],"repository":{"type":"git","url":"git+https://gist.github.com/98e17eb8bf9fda86c8cf80c918918134.git"},"author":{"name":"Florian Reuschel, Juan José Albán."},"bugs":{"url":"https://gist.github.com/98e17eb8bf9fda86c8cf80c918918134"},"license":"MIT","readme":"# Compare File Lists in Node.js\r\n\r\nI encouter a certain situation pretty frequently: I have a known set of files on my file system which I need to scan to compare them against the same (or a similar) set of files at a later point in time (i.e. \"Did any of the files in this list change?\" or \"Did any of the files matching these criteria change?\").\r\n\r\nA quick example:\r\n\r\n```js\r\nimport glob from 'glob' // from the `glob` package\r\n\r\nconst images_now = glob.sync('/home/images/**/*.jpg')\r\n\r\n// Later (maybe even days or weeks later)\r\n\r\nconst images_later = glob.sync('/home/images/**/*.jpg')\r\n\r\n// Do the files in images_now and images_later differ in any way?\r\n```\r\n\r\nThe script below tackles this problem in a way as read-performant as possible (i.e. scan once, compare potentially many times). It checks if there are any differences between an earlier file list and the current file system and returns the first difference it finds.\r\n\r\n> **Note:** The script uses ES modules (transpiling most likely needed) and needs the [`rev-hash`](https://www.npmjs.com/package/rev-hash) package to be installed.\r\n\r\nIt works as follows:\r\n\r\n## Scan the Files\r\nWe need to create a profile of the files we're interested in:\r\n\r\n```js\r\nimport { profile } from './compare-files.js'\r\n\r\nprofile(glob.sync('/home/images/**/*.jpg'))\r\n```\r\n\r\nCalling `profile()` returns a plain JavaScript object. You may serialize and store it somewhere for later access.\r\n\r\n## Check for Changes\r\nComparing is the other way around: Read the stored profile and use `diff()`:\r\n```js\r\nimport { diff } from './compare-files.js'\r\n\r\ndiff(\r\n  glob.sync('/home/images/**/*.jpg'),\r\n  referenceData // The object we obtained through profile() earlier\r\n)\r\n```\r\n\r\nThe `diff()` returns either `null` if no changes have occurred, or an object with a `type` (which is either `added`, `removed` or `changed`) and a `file` property pointing to the (first) according file.\r\n\r\nFor example:\r\n```js\r\n{ type: 'added', file: 'new.jpg' }\r\n// or\r\n{ type: 'removed', file: 'no-longer-exists.jpg' }\r\n// or\r\n{ type: 'changed', file: 'photoshopped.jpg' }\r\n```\r\n\r\n> **Note:** If a difference is found, don't forget to invalidate the old profile and create a new one if needed.","readmeFilename":"readme.md"}