--udFi5TfI4P Content-Type: text/plain; charset=us-ascii Content-Description: message body text Content-Transfer-Encoding: 7bit Neil sent me a patch a week or two ago that implemented a DEBUG_SAVEALL flag for the gc module. If set, it assigns all cyclic garbage to gc.garbage instead of deleting it, thus resurrecting the garbage so you can inspect it. This seems not to have made it into the CS repository. I think this is good mojo and deserves to be in the distribution, if not for the release, then for 2.1 at least. I've attached the patch Neil sent me (which includes code, doc and test updates). It's helped me track down one (stupid) cyclic trash bug in my own code. Neil, unless there are strong arguments to the contrary, I recommend you submit a patch to SF. Skip --udFi5TfI4P Content-Type: application/octet-stream Content-Description: patch to get gc to resurrect garbage instead of freeing it Content-Disposition: attachment; filename="saveall.patch" Content-Transfer-Encoding: base64 Ci0tVXVndldBZnNnaWVaUnFnawpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9 dXMtYXNjaWkKCk9uIFN1biwgQXVnIDIwLCAyMDAwIGF0IDA5OjE4OjQ3UE0gLTA1MDAsIFNr aXAgTW9udGFuYXJvIHdyb3RlOgo+IFllcywgSSB3b3VsZCBsb3ZlIGl0IGlmIHlvdSBjb3Vs ZCAicmVpbmNhcm5hdGUiIGdhcmJhZ2UgdW5kZXIgZ2MgbW9kdWxlCj4gY29udHJvbC4KCk9r YXksIGEgcGF0Y2ggaXMgYXR0YWNoZWQuICBJZiB0aGlzIHdvcmtzIG9rYXkgZm9yIHlvdSB0 aGVuIEkgd2lsbAp1cGxvYWQgaXQgdG8gc291cmNlZm9yZ2UuCgogIE5laWwKCi0tVXVndldB ZnNnaWVaUnFnawpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkK Q29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9InNhdmVfYWxsLmRp ZmYiCgpJbmRleDogMC4xOC9Nb2R1bGVzL2djbW9kdWxlLmMKLS0tIDAuMTgvTW9kdWxlcy9n Y21vZHVsZS5jIFNhdCwgMTIgQXVnIDIwMDAgMTE6NDc6NDQgLTA0MDAgbmFzIChweXRob24v Ti8zOF9nY21vZHVsZS5jIDEuMyA2NDQpCisrKyAwLjE4KHcpL01vZHVsZXMvZ2Ntb2R1bGUu YyBTdW4sIDIwIEF1ZyAyMDAwIDIzOjIwOjQxIC0wNDAwIG5hcyAocHl0aG9uL04vMzhfZ2Nt b2R1bGUuYyAxLjMgNjQ0KQpAQCAtNTMsMTAgKzUzLDEyIEBACiAjZGVmaW5lIERFQlVHX1VO Q09MTEVDVEFCTEUJKDE8PDIpIC8qIHByaW50IHVuY29sbGVjdGFibGUgb2JqZWN0cyAqLwog I2RlZmluZSBERUJVR19JTlNUQU5DRVMJCSgxPDwzKSAvKiBwcmludCBpbnN0YW5jZXMgKi8K ICNkZWZpbmUgREVCVUdfT0JKRUNUUwkJKDE8PDQpIC8qIHByaW50IG90aGVyIG9iamVjdHMg Ki8KKyNkZWZpbmUgREVCVUdfU0FWRUFMTAkJKDE8PDUpIC8qIHNhdmUgYWxsIGdhcmJhZ2Ug aW4gZ2MuZ2FyYmFnZSAqLwogI2RlZmluZSBERUJVR19MRUFLCQlERUJVR19DT0xMRUNUQUJM RSB8IFwKIAkJCQlERUJVR19VTkNPTExFQ1RBQkxFIHwgXAogCQkJCURFQlVHX0lOU1RBTkNF UyB8IFwKLQkJCQlERUJVR19PQkpFQ1RTCisJCQkJREVCVUdfT0JKRUNUUyB8IFwKKwkJCQlE RUJVR19TQVZFQUxMCiBzdGF0aWMgaW50IGRlYnVnOwogCiAvKiBsaXN0IG9mIHVuY29sbGVj dGFibGUgb2JqZWN0cyAqLwpAQCAtMzAwLDE5ICszMDIsMTcgQEAKIGhhbmRsZV9maW5hbGl6 ZXJzKFB5R0NfSGVhZCAqZmluYWxpemVycywgUHlHQ19IZWFkICpvbGQpCiB7CiAJUHlHQ19I ZWFkICpnYzsKLQlpZiAoZ2FyYmFnZSA9PSBOVUxMKSB7Ci0JCWdhcmJhZ2UgPSBQeUxpc3Rf TmV3KDApOwotCX0KIAlmb3IgKGdjID0gZmluYWxpemVycy0+Z2NfbmV4dDsgZ2MgIT0gZmlu YWxpemVyczsKIAkJCWdjID0gZmluYWxpemVycy0+Z2NfbmV4dCkgewogCQlQeU9iamVjdCAq b3AgPSBQeU9iamVjdF9GUk9NX0dDKGdjKTsKLQkJLyogQWRkIGFsbCBpbnN0YW5jZXMgdG8g YSBQeXRob24gYWNjZXNzaWJsZSBsaXN0IG9mIGdhcmJhZ2UgKi8KLQkJaWYgKFB5SW5zdGFu Y2VfQ2hlY2sob3ApKSB7CisJCWlmICgoZGVidWcgJiBERUJVR19TQVZFQUxMKSB8IFB5SW5z dGFuY2VfQ2hlY2sob3ApKSB7CisJCQkvKiBJZiBTQVZFQUxMIGlzIG5vdCBzZXQgdGhlbiBq dXN0IGFwcGVuZAorCQkJICogaW5zdGFuY2VzIHRvIHRoZSBsaXN0IG9mIGdhcmJhZ2UuICBX ZSBhc3N1bWUKKwkJCSAqIHRoYXQgYWxsIG9iamVjdHMgaW4gdGhlIGZpbmFsaXplcnMgbGlz dCBhcmUKKwkJCSAqIHJlYWNoYWJsZSBmcm9tIGluc3RhbmNlcy4gKi8KIAkJCVB5TGlzdF9B cHBlbmQoZ2FyYmFnZSwgb3ApOwogCQl9Ci0JCS8qIFdlIGFzc3VtZSB0aGF0IGFsbCBvYmpl Y3RzIGluIGZpbmFsaXplcnMgYXJlIHJlYWNoYWJsZSBmcm9tCi0JCSAqIGluc3RhbmNlcy4g IE9uY2Ugd2UgYWRkIHRoZSBpbnN0YW5jZXMgdG8gdGhlIGdhcmJhZ2UgbGlzdAotCQkgKiBl dmVyeXRoaW5nIGlzIHJlYWNoYWJsZSBmcm9tIFB5dGhvbiBhZ2Fpbi4gKi8KKwkJLyogb2Jq ZWN0IGlzIG5vdyByZWFjaGFibGUgYWdhaW4gKi8gCiAJCWdjX2xpc3RfcmVtb3ZlKGdjKTsK IAkJZ2NfbGlzdF9hcHBlbmQoZ2MsIG9sZCk7CiAJfQpAQCAtMzI5LDE3ICszMjksMTcgQEAK IAl3aGlsZSAodW5yZWFjaGFibGUtPmdjX25leHQgIT0gdW5yZWFjaGFibGUpIHsKIAkJUHlH Q19IZWFkICpnYyA9IHVucmVhY2hhYmxlLT5nY19uZXh0OwogCQlQeU9iamVjdCAqb3AgPSBQ eU9iamVjdF9GUk9NX0dDKGdjKTsKLQkJLyoKLQkJUHlMaXN0X0FwcGVuZChnYXJiYWdlLCBv cCk7Ci0JCSovCi0JCWlmICgoY2xlYXIgPSBvcC0+b2JfdHlwZS0+dHBfY2xlYXIpICE9IE5V TEwpIHsKLQkJCVB5X0lOQ1JFRihvcCk7Ci0JCQljbGVhcigoUHlPYmplY3QgKilvcCk7Ci0J CQlQeV9ERUNSRUYob3ApOworCQlpZiAoZGVidWcgJiBERUJVR19TQVZFQUxMKSB7CisJCQlQ eUxpc3RfQXBwZW5kKGdhcmJhZ2UsIG9wKTsKKwkJfSBlbHNlIHsKKwkJCWlmICgoY2xlYXIg PSBvcC0+b2JfdHlwZS0+dHBfY2xlYXIpICE9IE5VTEwpIHsKKwkJCQlQeV9JTkNSRUYob3Ap OworCQkJCWNsZWFyKChQeU9iamVjdCAqKW9wKTsKKwkJCQlQeV9ERUNSRUYob3ApOworCQkJ fQogCQl9Ci0JCS8qIG9ubHkgdHJ5IHRvIGNhbGwgdHBfY2xlYXIgb25jZSBmb3IgZWFjaCBv YmplY3QgKi8KIAkJaWYgKHVucmVhY2hhYmxlLT5nY19uZXh0ID09IGdjKSB7Ci0JCQkvKiBz dGlsbCBhbGl2ZSwgbW92ZSBpdCwgaXQgbWF5IGRpZSBsYXRlciAqLworCQkJLyogb2JqZWN0 IGlzIHN0aWxsIGFsaXZlLCBtb3ZlIGl0LCBpdCBtYXkgZGllIGxhdGVyICovCiAJCQlnY19s aXN0X3JlbW92ZShnYyk7CiAJCQlnY19saXN0X2FwcGVuZChnYywgb2xkKTsKIAkJfQpAQCAt NjA2LDYgKzYwNiw3IEBACiAiICBERUJVR19VTkNPTExFQ1RBQkxFIC0gUHJpbnQgdW5yZWFj aGFibGUgYnV0IHVuY29sbGVjdGFibGUgb2JqZWN0cyBmb3VuZC5cbiIKICIgIERFQlVHX0lO U1RBTkNFUyAtIFByaW50IGluc3RhbmNlIG9iamVjdHMuXG4iCiAiICBERUJVR19PQkpFQ1RT IC0gUHJpbnQgb2JqZWN0cyBvdGhlciB0aGFuIGluc3RhbmNlcy5cbiIKKyIgIERFQlVHX1NB VkVBTEwgLSBTYXZlIG9iamVjdHMgdG8gZ2MuZ2FyYmFnZSByYXRoZXIgdGhhbiBmcmVlaW5n IHRoZW0uXG4iCiAiICBERUJVR19MRUFLIC0gRGVidWcgbGVha2luZyBwcm9ncmFtcyAoZXZl cnl0aGluZyBidXQgU1RBVFMpLlxuIgogOwogCkBAIC03MDUsOSArNzA2LDcgQEAKIAkJCSAg ICAgIE5VTEwsCiAJCQkgICAgICBQWVRIT05fQVBJX1ZFUlNJT04pOwogCWQgPSBQeU1vZHVs ZV9HZXREaWN0KG0pOwotCWlmIChnYXJiYWdlID09IE5VTEwpIHsKLQkJZ2FyYmFnZSA9IFB5 TGlzdF9OZXcoMCk7Ci0JfQorCWdhcmJhZ2UgPSBQeUxpc3RfTmV3KDApOwogCVB5RGljdF9T ZXRJdGVtU3RyaW5nKGQsICJnYXJiYWdlIiwgZ2FyYmFnZSk7CiAJUHlEaWN0X1NldEl0ZW1T dHJpbmcoZCwgIkRFQlVHX1NUQVRTIiwKIAkJCVB5SW50X0Zyb21Mb25nKERFQlVHX1NUQVRT KSk7CkBAIC03MTksNiArNzE4LDggQEAKIAkJCVB5SW50X0Zyb21Mb25nKERFQlVHX0lOU1RB TkNFUykpOwogCVB5RGljdF9TZXRJdGVtU3RyaW5nKGQsICJERUJVR19PQkpFQ1RTIiwKIAkJ CVB5SW50X0Zyb21Mb25nKERFQlVHX09CSkVDVFMpKTsKKwlQeURpY3RfU2V0SXRlbVN0cmlu ZyhkLCAiREVCVUdfU0FWRUFMTCIsCisJCQlQeUludF9Gcm9tTG9uZyhERUJVR19TQVZFQUxM KSk7CiAJUHlEaWN0X1NldEl0ZW1TdHJpbmcoZCwgIkRFQlVHX0xFQUsiLAogCQkJUHlJbnRf RnJvbUxvbmcoREVCVUdfTEVBSykpOwogfQpJbmRleDogMC4xOC9MaWIvdGVzdC90ZXN0X2dj LnB5Ci0tLSAwLjE4L0xpYi90ZXN0L3Rlc3RfZ2MucHkgU2F0LCAxMiBBdWcgMjAwMCAxMTo0 Nzo0NCAtMDQwMCBuYXMgKHB5dGhvbi9PLzFfdGVzdF9nYy5weSAxLjIgNjQ0KQorKysgMC4x OCh3KS9MaWIvdGVzdC90ZXN0X2djLnB5IFN1biwgMjAgQXVnIDIwMDAgMjM6MTc6MDUgLTA0 MDAgbmFzIChweXRob24vTy8xX3Rlc3RfZ2MucHkgMS4yIDY0NCkKQEAgLTEsMTggKzEsMzUg QEAKK2Zyb20gdGVzdF9zdXBwb3J0IGltcG9ydCB2ZXJib3NlLCBUZXN0RmFpbGVkCiBpbXBv cnQgZ2MKIAorZGVmIHJ1bl90ZXN0KG5hbWUsIHRodW5rKToKKyAgICBpZiB2ZXJib3NlOgor ICAgICAgICBwcmludCAidGVzdGluZyAlcy4uLiIgJSBuYW1lLAorICAgIHRyeToKKyAgICAg ICAgdGh1bmsoKQorICAgIGV4Y2VwdCBUZXN0RmFpbGVkOgorICAgICAgICBpZiB2ZXJib3Nl OgorICAgICAgICAgICAgcHJpbnQgImZhaWxlZCAoZXhwZWN0ZWQgJXMgYnV0IGdvdCAlcyki ICUgKHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0ZXN0X3Jlc3VsdCkKKyAgICAgICAgcmFpc2UgVGVzdEZhaWxlZCwg bmFtZQorICAgIGVsc2U6CisgICAgICAgIGlmIHZlcmJvc2U6CisgICAgICAgICAgICBwcmlu dCAib2siCisKIGRlZiB0ZXN0X2xpc3QoKToKICAgICBsID0gW10KICAgICBsLmFwcGVuZChs KQogICAgIGdjLmNvbGxlY3QoKQogICAgIGRlbCBsCi0gICAgYXNzZXJ0IGdjLmNvbGxlY3Qo KSA9PSAxCisgICAgaWYgZ2MuY29sbGVjdCgpICE9IDE6CisgICAgICAgIHJhaXNlIFRlc3RG YWlsZWQKIAogZGVmIHRlc3RfZGljdCgpOgogICAgIGQgPSB7fQogICAgIGRbMV0gPSBkCiAg ICAgZ2MuY29sbGVjdCgpCiAgICAgZGVsIGQKLSAgICBhc3NlcnQgZ2MuY29sbGVjdCgpID09 IDEKKyAgICBpZiBnYy5jb2xsZWN0KCkgIT0gMToKKyAgICAgICAgcmFpc2UgVGVzdEZhaWxl ZAogCiBkZWYgdGVzdF90dXBsZSgpOgogICAgIGwgPSBbXQpAQCAtMjEsNyArMzgsOCBAQAog ICAgIGdjLmNvbGxlY3QoKQogICAgIGRlbCB0CiAgICAgZGVsIGwKLSAgICBhc3NlcnQgZ2Mu Y29sbGVjdCgpID09IDIKKyAgICBpZiBnYy5jb2xsZWN0KCkgIT0gMjoKKyAgICAgICAgcmFp c2UgVGVzdEZhaWxlZAogCiBkZWYgdGVzdF9jbGFzcygpOgogICAgIGNsYXNzIEE6CkBAIC0y OSw3ICs0Nyw4IEBACiAgICAgQS5hID0gQQogICAgIGdjLmNvbGxlY3QoKQogICAgIGRlbCBB Ci0gICAgYXNzZXJ0IGdjLmNvbGxlY3QoKSA+IDAKKyAgICBpZiBnYy5jb2xsZWN0KCkgPT0g MDoKKyAgICAgICAgcmFpc2UgVGVzdEZhaWxlZAogCiBkZWYgdGVzdF9pbnN0YW5jZSgpOgog ICAgIGNsYXNzIEE6CkBAIC0zOCw3ICs1Nyw4IEBACiAgICAgYS5hID0gYQogICAgIGdjLmNv bGxlY3QoKQogICAgIGRlbCBhCi0gICAgYXNzZXJ0IGdjLmNvbGxlY3QoKSA+IDAKKyAgICBp ZiBnYy5jb2xsZWN0KCkgPT0gMDoKKyAgICAgICAgcmFpc2UgVGVzdEZhaWxlZAogCiBkZWYg dGVzdF9tZXRob2QoKToKICAgICBjbGFzcyBBOgpAQCAtNDcsNyArNjcsOCBAQAogICAgIGEg PSBBKCkKICAgICBnYy5jb2xsZWN0KCkKICAgICBkZWwgYQotICAgIGFzc2VydCBnYy5jb2xs ZWN0KCkgPiAwCisgICAgaWYgZ2MuY29sbGVjdCgpID09IDA6CisgICAgICAgIHJhaXNlIFRl c3RGYWlsZWQKIAogZGVmIHRlc3RfZmluYWxpemVyKCk6CiAgICAgY2xhc3MgQToKQEAgLTYw LDQwICs4MSw3MyBAQAogICAgIGIgPSBCKCkKICAgICBiLmIgPSBiCiAgICAgZ2MuY29sbGVj dCgpCi0gICAgZ2MuZ2FyYmFnZVs6XSA9IFtdCiAgICAgZGVsIGEKICAgICBkZWwgYgotICAg IGFzc2VydCBnYy5jb2xsZWN0KCkgPiAwCi0gICAgYXNzZXJ0IGlkKGdjLmdhcmJhZ2VbMF0p ID09IGlkX2EKKyAgICBpZiBnYy5jb2xsZWN0KCkgPT0gMDoKKyAgICAgICAgcmFpc2UgVGVz dEZhaWxlZAorICAgIGZvciBvYmogaW4gZ2MuZ2FyYmFnZToKKyAgICAgICAgaWYgaWQob2Jq KSA9PSBpZF9hOgorICAgICAgICAgICAgZGVsIG9iai5hCisgICAgICAgICAgICBicmVhawor ICAgIGVsc2U6CisgICAgICAgIHJhaXNlIFRlc3RGYWlsZWQKIAogZGVmIHRlc3RfZnVuY3Rp b24oKToKICAgICBkID0ge30KICAgICBleGVjKCJkZWYgZigpOiBwYXNzXG4iKSBpbiBkCiAg ICAgZ2MuY29sbGVjdCgpCiAgICAgZGVsIGQKLSAgICBhc3NlcnQgZ2MuY29sbGVjdCgpID09 IDIKKyAgICBpZiBnYy5jb2xsZWN0KCkgIT0gMjoKKyAgICAgICAgcmFpc2UgVGVzdEZhaWxl ZAogCitkZWYgdGVzdF9zYXZlYWxsKCk6CisgICAgZGVidWcgPSBnYy5nZXRfZGVidWcoKQor ICAgIGdjLnNldF9kZWJ1ZygwKQorICAgIGdjLnNldF9kZWJ1ZyhnYy5ERUJVR19TQVZFQUxM KQorICAgIGwgPSBbXQorICAgIGwuYXBwZW5kKGwpCisgICAgaWRfbCA9IGlkKGwpCisgICAg ZGVsIGwKKyAgICBnYy5jb2xsZWN0KCkKKyAgICB0cnk6CisgICAgICAgIGZvciBvYmogaW4g Z2MuZ2FyYmFnZToKKyAgICAgICAgICAgIGlmIGlkKG9iaikgPT0gaWRfbDoKKyAgICAgICAg ICAgICAgICBvYmpbOl0gPSBbXQorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgIGVs c2U6CisgICAgICAgICAgICByYWlzZSBUZXN0RmFpbGVkCisgICAgZmluYWxseToKKyAgICAg ICAgZ2Muc2V0X2RlYnVnKGRlYnVnKQogCi1kZWYgdGVzdF9hbGwoKToKKyAgICAKIAorZGVm IHRlc3RfYWxsKCk6CisgICAgcnVuX3Rlc3QoImxpc3RzIiwgdGVzdF9saXN0KQorICAgIHJ1 bl90ZXN0KCJkaWN0cyIsIHRlc3RfZGljdCkKKyAgICBydW5fdGVzdCgidHVwbGVzIiwgdGVz dF90dXBsZSkKKyAgICBydW5fdGVzdCgiY2xhc3NlcyIsIHRlc3RfY2xhc3MpCisgICAgcnVu X3Rlc3QoImluc3RhbmNlcyIsIHRlc3RfaW5zdGFuY2UpCisgICAgcnVuX3Rlc3QoIm1ldGhv ZHMiLCB0ZXN0X21ldGhvZCkKKyAgICBydW5fdGVzdCgiZnVuY3Rpb25zIiwgdGVzdF9mdW5j dGlvbikKKyAgICBydW5fdGVzdCgiZmluYWxpemVycyIsIHRlc3RfZmluYWxpemVyKQorICAg IHJ1bl90ZXN0KCJzYXZlYWxsIiwgdGVzdF9zYXZlYWxsKQorCitkZWYgdGVzdCgpOgorICAg IGlmIHZlcmJvc2U6CisgICAgICAgIHByaW50ICJkaXNhYmxpbmcgYXV0b21hdGljIGNvbGxl Y3Rpb24iCiAgICAgZW5hYmxlZCA9IGdjLmlzZW5hYmxlZCgpCiAgICAgZ2MuZGlzYWJsZSgp Ci0gICAgYXNzZXJ0IG5vdCBnYy5pc2VuYWJsZWQoKQorICAgIGFzc2VydCBub3QgZ2MuaXNl bmFibGVkKCkgCiAKLSAgICB0ZXN0X2xpc3QoKQotICAgIHRlc3RfZGljdCgpCi0gICAgdGVz dF90dXBsZSgpCi0gICAgdGVzdF9jbGFzcygpCi0gICAgdGVzdF9pbnN0YW5jZSgpCi0gICAg dGVzdF9tZXRob2QoKQotICAgIHRlc3RfZmluYWxpemVyKCkKLSAgICB0ZXN0X2Z1bmN0aW9u KCkKKyAgICB0ZXN0X2FsbCgpCiAKICAgICAjIHRlc3QgZ2MuZW5hYmxlKCkgZXZlbiBpZiBH QyBpcyBkaXNhYmxlZCBieSBkZWZhdWx0CisgICAgaWYgdmVyYm9zZToKKyAgICAgICAgcHJp bnQgInJlc3RvcmluZyBhdXRvbWF0aWMgY29sbGVjdGlvbiIKICAgICBnYy5lbmFibGUoKQog ICAgIGFzc2VydCBnYy5pc2VuYWJsZWQoKQogICAgIGlmIG5vdCBlbmFibGVkOgogICAgICAg ICBnYy5kaXNhYmxlKCkKIAogCi10ZXN0X2FsbCgpCit0ZXN0KCkKSW5kZXg6IDAuMTgvRG9j L2xpYi9saWJnYy50ZXgKLS0tIDAuMTgvRG9jL2xpYi9saWJnYy50ZXggU2F0LCAxMiBBdWcg MjAwMCAxMTo0Nzo0NCAtMDQwMCBuYXMgKHB5dGhvbi9PLzQ1X2xpYmdjLnRleCAxLjIgNjQ0 KQorKysgMC4xOCh3KS9Eb2MvbGliL2xpYmdjLnRleCBTdW4sIDIwIEF1ZyAyMDAwIDIzOjI2 OjEyIC0wNDAwIG5hcyAocHl0aG9uL08vNDVfbGliZ2MudGV4IDEuMiA2NDQpCkBAIC0yLDgg KzIsOCBAQAogICAgICAgICAgR2FyYmFnZSBDb2xsZWN0b3IgaW50ZXJmYWNlfQogCiBcZGVj bGFyZW1vZHVsZXtleHRlbnNpb259e2djfQotXG1vZHVsZWF1dGhvcntOZWlsIFNjaGVtZW5h dWVyfXtuYXNjaGVtZUBlbm1lLnVjYWxnYXJ5LmNhfQotXHNlY3Rpb25hdXRob3J7TmVpbCBT Y2hlbWVuYXVlcn17bmFzY2hlbWVAZW5tZS51Y2FsZ2FyeS5jYX0KK1xtb2R1bGVhdXRob3J7 TmVpbCBTY2hlbWVuYXVlcn17bmFzQGFyY3RyaXguY29tfQorXHNlY3Rpb25hdXRob3J7TmVp bCBTY2hlbWVuYXVlcn17bmFzQGFyY3RyaXguY29tfQogCiBUaGlzIG1vZHVsZSBwcm92aWRl cyBhbiBpbnRlcmZhY2UgdG8gdGhlIG9wdGlvbmFsIGdhcmJhZ2UgY29sbGVjdG9yLiAgSXQK IHByb3ZpZGVzIHRoZSBhYmlsaXR5IHRvIGRpc2FibGUgdGhlIGNvbGxlY3RvciwgdHVuZSB0 aGUgY29sbGVjdGlvbgpAQCAtNzksNyArNzksOSBAQAogQSBsaXN0IG9mIG9iamVjdHMgd2hp Y2ggdGhlIGNvbGxlY3RvciBmb3VuZCB0byBiZSB1bnJlYWNoYWJsZQogYnV0IGNvdWxkIG5v dCBiZSBmcmVlZCAodW5jb2xsZWN0YWJsZSBvYmplY3RzKS4gIE9iamVjdHMgdGhhdCBoYXZl CiBcbWV0aG9ke19fZGVsX18oKX0gbWV0aG9kcyBhbmQgY3JlYXRlIHBhcnQgb2YgYSByZWZl cmVuY2UgY3ljbGUgY2F1c2UKLXRoZSBlbnRpcmUgcmVmZXJlbmNlIGN5Y2xlIHRvIGJlIHVu Y29sbGVjdGFibGUuICAKK3RoZSBlbnRpcmUgcmVmZXJlbmNlIGN5Y2xlIHRvIGJlIHVuY29s bGVjdGFibGUuICBJZgorXGNvbnN0YW50e0RFQlVHX1NBVkVBTEx9IGlzIHNldCwgdGhlbiBh bGwgdW5yZWFjaGFibGUgb2JqZWN0cyB3aWxsCitiZSBhZGRlZCB0byB0aGlzIGxpc3QgcmF0 aGVyIHRoYW4gZnJlZWQuCiBcZW5ke2RhdGFkZXNjfQogCiAKQEAgLTExMSw4ICsxMTMsMTQg QEAKIHNldCwgcHJpbnQgaW5mb3JtYXRpb24gYWJvdXQgb2JqZWN0cyBvdGhlciB0aGFuIGlu c3RhbmNlIG9iamVjdHMgZm91bmQuCiBcZW5ke2RhdGFkZXNjfQogCitcYmVnaW57ZGF0YWRl c2N9e0RFQlVHX1NBVkVBTEx9CitXaGVuIHNldCwgYWxsIHVucmVhY2hhYmxlIG9iamVjdHMg Zm91bmQgd2lsbCBiZSBhcHBlbmRlZCB0bworXHZhcntnYXJiYWdlfSByYXRoZXIgdGhhbiBi ZWluZyBmcmVlZC4gIFRoaXMgY2FuIGJlIHVzZWZ1bCBmb3IgZGVidWdnaW5nCithIGxlYWtp bmcgcHJvZ3JhbS4KK1xlbmR7ZGF0YWRlc2N9CisKIFxiZWdpbntkYXRhZGVzY317REVCVUdf TEVBS30KIFRoZSBkZWJ1Z2dpbmcgZmxhZ3MgbmVjZXNzYXJ5IGZvciB0aGUgY29sbGVjdG9y IHRvIHByaW50CiBpbmZvcm1hdGlvbiBhYm91dCBhIGxlYWtpbmcgcHJvZ3JhbSAoZXF1YWwg dG8gXGNvZGV7REVCVUdfQ09MTEVDVEFCTEUgfAotREVCVUdfVU5DT0xMRUNUQUJMRSB8IERF QlVHX0lOU1RBTkNFUyB8IERFQlVHX09CSkVDVFN9KS4gIAorREVCVUdfVU5DT0xMRUNUQUJM RSB8IERFQlVHX0lOU1RBTkNFUyB8IERFQlVHX09CSkVDVFMgfCBERUJVR19TQVZFQUxMfSku ICAKIFxlbmR7ZGF0YWRlc2N9CgotLVV1Z3ZXQWZzZ2llWlJxZ2stLQo= --udFi5TfI4P--
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4