Skip to content

Instantly share code, notes, and snippets.

@capr
Last active March 24, 2024 19:11
Show Gist options
  • Save capr/faafcb47439cd6bde2ff to your computer and use it in GitHub Desktop.
Save capr/faafcb47439cd6bde2ff to your computer and use it in GitHub Desktop.
1c94d7de000000033a627d59c163e4f4d9f636681e550fecca833a3094cc810f798192417245401ac63fa363aa6e97c5448707984c81c42a5fb8ef2581315f3d728d085e758f3f6b30089913d97a856cba248bbcb2b7f43679b891379931011c50473b9275f2a8f81d9163f2b815dee8b1df49f9a9e6c71f7b090adbd1c0f3cefbd17dc4f210fd2e5be7198361134e3ed4dc406b28fe59a5c58ac9448f549637185c1411911980aaa702cd64ac5d19d8bb5e334ea239433ee3f7906cad0629013ddfef2ea0e20d6941a4a12d6ee3f38614c4e58d1b86f6c4472e85a9d612d4b89d7ba785a3e7516f96ac0d98b43f3e0c3267cfd32dcbc159ea0d437e2873836550d8fdf727b77f4650c5b414340a3ad9df2ae23d8b2d31eee29831e4b6a285b0615b0f0c8e1a3eba2fd4ca657279b95b775a116f84b739a0dd762d3abecfdb2d8202497603e1d56e7a6559477ea4bf8ceca0723a022f826c1dd9e652f48cd956f739f9f8e4102277deedff2fdda3eff5a88d84477a2ba0e9c4fddb1e32c56bdf4d3257f32db83fd770015d867d4fbbc3fe27f5e74957cc40580c174449b5701f447eefaa0abdca7c6b1917f731f17cb9f4cbcd71926d41b8d5d4362d4c53d751c06f03bae47ea6963bd03b389714db3d62f7088cd6aabd3cd9e0e3d9247128ea68f6bf381b5dbdb00ee9e0496b926d1f959ce794e2134430cc35589054be56a490138d553e75d523bbc65024e6aa12fba621268cac16d2f480a35b33594fe4d6578fb2a55e8f81c37b5c614771c817b414ff06aa7207e47de1e3c2f3fde5f11cc45b48efb02c1b1309167672bfd33e073c1322caf8f02a1fbfef07ddbab06d4058405db067d850aff34aa5f6f59af8836184883c78b610c8244884b135e9ff087725305f77a775cc8671d6f4b9ab490d2ac3e8ea63b75d5ed249353e6b19b496349e40d2d9ccdb17a22c6e1b6beb45e2bdab3b0f63285e5f1e9cf39a8b77224743c7b4f70b14552f9adcd26349f9554c49fdcf37e32386928e85583148ee73bf71502d4428c940c36fb293afaa3b779c3df25a9055a5114dd7a4a077a368c7df6430411ee3c43e1b24db486a43dd03b71904122bb6a2850d3d16ca827f9e6c44451fc70ba4e267f368a714fccb4e819e323466de997c9eaba95e9e60ec7d1964d780b07457e39d47dd652eb55bb8d2218b6457e5efa8b8ee93362a2c4e544b4381cb47dd042bf80c1aafc0c1a2e0554979ce1a9fd73f2a06dcc6d804051473b099e85d5e3e42b34a6cf318c80aaac1d1bdbb5e52f0b2073cd30b1a8c247fd9e3884e5426589ea95a5e8bd5677edbd3b35ac71ce97f766e7ffd87646cd477b30121c7afb08939eaec593c0beca8651920cf54af73b8d5e562b0fe70ba1a56ec64faa358d309e989c0a5ea83dd8a30e18c66c20df090a34efbcf50f992246ed475c265374188b46ff61f6bfb501b3fe6ff6b497e8b6eca72c5a0d52031505edb57b9eee8d9ab42d3d72ad335eb3693c3702ec50fc247cf192cf00d334f1ccbc1b5c64e088e850ec5d61bdb2036ee5a8d1afe6ea62ebde9caeac4bf5d0b0f55457dec554234db79c1cb60753e4ea82206feebd369a53034a496bb6f5afd46fe7c7c0cfc147d06fb4ea2e872adc9cd0ad14971b3846c0412ebb90ab6451f033d25d6254dff6ea1fb6b000a9fd25bc624e3a45e58f37939e8d73b4c84d2e0b12b1b4949891fbe2cae016a37f0edbb7d1b06defe90b7a4959a9aa870a1491ead7207d46d0bbd09f69521fc2112e687b036dd6446def05d7c29a96f81c0f6710f18d3b9cbea10c39fb9da9e6037bdda12eacb9fdaea232654b1c3b76d291ab3a3bfabe50e5bd8efedcd5a5cba09b10cf925658737c5b2b6a18c0262b91ed1c6feecae7c4e68595d12d62b9fb3904f951f180f94d0ca4dac932a389059f33611ede0b0da6b2c711d6889a1fd8f14e19cdb990632600e390ceb1a59034a8829929a019e529d7e22030ca1bef84e818cc52a77147863e9c97db9dbd7fa72787e67dee3d6cd3874d1d3f7b181269144f5ae6bf64f2bf59af275cb401f8e7c359bdf785b5601b230376916223558159dfaf6fa2c10bad393b03c448e42847dfcfbf9dc169806306a5fc517881cea8cf66b850fab060f3465ec92a6c442d32ce67fe061510c5e5167ded47c139f0d2baaf3f19ebe324c8aa923cc3b27c662435341ed2b5e7420f1820d4af2ded54184b7524a6da3f36ecef83f393e250cd07d88ce10d3879cc23bf297216480a06f7f63324dbafaab14655beaa88eddc857b106badb3b72001a7302958accaceac181f22b1e3b584ba63dceef07760da7dd6fd5851de069f2cdbc0917fd37288dd490bcadb02c81a2a78215d217589f10d562ea1cfdd44cf3d73e530fe4545dc48a56f4eff45dc3f9de54a5986f6a3b3bd0ebe79ff45af57d02de6f8eda480ae2080e413f551562167f50139a32e028d4de850f6eefffd39e7522fd737eb7289a43970dd23316b58b11d339609c37e6fc2c404cafda48dbddbaccbee7a76832d0f9cb9e8b7c09cbb2543dd5cebd92d7196a67be2670dee0ccce33a9d53eeaa58773a2d70d29bc55050babcf3d2b0b947c134daecdf5278004fa4efcf12683af22943a2eb7236b2c398c6f6596c0d6fd9acaf984eaa5d623fcc76c8e126e71931df0896cfa4744b394c9916c06e8b7105673361e5e5ee8342465ee98fc1016e510c2290ed290cc064eae9f066d957f97156de54ff712002d5fe4adb1f73644a2a836c59bc2e998e3d614a11242e2a42870bae56d6a242cb7302af0ab74a7bbb3de9a7ebe949cea53badf9168088478fdbb7174b7384e865f2ae40b04afa4c3e83ec22ec246ffdfd2bb380981f28e3d6209c3ed0c254fc66b7f58498a606f5580ab6821ccc942313c670ff5c11f85a7c5635610e669fa00aeb9d8dab4295f54781f7915b9897c865453065ca9f26a9c2f758ea29b85ad984318f11a137bb53c8785ff22e4c7b86391392f82cc959150e9bb7f3d0f8ff7978429e93fe10be409bcfc0c481a20cbf8986e6c8f4ea1123263d4b0a8e5df0dd9657348f731ece857335be7fe60e994eded2c5698aa689cae9b9789d5eb489f32ba45de5aa34dc971063bdef5f9b4245746bf283deea45ee74e1a8434c468a316f8a61adef157c59bb5c8bd5b7d177751b1e813a566ff48907a20adfa3327f08cb4fd22e9ce93b2577dc3491b440b75c812ced9b5888f005ac0c8374322e2f479835bbf09e376b18a80faf5659e6aff05986adf90994d1ec19bd15c384c79b6466a8f5ef949d658b7f66abe9a6c68ff74bfa7d4fab2c2a931448d1ca4e9d4f4810dc9887f28584518ec7911dfb29f1c4e00bcc23478552f2b925e590e792d1b96060a7e97c65e4bfefb0907e6efe2b1812548f09678c06ecb6ea916cced16a153ce1d61466e0849bc38c9b4ca34b10864791a9672aaec58d534c1e8da0454e21d03c3d92805d985fed9d8b2fb73bee1f8cbd86156b083fdc64a781a1f5a6481890eee8008a3c30f02c96c3a0396f03d39c91f322ae5b9dbca283516cafa3c2df16524c8c56151a3d3e06bc801385b47c9298b97d8b97f5064f72ee7e8e92fb03748b4f04f00c0c4091bf5131bad600d2c6bfc96e3e1d83fe24a789e24f31b9e4e4b24747bd84289bc84c34c0d04acaa414d4c2948342e642b859a485d82f66b14907243fa272541b138734ffa2282fcb16a0fae7504d32c7cb0b9be7ce25a62fdd4e9f86867098a1abf433c76cb7f1575fa52b85435f465376b5805186298ab03f41c645da2491c4f0c7a702a9c76395f9cf1a04b379c1bee64dc3d591ba847508d3a97f269829cc983c4a5161bd440503fb1fe3894ae4e174f255d0b6f8b321e55975ce16a6b7892be09475cc2a70096490f26db3e3ff36a130d4b6a1fea129eec8edb0d4bd19764abb045132ec9ad070811b186fbed73813ecb064fed4f26b2414d18a36e2138283c332d84758de367331956dbd00bd2150e9e199003d5ba08594f0139cd5463bbda8f3912e4eb3acb35545faf487f76cb59e2066a130b2d87d4e5c454f376fee6bed9c9b2ff894a7e38ca977b18734684331c46bea034c4851f990096d56506701a3a60ad8526ca3462ce7061b8858edc6e5d5d18d3234eced8c54c957ab79cc5bbb41d9135ad5985292d4b06280e577fa96646fcd7e965ce819c8ea49707fabcce7140eab96b1d8e7b4c78eccf231277a62d5944018e8c789699dc1cf2b96f8f0ea8a6df9497ba3c080ec387d2532df771a1eccbd5a293ca237a443101a4be2332cf38d21e05a4f3933f694cd1a74c871348d417844a014aa94e2c99ea9711a23fe5fbbef85d74503daf2bc149c632338a8acac6c6f16b57754becd10dcd17bd463343f9a5ea780d31af5cac4bf4f0ea7924ca62a3bcd1191d8d884cc3e4190d07714eb9648194cf0c9014b7049c5ed67be3ecfeac056152111c13c81ac194c8df0402efdd78d084592d4fffe395b792169c77bb30f6535b2b3da180c9b31d1b173e29039511bb0e726fb87e5b3596ae07efd541352b60a1d8e1c2f4a0af0f9c2b5ebe43208c9c0c9d07d0c55168d63bea9f30e57176b1417c0ff2e61e994aeaa3280f1ba1c9ea243f9c4f88c9fe4cefa42af06947d0391619b1481b92dfbd22e35804862778cc4345b2fb7085eb1a9318332fcc4a0d7780c4f09245b10e766e6609420433a74abe7d7fc85bda2bf50a11a7d52cdb3d695c83149095a35b69f5e7e8984157556cdbc923e57a14d67fdbf48e67305b40b5642c23edc71ab9b333b63124874cd4c81b58fd3a02fee512bfb14d9f715e2fb4477fc2271d83cde3d517c7c4d9b3ec56fe5f609f508a8d5f109c5eb9216b6fbe453552440b9ada5ce171af0b1a9a4ab20e0d2e97aafd42b77f2ad98ea708d83d029b561b4ddd20067336581e3a1ebc79e82e3aeb7da7d1346f679ced4cb4bce19bb02cd3884e0def59483c50a1e8e9957f01ec0b338d25064761681954b6c3502dc55f78e2cdf04ba7b718fbedf9d6cbc3d2275286fccb0425ba6b5c2521e3225778d64316eedd588cffeff3435f2fbf7e029f6c3bde99f9bf3cfabd1aaf6a6df66953ac72bbc07c8417c90058f4da4bb20304a9bc0ffe295e26509f8f6fbff0d90165d06cbd5f0c2cb0306b1aa338c7c095ccf9f1ee9ccfb7460338b4469ec074f2a2e38bb124acde60865e62d0ef88a4c635f8303cd25cae4cb487b58bfedb2978cbb1f2356f25faebf7c3a1f85950c45fcd93053e7383f331125c51f16a8a7b4a40c8e54792762c2341fe5bde2880b854ec2b8d0f6afc89f590d5c51460af872c625614dcfa54fc733f039414da15d82ae5a6e574c5db93e50ae0a505f002b773826257f7e0409ed9d99421811eaf195cba4c75f413377c8962401d48a1717aa940ab6bda4c0828ecce374d4c8038e9fda4079c8ad2178e272708170ea0b93442bcc52f040dc181fc79bad47e2432766083e18ce9b2a357799ce86d0b0b2cb118c1946e93b5b6e768f1fbd15cba62ea9802e0ea64f78f1bde9fa14dc671e7157cc14e0455032eca07133f182034c5f248c1de67f516f1ddf508104bb18fc25e678adeef016f003df27d53e18e8371be8a4aa526ff3f44596bed3a58c2e1660e66f9df07a7e1828328093ab46622956e07e49fce12b173ccf7d6271d57b9f668d621a1827f6a1583635f20ae926f640596937770e7ff9289cb79fbc93326b17ae40b4dd157f4f0a832f5ac88c6330cc17346f5772ae9ea2c5480bb78296b2250e2513ee45078da65a01bbf3fac8e2a3cd1c0453cae6db62fdd1f51413d4072f1392d3fe127c70b96fe23194f8a6f52216c997587cf46d452c3d041220a18b5ed42760f9541215c8489570915857ceddd9e0dc67cecc4f74422d8c496b57da34f1037e14ec0ae925907f4b3d14e4ff134fc0018121744218e5838c33596028f48c9c5afd1313e5677e7e0894af1f2f1820149f8a9683772257548bce5caff09af820120a9eb15ea5935674b13945104e9fddf32aa46b962a9e3a26dc4db88e75d6b45e33736792d4be94138da4b5dcb398413cf1f70f5d517b6a97984601617d05bb223cd571c55c4861bb5ca0ee382cd6b7c9969be23899aa5c5775962fbf7a4d9147334285255423e81c3951e3150c4706023cbe6350ce414036aa7feef6a604888411b9d56316e4c42471759eede41d2cb2fe234b94ade461d59b4f5bde4c6c3981f39e905043657263e5bf1db0a8a6eb505e29ba98f623f4173cf35598520af124495c9e55d14ae9a9b28c189c7b0d74cafee2d93ca24cdabc7325823907a3c0a2a42a055f25d657951bfee58c12f6a81e0af063f8881887ee267bce3cca45f45d5db18d912cffd1412e4254da167d460eee5d0fc87871e04f82129d39a92e367dd88ff6000826ae817d28fe1957fcfee7f38e438d814c9978da754c452f0862a8c59000267cb0c648f526f9a4a164bdca08e914d06b13399a8bd176195b191c65d45738650c51232b05ca0a6c2428b19cdbef5111ca79735da4a89585e0216dfef57e606e1cbae811bb0b9bb82ab0016fc618560c23d9d02edfffc95aaf184588ce035e7bc3985005a34dcb0adaa7e85e190ce6e4c0c98efc8c0328a3aded2330a3a1c0dcb557498c56dfd15f70166990a982179512907f41588727536e398ab8426bd7f6bc3f6f69ad5738e4f718c12c1cc1d10ccce2912ca7eab2db9703b21c66adc14a5f94f498d4e58efebcef40f802e819c02ba2cc50f35bae4d007af66576d079f4e61d8d2fc44d33231fcae47fd7473c858208b16ab87f20c43392ed1b141b0d191735475c8b516c8fedc04e8d96adda34dc1cc48104d5a2b5f4fcc295018c4b8a979b1420a1e7005e19fc7e54e55c623c7c5ca2229e4ffc5def6a646a0d98fa4a80e5bcc13c481a3a27aa829e05283fe174a233358e8100529bba4fde58bf54fe510abd8f3e39a74dc7160c8ea7fca3fb5231832eef08a57f0d774502ceafd03a83301804beabbbb82d35f7594ed0474ab529de72de48c1b8494dc3372e0e9f80db495514b0fabb01862c6a1969d83dbc67f863e793f42769abb3ec77dc968d9447f44a1f4e0f4e03b50b08af3c57c6c87d4b53c842cc0a98faa52812ba47b65c2a9cb621497dec2976104628ba1868031289e083812e1fb9ebbaddde239591552a0f05d63bc6ea73d345600107e88de2bb8af2823e92bfed517c4976898a18091ad0fec5168bfe4912fb3072423a91c2a0202d236651dc0bda46c986bcd1fe50aaab0bd6397a912a7a6b7dc963fa6927ca254457e0ea9b7b41a29e73800282f25e8ea66131eab418373303d614f24b234c6c11d96ba28734b0546d04bea667cd2020747474ee48d0f53a197c8b25a870fd970f507d3d3d353df51ed0b7a35e31619ca3d6c6dd3532b3ddc604fe7571311b296c7746f5e5b667717a6fc987501fc600b400aaa2f4ac93660f0b284d0628315af5fa173b72c776a20653939
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment