diff --git a/README.md b/README.md index 917ac10..efb2b22 100644 --- a/README.md +++ b/README.md @@ -1 +1,166 @@ -IyBPcGVuIFBhd3MgRG9jdW1lbnRhdGlvbgoKWyFbTGljZW5zZTogTUlUXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0xpY2Vuc2UtTUlULWdyZWVuLnN2ZyldKExJQ0VOU0UpClshW0xhc3QgQ29tbWl0XShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9sYXN0LWNvbW1pdC9PcGVuLVBhd3MvZG9jdW1lbnRhdGlvbildKGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuLVBhd3MvZG9jdW1lbnRhdGlvbi9jb21taXRzL21haW4pClshW0h1Z2dpbmdGYWNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL0h1Z2dpbmdGYWNlLW9wZW4tLXBhd3MteWVsbG93KV0oaHR0cHM6Ly9odWdnaW5nZmFjZS5jby9vcGVuLXBhd3MpCgotLS0KClRoaXMgcmVwbyBpcyB0aGUgZGV2ZWxvcGVyIGRvY3VtZW50YXRpb24gaHViIGZvciBPcGVuIFBhd3MgQUkgaW5mcmFzdHJ1Y3R1cmUg4oCUIGEgcHVycG9zZS1idWlsdCBzdGFjayBmb3IgYW5pbWFsIGFkdm9jYWN5IG9yZ2FuaXphdGlvbnMsIHJlc2VhcmNoZXJzLCBhbmQgZW5naW5lZXJzLiBJdCBjb3ZlcnMgdGhlIGZ1bGwgQUkgc3RhY2s6IGEgV2VhdmlhdGUgdmVjdG9yIGtub3dsZWRnZSBiYXNlLCBIdWdnaW5nRmFjZSB0ZXh0IHJlZ3Jlc3Npb24gcHJlZGljdGlvbiBtb2RlbHMsIDhCIGxhbmd1YWdlIG1vZGVscywgbjhuIHdvcmtmbG93IGF1dG9tYXRpb25zLCBhbmQgYSBjbGVhbi1yb29tIGFnZW50IGFyY2hpdGVjdHVyZSByZWZlcmVuY2UuIElmIHlvdSBhcmUgYnVpbGRpbmcgYWR2b2NhY3kgdG9vbHMsIGNhbXBhaWduIGF1dG9tYXRpb25zLCBvciBmaW5lLXR1bmVkIG1vZGVscyB1c2luZyBPcGVuIFBhd3MgcmVzb3VyY2VzLCBzdGFydCBoZXJlLgoKPiBbIU5PVEVdCj4gVGhpcyBwcm9qZWN0IGlzIHBhcnQgb2YgdGhlIFtPcGVuIFBhd3NdKGh0dHBzOi8vb3BlbnBhd3MuYWkpIGVjb3N5c3RlbSDigJQgQUkgaW5mcmFzdHJ1Y3R1cmUgZm9yIHRoZSBhbmltYWwgbGliZXJhdGlvbiBtb3ZlbWVudC4gW0V4cGxvcmUgdGhlIGZ1bGwgcGxhdGZvcm0g4oaSXShodHRwczovL2dpdGh1Yi5jb20vT3Blbi1QYXdzKQoKQW5pbWFsIGFkdm9jYWN5IG9yZ2FuaXphdGlvbnMgYXJlIHVuZGVyLXJlc291cmNlZCByZWxhdGl2ZSB0byB0aGUgaW5kdXN0cmllcyB0aGV5IGNoYWxsZW5nZS4gVGhpcyBkb2N1bWVudGF0aW9uIGV4aXN0cyB0byBsb3dlciB0aGUgYmFycmllciBmb3IgZGV2ZWxvcGVycyBhbmQgdGVjaG5pY2FsbHkgY2FwYWJsZSBhZHZvY2F0ZXMgdG8gYnVpbGQgQUkgdG9vbHMgdGhhdCBhY3R1YWxseSBtb3ZlIHRoZSBuZWVkbGUg4oCUIG5vdCBhZGFwdGVkIGZyb20gZ2VuZXJpYyB1c2UgY2FzZXMsIGJ1dCBkZXNpZ25lZCBmcm9tIHRoZSBncm91bmQgdXAgZm9yIGludmVzdGlnYXRpdmUgcmVzZWFyY2gsIGNhbXBhaWduIGV2YWx1YXRpb24sIGFuZCBtb3ZlbWVudCBjb29yZGluYXRpb24uCgotLS0KCiMjIEFyY2hpdGVjdHVyZQoKYGBgbWVybWFpZApncmFwaCBURAogICAgQVtZb3VyIEFwcGxpY2F0aW9uXSAtLT4gQltLbm93bGVkZ2VcbldlYXZpYXRlIFZlY3RvciBEQl0KICAgIEEgLS0+IENbUHJlZGljdGlvbnNcbkh1Z2dpbmdGYWNlIFJlZ3Jlc3Npb24gTW9kZWxzXQogICAgQSAtLT4gRFtHZW5lcmF0aW9uXG44QiBMYW5ndWFnZSBNb2RlbHNdCiAgICBBIC0tPiBFW0F1dG9tYXRpb25cbm44biBXb3JrZmxvdyBUZW1wbGF0ZXNdCiAgICBBIC0tPiBGW0luZnJhc3RydWN0dXJlXG5DbGVhbi1Sb29tIEFnZW50IFJ1bnRpbWVdCgogICAgQiAtLT4gR1soQWR2b2NhY3kgQ29udGVudFxuQXJ0aWNsZXMgwrcgUmVwb3J0cyDCtyBDYW1wYWlnbnMpXQogICAgQyAtLT4gSFsoSHVnZ2luZ0ZhY2Vcbm9wZW4tcGF3cyBjb2xsZWN0aW9uKV0KICAgIEQgLS0+IEgKICAgIEUgLS0+IElbKG44biBDcmVhdG9yIEh1YlxuV29ya2Zsb3cgVGVtcGxhdGVzKV0KYGBgCgpFYWNoIHNlY3Rpb24gaXMgc2VsZi1jb250YWluZWQ6IGNvbm5lY3Rpb24gZGV0YWlscywgd29ya2luZyBjb2RlIHNhbXBsZXMsIGFuZCBrbm93biBsaW1pdGF0aW9ucyBsaXZlIHRvZ2V0aGVyIGluIG9uZSBwbGFjZS4KCi0tLQoKIyMgUXVpY2tzdGFydAoKVGhpcyByZXBvIGNvbnRhaW5zIG5vIGFwcGxpY2F0aW9uIGNvZGUg4oCUIHRoZXJlIGlzIG5vdGhpbmcgdG8gYnVpbGQgb3IgZGVwbG95LiBCcm93c2UgdGhlIHNlY3Rpb24gdGhhdCBtYXRjaGVzIHlvdXIgdXNlIGNhc2U6CgpgYGBiYXNoCiMgQ2xvbmUgdG8gYnJvd3NlIGxvY2FsbHkKZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9PcGVuLVBhd3MvZG9jdW1lbnRhdGlvbi5naXQKY2QgZG9jdW1lbnRhdGlvbgoKIyBDb25uZWN0IHRvIHRoZSBXZWF2aWF0ZSBrbm93bGVkZ2UgYmFzZSAocmVxdWlyZXMgeW91ciBvd24gT3BlbkFJIEFQSSBrZXkpCiMgU2VlIEtub3dsZWRnZS9SRUFETUUubWQgZm9yIGZ1bGwgY29ubmVjdGlvbiBkZXRhaWxzCmV4cG9ydCBXRUFWSUFURV9VUkw9Imh0dHBzOi8vbGFybmQ5cmxlMXp3YXBzZGNxdy5jMC51cy1lYXN0MS5nY3Aud2VhdmlhdGUuY2xvdWQiCmV4cG9ydCBXRUFWSUFURV9BUElfS0VZPSI8cmVhZC1vbmx5IGtleSBpbiBLbm93bGVkZ2UvUkVBRE1FLm1kPiIKZXhwb3J0IE9QRU5BSV9BUElLRVk9Ijx5b3VyIGtleT4iCgojIFJ1biBhIHByZWRpY3Rpb24gbW9kZWwgKHJlcXVpcmVzIHRyYW5zZm9ybWVycykKcGlwIGluc3RhbGwgdHJhbnNmb3JtZXJzIHRvcmNoCnB5dGhvbiAtYyAiCmZyb20gdHJhbnNmb3JtZXJzIGltcG9ydCBwaXBlbGluZQpwID0gcGlwZWxpbmUoJ3RleHQtY2xhc3NpZmljYXRpb24nLCBtb2RlbD0nb3Blbi1wYXdzL3BlcmNlaXZlZF90cnVzdHdvcnRoaW5lc3NfcHJlZGljdGlvbicsIHJldHVybl9hbGxfc2NvcmVzPVRydWUpCnByaW50KHAoJ0FuaW1hbHMgZGVzZXJ2ZSB0byBsaXZlIGZyZWUgZnJvbSBleHBsb2l0YXRpb24uJykpCiIKYGBgCgpTZWUgW0tub3dsZWRnZS9SRUFETUUubWRdKEtub3dsZWRnZS9SRUFETUUubWQpLCBbUHJlZGljdGlvbnMvUkVBRE1FLm1kXShQcmVkaWN0aW9ucy9SRUFETUUubWQpLCBhbmQgW0dlbmVyYXRpb24vUkVBRE1FLm1kXShHZW5lcmF0aW9uL1JFQURNRS5tZCkgZm9yIGNvbXBsZXRlIHdvcmtpbmcgZXhhbXBsZXMuCgotLS0KCiMjIEZlYXR1cmVzCgotICoqV2VhdmlhdGUgdmVjdG9yIGtub3dsZWRnZSBiYXNlKiog4oCUIHJlYWQtb25seSBwdWJsaWMgYWNjZXNzIHRvIGEgdmVjdG9yLWdyYXBoIGRhdGFiYXNlIG9mIGFkdm9jYWN5IGNvbnRlbnQgKGFydGljbGVzLCByZXBvcnRzLCBjYW1wYWlnbiBtYXRlcmlhbHMsIGludmVzdGlnYXRpb24gZmluZGluZ3MpIHdpdGggcGVyLWRvY3VtZW50IHNjb3JpbmcgYWNyb3NzIHRydXN0d29ydGhpbmVzcywgaW5zaWdodCwgcmVsZXZhbmNlLCBwcmVkaWN0ZWQgcGVyZm9ybWFuY2UsIGFuZCBtb3JlCi0gKipWZWN0b3IsIGh5YnJpZCwgYW5kIGZpbHRlcmVkIHNlYXJjaCoqIOKAlCBxdWVyeSB0aGUga25vd2xlZGdlIGJhc2Ugd2l0aCBzZW1hbnRpYyBzaW1pbGFyaXR5LCBrZXl3b3JkIHdlaWdodGluZywgYW5kIHNjb3JlLWJhc2VkIGZpbHRlcnM7IGZ1bGwgUkFHIHN1cHBvcnQgdmlhIFdlYXZpYXRlJ3MgZ3JvdXBlZC10YXNrIGdlbmVyYXRpb24KLSAqKlRleHQgcmVncmVzc2lvbiBwcmVkaWN0aW9uIG1vZGVscyoqIOKAlCBIdWdnaW5nRmFjZSBwaXBlbGluZS1jb21wYXRpYmxlIG1vZGVscyBzY29yaW5nIGFkdm9jYWN5IG1lc3NhZ2VzIG9uIHBlcmZvcm1hbmNlIG1ldHJpY3MgKHNvY2lhbCBtZWRpYSBhbmFseXRpY3MsIHNlbnRpbWVudCkgYW5kIGh1bWFuLXByZWZlcmVuY2UgZGltZW5zaW9ucyAoY3VsdHVyYWwgc2Vuc2l0aXZpdHksIGVtb3Rpb25hbCBpbXBhY3QsIHBlcnN1YXNpdmVuZXNzKQotICoqOEIgYWR2b2NhY3kgbGFuZ3VhZ2UgbW9kZWxzKiog4oCUIExsYW1hIDMuMeKAk2Jhc2VkIG1vZGVscyBjb250aW51YWxseSBwcmUtdHJhaW5lZCBhbmQgaW5zdHJ1Y3Rpb24tdHVuZWQgb24gYW5pbWFsIGFkdm9jYWN5IGNvbnRlbnQ7IG9wdGltaXplZCBmb3IgbG9jYWwgYW5kIGxvdy1tZW1vcnkgZGVwbG95bWVudAotICoqbjhuIHdvcmtmbG93IHRlbXBsYXRlcyoqIOKAlCByZWFkeS10by1pbXBvcnQgYXV0b21hdGlvbiB0ZW1wbGF0ZXMgZm9yIGNvbW1vbiBhZHZvY2FjeSB3b3JrZmxvd3MsIGhvc3RlZCBvbiB0aGUgbjhuIENyZWF0b3IgSHViOyBob3N0aW5nIG9wdGlvbnMgZm9yIHRlYW1zLCBzb2xvIGFkdm9jYXRlcywgYW5kIGhpZ2gtc2VjdXJpdHkgdXNlcnMKLSAqKkNsZWFuLXJvb20gYWdlbnQgYXJjaGl0ZWN0dXJlIHJlZmVyZW5jZSoqIOKAlCBjYW5vbmljYWwgcGF0dGVybnMgZm9yIHNoYXJlZCB0b29sIHJlZ2lzdHJpZXMsIG9yY2hlc3RyYXRpb24sIG9wZXJhdG9yIGNvbnRyb2xzLCBhbmQgc2FmZXR5IGJvdW5kYXJpZXMgYWNyb3NzIE9wZW4gUGF3cyBwcm9qZWN0cwotICoqVHJhaW5pbmcgZGF0YXNldHMqKiDigJQgc2l4IEh1Z2dpbmdGYWNlIGRhdGFzZXRzIGNvdmVyaW5nIHN1cGVydmlzZWQgZmluZS10dW5pbmcsIGNvbnRpbnVhbCBwcmUtdHJhaW5pbmcsIHZpc3VhbCBRQSwgYWxpZ25tZW50IGZlZWRiYWNrLCByZWFzb25pbmcsIGFuZCB0b29sLXVzZSBkZW1vbnN0cmF0aW9ucwoKLS0tCgojIyBEb2N1bWVudGF0aW9uCgp8IFNlY3Rpb24gfCBXaGF0IGl0IGNvdmVycyB8CnwtLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tfAp8IFtLbm93bGVkZ2UvUkVBRE1FLm1kXShLbm93bGVkZ2UvUkVBRE1FLm1kKSB8IFdlYXZpYXRlIGNvbm5lY3Rpb24sIHNlYXJjaCBwYXR0ZXJucywgUkFHLCBzY2hlbWEsIGJlc3QgcHJhY3RpY2VzIHwKfCBbUHJlZGljdGlvbnMvUkVBRE1FLm1kXShQcmVkaWN0aW9ucy9SRUFETUUubWQpIHwgUHJlZGljdGlvbiBtb2RlbCB1c2FnZSwgYmF0Y2ggcHJvY2Vzc2luZywgc2NvcmUgY2xpcHBpbmcgfAp8IFtHZW5lcmF0aW9uL1JFQURNRS5tZF0oR2VuZXJhdGlvbi9SRUFETUUubWQpIHwgTGFuZ3VhZ2UgbW9kZWwgbG9hZGluZywgZ2VuZXJhdGlvbiBwYXJhbWV0ZXJzLCBrbm93biBsaW1pdGF0aW9ucyB8CnwgW0F1dG9tYXRpb24vUkVBRE1FLm1kXShBdXRvbWF0aW9uL1JFQURNRS5tZCkgfCBuOG4gaG9zdGluZyBvcHRpb25zLCB3b3JrZmxvdyBpbXBvcnQgZ3VpZGUgfAp8IFtJbmZyYXN0cnVjdHVyZS9SRUFETUUubWRdKEluZnJhc3RydWN0dXJlL1JFQURNRS5tZCkgfCBBZ2VudCBydW50aW1lIHBhdHRlcm5zLCB0b29sIHJlZ2lzdHJ5LCBzYWZldHkgYm91bmRhcmllcyB8CnwgW0NPTlRSSUJVVElORy5tZF0oQ09OVFJJQlVUSU5HLm1kKSB8IFBSIGd1aWRlbGluZXMsIHdyaXRpbmcgc3R5bGUsIHF1YWxpdHkgZ2F0ZXMgfAoKLS0tCgo8ZGV0YWlscz4KPHN1bW1hcnk+QXJjaGl0ZWN0dXJlIGRldGFpbDwvc3VtbWFyeT4KCiMjIyBLbm93bGVkZ2UgSW5mcmFzdHJ1Y3R1cmUgKFdlYXZpYXRlKQoKVGhlIGtub3dsZWRnZSBiYXNlIGhvbGRzIGFkdm9jYWN5IGNvbnRlbnQgc2NvcmVkIGFjcm9zcyAxMSBkaW1lbnNpb25zLiBUaGUgYENvbnRlbnRgIGNvbGxlY3Rpb24gaXMgdGhlIHByaW1hcnkgZW50cnkgcG9pbnQgZm9yIFJBRyBhbmQgc2VtYW50aWMgc2VhcmNoOgoKYGBgCkNvbnRlbnQK4pSc4pSA4pSAIHN1bW1hcnksIG1haW5fdGV4dCwgY29udGVudF90eXBlLCBzb3VyY2VfdXJsLCBkYXRlLCB0YWdzCuKUlOKUgOKUgCBzY29yZXMKICAgIOKUnOKUgOKUgCBnb29kX2Zvcl9hbmltYWxzLCBjdWx0dXJhbF9zZW5zaXRpdml0eSwgcmVsZXZhbmNlCiAgICDilJzilIDilIAgaW5zaWdodCwgdHJ1c3R3b3J0aGluZXNzLCBlbW90aW9uYWxfaW1wYWN0CiAgICDilJzilIDilIAgcmF0aW9uYWxpdHksIGluZmx1ZW5jZSwgYWxpZ25tZW50CiAgICDilJTilIDilIAgcHJlZGljdGVkX3BlcmZvcm1hbmNlLCBhdmVyYWdlX3Njb3JlCmBgYAoKVGhlIHJlY29tbWVuZGVkIHJldHJpZXZhbCBwYXR0ZXJuIGlzIHJldHJpZXZlLWFuZC1yZS1yYW5rOiBwdWxsIDIw4oCTMzAgcmVzdWx0cyBieSB2ZWN0b3Igc2ltaWxhcml0eSwgdGhlbiBzb3J0IGJ5IGNvbXBvc2l0ZSBzY29yZSBiZWZvcmUgcGFzc2luZyB0byB5b3VyIGFwcGxpY2F0aW9uIG9yIGdlbmVyYXRpb24gc3RlcC4KCiMjIyBQcmVkaWN0aW9uIE1vZGVscwoKTW9kZWxzIGFyZSB0ZXh0IHJlZ3Jlc3Npb24gcGlwZWxpbmVzIG9uIEh1Z2dpbmdGYWNlLiBPdXRwdXRzIGFyZSBjb250aW51b3VzIDDigJMxIHNjb3JlcyBidXQgbWF5IGV4Y2VlZCB0aGF0IHJhbmdlIG9uIG91dC1vZi1kaXN0cmlidXRpb24gaW5wdXRzIOKAlCBhbHdheXMgY2xpcCBiZWZvcmUgZG93bnN0cmVhbSB1c2UuIFR3byBtb2RlbCBmYW1pbGllcyBleGlzdDoKCi0gKipQZXJmb3JtYW5jZSBwcmVkaWN0aW9uKiog4oCUIHRyYWluZWQgb24gcmVhbC13b3JsZCBhZHZvY2FjeSBtZXRyaWNzIChzb2NpYWwgbWVkaWEgYW5kIGVtYWlsIG1hcmtldGluZyBhbmFseXRpY3MsIHNlbnRpbWVudCBhbmFseXNpcyBvZiByZXBsaWVzKQotICoqUHJlZmVyZW5jZSBwcmVkaWN0aW9uKiog4oCUIHRyYWluZWQgb24gaHVtYW4gYW5kIHN5bnRoZXRpYyBmZWVkYmFjayAoY3VsdHVyYWwgc2Vuc2l0aXZpdHksIGVtb3Rpb25hbCBpbXBhY3QsIHBlcnN1YXNpdmVuZXNzKQoKIyMjIExhbmd1YWdlIE1vZGVscwoKVGhlIDhCIG1vZGVscyBhcmUgTGxhbWEgMy4xIGJhc2Ugd2l0aCBjb250aW51YWwgcHJlLXRyYWluaW5nIG9uIGFuaW1hbCBhZHZvY2FjeSBjb250ZW50LCBmb2xsb3dlZCBieSBpbnN0cnVjdGlvbiB0dW5pbmcuIFR3byB2YXJpYW50czoKCi0gYG9wZW4tcGF3cy84Qi1iYXNlLW1vZGVsYCDigJQgcHJlLXRyYWluZWQgb25seSwgbm8gaW5zdHJ1Y3Rpb24gdHVuaW5nCi0gYG9wZW4tcGF3cy84Qi1pbnN0cnVjdC1jaGF0YCDigJQgY2hhdC10dW5lZCBpbnN0cnVjdCBtb2RlbAoKVGhlc2UgYXJlIHNtYWxsIG1vZGVscy4gVXNlIHRoZW0gd2hlbiBsb2NhbCBkZXBsb3ltZW50IG9uIGNvbnN1bWVyIGhhcmR3YXJlIGlzIGEgcmVxdWlyZW1lbnQuIEZvciBjb21wbGV4IHRhc2tzLCB1c2UgdGhlIG1vZGVscyB0aHJvdWdoIHRoZSBgb3Blbi1wYXdzYCBXZWF2aWF0ZSBSQUcgcGlwZWxpbmUgb3IgYSBsYXJnZXIgaG9zdGVkIG1vZGVsIHJvdXRlZCB0aHJvdWdoIE9wZW5Sb3V0ZXIuCgojIyMgQWdlbnQgSW5mcmFzdHJ1Y3R1cmUKClRoZSBjbGVhbi1yb29tIGFnZW50IGFyY2hpdGVjdHVyZSByZWZlcmVuY2UgZG9jdW1lbnRzIHRoZSBzaGFyZWQgcnVudGltZSBwYXR0ZXJuIHVzZWQgYWNyb3NzIE9wZW4gUGF3cyBwcm9qZWN0czogc2Nhbm5lciBpbmdlc3Rpb24g4oaSIHN0cnVjdHVyZWQgZXhwb3J0IOKGkiBwbGF0Zm9ybSBvcmNoZXN0cmF0aW9uIOKGkiB0b29sIHJlZ2lzdHJ5IOKGkiBodW1hbiByZXZpZXcgYmVmb3JlIGhpZ2gtaW1wYWN0IGFjdGlvbnMuIFNlZSBbSW5mcmFzdHJ1Y3R1cmUvUkVBRE1FLm1kXShJbmZyYXN0cnVjdHVyZS9SRUFETUUubWQpIGZvciB0aGUgZnVsbCBkZXNpZ24gYW5kIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gdHJhY2tzLgoKPC9kZXRhaWxzPgoKLS0tCgojIyBDb250cmlidXRpbmcKClNlZSBbQ09OVFJJQlVUSU5HLm1kXShDT05UUklCVVRJTkcubWQpIGZvciB0aGUgZnVsbCBndWlkZS4gRG9jdW1lbnRhdGlvbiBjb250cmlidXRpb25zIGFyZSB3ZWxjb21lIOKAlCBwYXJ0aWN1bGFybHkgd29ya2luZyBjb2RlIGV4YW1wbGVzLCBpbnRlZ3JhdGlvbiBndWlkZXMgZm9yIGNvbW1vbiBwYXR0ZXJucyAoUkFHLCBiYXRjaCBpbmZlcmVuY2UsIG44biBhdXRvbWF0aW9ucyksIGFuZCBjb3JyZWN0aW9ucyB0byBrbm93biBsaW1pdGF0aW9ucy4gT25lIHRvcGljIHBlciBQUiwgdW5kZXIgMjAwIGxpbmVzIHdoZXJlIHBvc3NpYmxlLiBUaGUgQ0kgd29ya2Zsb3cgZW5mb3JjZXMgc3BlY2llc2lzdCBsYW5ndWFnZSBydWxlcyBhdXRvbWF0aWNhbGx5IHZpYSBbbm8tYW5pbWFsLXZpb2xlbmNlXShodHRwczovL2dpdGh1Yi5jb20vT3Blbi1QYXdzL25vLWFuaW1hbC12aW9sZW5jZSkg4oCUIGZpeCBmbGFnZ2VkIHRlcm1zIHJhdGhlciB0aGFuIGJ5cGFzc2luZyB0aGUgY2hlY2suCgotLS0KCiMjIExpY2Vuc2UgKyBBY2tub3dsZWRnbWVudHMKCltNSVQgTGljZW5zZV0oTElDRU5TRSkg4oCUIENvcHlyaWdodCAoYykgMjAyNSBPcGVuIFBhd3MuCgpCdWlsdCBvbiBbV2VhdmlhdGVdKGh0dHBzOi8vd2VhdmlhdGUuaW8pLCBbSHVnZ2luZ0ZhY2UgVHJhbnNmb3JtZXJzXShodHRwczovL2h1Z2dpbmdmYWNlLmNvL2RvY3MvdHJhbnNmb3JtZXJzLyksIFtMbGFtYSAzLjFdKGh0dHBzOi8vd3d3LmxsYW1hLmNvbS9kb2NzLykgKE1ldGEpLCBhbmQgW244bl0oaHR0cHM6Ly9kb2NzLm44bi5pbykuIERhdGFzZXRzIGFuZCBtb2RlbHMgaG9zdGVkIGF0IFtodWdnaW5nZmFjZS5jby9vcGVuLXBhd3NdKGh0dHBzOi8vaHVnZ2luZ2ZhY2UuY28vb3Blbi1wYXdzKS4KCi0tLQoKW0RvbmF0ZV0oaHR0cHM6Ly9vcGVucGF3cy5haS9kb25hdGUpIMK3IFtEaXNjb3JkXShodHRwczovL2Rpc2NvcmQuZ2cvb3BlbnBhd3MpIMK3IFtvcGVucGF3cy5haV0oaHR0cHM6Ly9vcGVucGF3cy5haSkgwrcgW1ZvbHVudGVlcl0oaHR0cHM6Ly9vcGVucGF3cy5haS92b2x1bnRlZXIpCgotLS0KCiMjIE1ldGFkYXRhCgpgYGB5YW1sCnRlY2hfc3RhY2s6IFtXZWF2aWF0ZSwgUHl0aG9uLCBIdWdnaW5nRmFjZSBUcmFuc2Zvcm1lcnMsIExsYW1hIDMuMSwgbjhuLCBNYXJrZG93bl0KcHJvamVjdF9zdGF0dXM6IHN0YWJsZQpkaWZmaWN1bHR5OiBpbnRlcm1lZGlhdGUKc2tpbGxfdGFnczogW3ZlY3Rvci1zZWFyY2gsIFJBRywgdGV4dC1yZWdyZXNzaW9uLCBsYW5ndWFnZS1tb2RlbHMsIHdvcmtmbG93LWF1dG9tYXRpb24sIGFuaW1hbC1hZHZvY2FjeSwgQUktaW5mcmFzdHJ1Y3R1cmVdCnJlbGF0ZWRfcmVwb3M6IFtwbGF0Zm9ybSwgZ2FyeSwgcHJvamVjdC1jb21wYXNzaW9uYXRlLWNvZGUsIGdyYXplLWNsaSwgY29udGV4dF0KYGBgCg== \ No newline at end of file +# Open Paws Documentation + +Official documentation for the Open Paws AI ecosystem. + +This repository provides the technical documentation, implementation guides, and architecture references for developers building with Open Paws. Whether you're integrating AI models, working with vector search, creating automation workflows, or contributing to the platform, this documentation is the primary starting point. + +--- + +## What is Open Paws? + +Open Paws is an open AI ecosystem that provides reusable infrastructure, models, and developer tools for building animal advocacy applications. + +This repository explains how every component works, how they connect together, and how to integrate them into your own projects and tooling. + +--- + +## What You'll Find + +### Knowledge + +Documentation for the vector database and Retrieval-Augmented Generation (RAG). + +Topics include: + +- Weaviate +- Semantic Search +- Hybrid Search +- Vector Search +- RAG +- Query Examples + +--- + +### Predictions + +Guides for using Hugging Face prediction models. + +Includes: + +- Model Loading +- Inference +- Batch Processing +- Performance Prediction +- Preference Prediction + +--- + +### Generation + +Documentation for Open Paws language models. + +Learn about: + +- Model Usage +- Prompting +- Generation Parameters +- Local Deployment +- Best Practices + +--- + +### Automation + +Ready-to-use automation workflows built with n8n. + +Includes: + +- Workflow Templates +- AI Automation +- Integrations +- Deployment Guides + +--- + +### Infrastructure + +Documentation for the platform architecture. + +Includes: + +- Agent Runtime +- System Design +- Tool Registry +- Deployment +- Security +- Best Practices + +--- + +## Repository Structure + +```text +documentation/ +├── Automation/ +├── Generation/ +├── Infrastructure/ +├── Knowledge/ +├── Predictions/ +├── .github/ +├── CONTRIBUTING.md +├── LICENSE +└── README.md +``` + +--- + +## Getting Started + +Clone the repository. + +```bash +git clone https://github.com/Open-Paws/documentation.git + +cd documentation +``` + +Open the folder that matches your use case and follow the guides. + +--- + +## Documentation Overview + +| Directory | Purpose | +|-----------|---------| +| Knowledge | Vector databases, search, and RAG | +| Predictions | Hugging Face prediction models | +| Generation | Language models and prompting | +| Automation | n8n workflows and automation | +| Infrastructure | Architecture and deployment | + +--- + +## Who Is This For? + +This documentation is intended for: + +- AI Engineers +- Software Developers +- ML Engineers +- Open Source Contributors +- Researchers +- Platform Integrators + +Whether you're exploring Open Paws or contributing to the ecosystem, this repository contains everything you need to understand the platform. + +--- + +## Contributing + +We welcome contributions from the community. + +Before opening a Pull Request, please read the contribution guidelines. + +See: + +``` +CONTRIBUTING.md +``` + +--- + +## License + +This project is licensed under the MIT License. + +See the `LICENSE` file for details.