{"internalDocumentIDStore":{"internalIdToId":["06034991-169","06034991-170","06034991-171","06034991-172","06034991-173","06034991-174","06034991-175","06034991-176","06034991-177","06034991-178","06034991-179","06034991-180","06034991-181","06034991-182","06034991-183","06034991-184","06034991-185","06034991-186","06034991-187","06034991-188","06034991-189","06034991-190","06034991-191","06034991-192","06034991-193","06034991-194","06034991-195","06034991-196","06034991-197","06034991-198","06034991-199","06034991-200","06034991-201","06034991-202","06034991-203","06034991-204","06034991-205","06034991-206","06034991-207","06034991-208","06034991-209","06034991-210","06034991-211","06034991-212","06034991-213","06034991-214","06034991-215","06034991-216","06034991-217","06034991-218","06034991-219","06034991-220","06034991-221","06034991-222","06034991-223","06034991-224","06034991-225","06034991-226","06034991-227","06034991-228","06034991-229","06034991-230","06034991-231","06034991-232","06034991-233","06034991-234","06034991-235","06034991-236","06034991-237","06034991-238","06034991-239","06034991-240","06034991-241","06034991-242","06034991-243","06034991-244","06034991-245","06034991-246","06034991-247","06034991-248","06034991-249","06034991-250","06034991-251","06034991-252","06034991-253","06034991-254","06034991-255","06034991-256","06034991-257","06034991-258","06034991-259","06034991-260","06034991-261","06034991-262","06034991-263","06034991-264","06034991-265","06034991-266","06034991-267","06034991-268","06034991-269","06034991-270","06034991-271","06034991-272","06034991-273","06034991-274","06034991-275","06034991-276","06034991-277","06034991-278","06034991-279","06034991-280","06034991-281","06034991-282","06034991-283","06034991-284","06034991-285","06034991-286","06034991-287","06034991-288","06034991-289","06034991-290","06034991-291","06034991-292","06034991-293","06034991-294","06034991-295","06034991-296","06034991-297","06034991-298","06034991-299","06034991-300","06034991-301","06034991-302","06034991-303","06034991-304","06034991-305","06034991-306","06034991-307","06034991-308","06034991-309","06034991-310","06034991-311","06034991-312","06034991-313","06034991-314","06034991-315","06034991-316","06034991-317","06034991-318","06034991-319","06034991-320","06034991-321","06034991-322","06034991-323","06034991-324","06034991-325","06034991-326","06034991-327","06034991-328","06034991-329","06034991-330","06034991-331","06034991-332","06034991-333","06034991-334","06034991-335"]},"index":{"indexes":{"url":{"type":"Radix","node":{"w":"","s":"","c":{"0":{"w":"0","s":"0","c":{"b":{"w":"0beta","s":"beta","c":{},"d":[4,6,14,21],"e":true}},"d":[7,8,9,10,11,12,13,15,16,17,18,19,20],"e":true},"1":{"w":"1","s":"1","c":{"6":{"w":"16c32g","s":"6c32g","c":{},"d":[125],"e":true}},"d":[21],"e":true},"2":{"w":"2","s":"2","c":{"b":{"w":"2beta","s":"beta","c":{},"d":[5],"e":true}},"d":[18,19,20],"e":true},"3":{"w":"3","s":"3","c":{"2":{"w":"32c64g","s":"2c64g","c":{},"d":[124],"e":true},"p":{"w":"3p","s":"p","c":{},"d":[43],"e":true}},"d":[14,15,16,17],"e":true},"4":{"w":"4","s":"4","c":{},"d":[5,6,7,8,9,10,11,12,13],"e":true},"5":{"w":"5","s":"5","c":{},"d":[4],"e":true},"p":{"w":"p","s":"p","c":{"s":{"w":"psi","s":"si","c":{"_":{"w":"psi_","s":"_","c":{"p":{"w":"psi_protocol_intro","s":"protocol_intro","c":{},"d":[41,42,43,44,45,46,47,48,49,50],"e":true},"v":{"w":"psi_v2","s":"v2","c":{"_":{"w":"psi_v2_","s":"_","c":{"c":{"w":"psi_v2_config","s":"config","c":{},"d":[60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80],"e":true},"b":{"w":"psi_v2_benchmark","s":"benchmark","c":{},"d":[149,150,151,152,153,154,155,156,157],"e":true}},"d":[],"e":false}},"d":[128,129,130,131,132,133,134],"e":true},"c":{"w":"psi_config","s":"config","c":{},"d":[81,82,83,84,85,86,87,88,89,90,91,92,93],"e":true}},"d":[],"e":false},"c":{"w":"psiconfig","s":"config","c":{},"d":[70,77],"e":true},"r":{"w":"psiresultreport","s":"resultreport","c":{},"d":[89],"e":true},"t":{"w":"psitype","s":"type","c":{},"d":[92],"e":true}},"d":[1,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,33,34,35,36,37,38,39,40,41,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48,49,49,50,51,52,53,54,55,56,57,58,59,60,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,128,129,130,131,131,132,133,134,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,149,150,151,152,153,154,155,155,156,157,158,158,158,159,159,160,160,161,161,162,162,162,163,163,164,164,165,165,165,166,166,166,167,167],"e":true},"y":{"w":"python","s":"ython","c":{},"d":[27],"e":true},"a":{"w":"pa","s":"a","c":{"c":{"w":"packages","s":"ckages","c":{},"d":[27],"e":true},"r":{"w":"par","s":"r","c":{"t":{"w":"party","s":"ty","c":{"p":{"w":"partyproto","s":"proto","c":{},"d":[110],"e":true}},"d":[102],"e":true},"a":{"w":"params","s":"ams","c":{},"d":[142],"e":true}},"d":[],"e":false}},"d":[],"e":false},"r":{"w":"pr","s":"r","c":{"o":{"w":"protocol","s":"otocol","c":{"s":{"w":"protocols","s":"s","c":{},"d":[41,136,159],"e":true},"c":{"w":"protocolconfig","s":"config","c":{},"d":[69],"e":true}},"d":[76],"e":true},"i":{"w":"private","s":"ivate","c":{},"d":[45],"e":true},"e":{"w":"prepare","s":"epare","c":{},"d":[119,130,140,152,160],"e":true}},"d":[],"e":false},"i":{"w":"pir","s":"ir","c":{"_":{"w":"pir_config","s":"_config","c":{},"d":[52,53,54,55,56,57,58,59],"e":true},"r":{"w":"pirresultreport","s":"resultreport","c":{},"d":[57],"e":true}},"d":[52,135,135,136,137,138,138,139,140,141,142,143,143,144,145],"e":true},"o":{"w":"port","s":"ort","c":{},"d":[103],"e":true}},"d":[],"e":false},"m":{"w":"m","s":"m","c":{"a":{"w":"main","s":"ain","c":{},"d":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167],"e":true},"e":{"w":"me","s":"e","c":{"s":{"w":"messages","s":"ssages","c":{},"d":[54,62,83,96],"e":true},"m":{"w":"memorypsiconfig","s":"morypsiconfig","c":{},"d":[87],"e":true}},"d":[],"e":false},"o":{"w":"mo","s":"o","c":{"d":{"w":"mode","s":"de","c":{},"d":[79,145],"e":true},"r":{"w":"more","s":"re","c":{},"d":[133],"e":true}},"d":[],"e":false}},"d":[],"e":false},"e":{"w":"e","s":"e","c":{"n":{"w":"en","s":"n","c":{"u":{"w":"enums","s":"ums","c":{},"d":[58,74,90,98],"e":true}},"d":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167],"e":true},"a":{"w":"easy","s":"asy","c":{},"d":[33],"e":true},"c":{"w":"ecdh","s":"cdh","c":{"c":{"w":"ecdhconfig","s":"config","c":{},"d":[64],"e":true}},"d":[42,43,47,165],"e":true},"x":{"w":"examples","s":"xamples","c":{},"d":[133,144],"e":true}},"d":[],"e":false},"w":{"w":"w","s":"w","c":{"e":{"w":"welcome","s":"elcome","c":{},"d":[1],"e":true},"h":{"w":"whatsnew","s":"hatsnew","c":{},"d":[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"e":true},"i":{"w":"with","s":"ith","c":{},"d":[123,155],"e":true}},"d":[],"e":false},"t":{"w":"t","s":"t","c":{"o":{"w":"to","s":"o","c":{},"d":[1],"e":true},"a":{"w":"ta","s":"a","c":{"b":{"w":"table","s":"ble","c":{},"d":[53,61,82,95],"e":true},"s":{"w":"taskinputconfig","s":"skinputconfig","c":{},"d":[105,106],"e":true}},"d":[],"e":false},"y":{"w":"types","s":"ypes","c":{},"d":[59,80,93,114],"e":true},"i":{"w":"tips","s":"ips","c":{},"d":[167],"e":true}},"d":[],"e":false},"s":{"w":"s","s":"s","c":{"e":{"w":"se","s":"e","c":{"c":{"w":"sec","s":"c","c":{"r":{"w":"secretflow","s":"retflow","c":{},"d":[1],"e":true},"u":{"w":"security","s":"urity","c":{},"d":[167],"e":true}},"d":[],"e":false},"t":{"w":"setup","s":"tup","c":{},"d":[35,120],"e":true},"r":{"w":"service","s":"rvice","c":{},"d":[104],"e":true},"n":{"w":"sender","s":"nder","c":{},"d":[120,121,124,153],"e":true}},"d":[],"e":false},"t":{"w":"start","s":"tart","c":{"e":{"w":"started","s":"ed","c":{},"d":[22],"e":true}},"d":[139],"e":true},"o":{"w":"source","s":"ource","c":{},"d":[26,117,132,150,163],"e":true},"y":{"w":"system","s":"ystem","c":{},"d":[35],"e":true},"c":{"w":"scalar","s":"calar","c":{},"d":[59,80,93,114],"e":true},"f":{"w":"sfpsiconfigmapentry","s":"fpsiconfigmapentry","c":{},"d":[106],"e":true},"s":{"w":"ssloptionsproto","s":"sloptionsproto","c":{},"d":[112],"e":true},"u":{"w":"supported","s":"upported","c":{},"d":[136,159],"e":true}},"d":[1],"e":true},"l":{"w":"l","s":"l","c":{"i":{"w":"li","s":"i","c":{"b":{"w":"library","s":"brary","c":{},"d":[1],"e":true},"n":{"w":"linux","s":"nux","c":{},"d":[37],"e":true},"m":{"w":"limit","s":"mit","c":{},"d":[126,156],"e":true}},"d":[],"e":false},"a":{"w":"la","s":"a","c":{"b":{"w":"labeled","s":"beled","c":{},"d":[48],"e":true},"u":{"w":"launch","s":"unch","c":{"_":{"w":"launch_config","s":"_config","c":{},"d":[94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114],"e":true},"c":{"w":"launchconfig","s":"config","c":{},"d":[97],"e":true}},"d":[94],"e":true},"t":{"w":"latency","s":"tency","c":{},"d":[126,156],"e":true}},"d":[],"e":false}},"d":[],"e":false},"d":{"w":"d","s":"d","c":{"o":{"w":"doc","s":"oc","c":{"u":{"w":"documentation","s":"umentation","c":{},"d":[1],"e":true},"k":{"w":"docker","s":"ker","c":{},"d":[25,36,123,129,137,155,161],"e":true}},"d":[],"e":false},"e":{"w":"de","s":"e","c":{"v":{"w":"dev","s":"v","c":{"2":{"w":"dev2","s":"2","c":{"3":{"w":"dev23122","s":"3122","c":{"1":{"w":"dev231221","s":"1","c":{},"d":[20],"e":true},"8":{"w":"dev231228","s":"8","c":{},"d":[19],"e":true}},"d":[],"e":false},"4":{"w":"dev240","s":"40","c":{"1":{"w":"dev240123","s":"123","c":{},"d":[18],"e":true},"2":{"w":"dev2402","s":"2","c":{"1":{"w":"dev240219","s":"19","c":{},"d":[17],"e":true},"2":{"w":"dev240222","s":"22","c":{},"d":[16],"e":true}},"d":[],"e":false},"3":{"w":"dev2403","s":"3","c":{"0":{"w":"dev240304","s":"04","c":{},"d":[15],"e":true},"2":{"w":"dev240329","s":"29","c":{},"d":[13],"e":true}},"d":[],"e":false},"4":{"w":"dev240401","s":"401","c":{},"d":[12],"e":true},"5":{"w":"dev2405","s":"5","c":{"1":{"w":"dev24051","s":"1","c":{"4":{"w":"dev240514","s":"4","c":{},"d":[11],"e":true},"7":{"w":"dev240517","s":"7","c":{},"d":[10],"e":true}},"d":[],"e":false},"2":{"w":"dev240521","s":"21","c":{},"d":[9],"e":true}},"d":[],"e":false},"7":{"w":"dev240731","s":"731","c":{},"d":[8],"e":true},"8":{"w":"dev240801","s":"801","c":{},"d":[7],"e":true}},"d":[],"e":false}},"d":[],"e":false},"e":{"w":"development","s":"elopment","c":{},"d":[40,40,41,42,43,44,45,46,47,48,49,50],"e":true}},"d":[36],"e":true},"p":{"w":"deprecated","s":"precated","c":{},"d":[33,158],"e":true},"b":{"w":"debugoptions","s":"bugoptions","c":{},"d":[63],"e":true}},"d":[],"e":false},"i":{"w":"differentially","s":"ifferentially","c":{},"d":[45],"e":true},"p":{"w":"dppsiparams","s":"ppsiparams","c":{},"d":[85],"e":true},"a":{"w":"data","s":"ata","c":{},"d":[118,130,140,151,160],"e":true}},"d":[],"e":false},"r":{"w":"r","s":"r","c":{"e":{"w":"re","s":"e","c":{"l":{"w":"release","s":"lease","c":{},"d":[2,3,25,129,137,161],"e":true},"p":{"w":"reporting","s":"porting","c":{},"d":[39],"e":true},"f":{"w":"reference","s":"ference","c":{},"d":[50,51,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114],"e":true},"c":{"w":"rec","s":"c","c":{"o":{"w":"recoveryconfig","s":"overyconfig","c":{},"d":[71],"e":true},"e":{"w":"receiver","s":"eiver","c":{},"d":[122,125,154],"e":true}},"d":[],"e":false},"t":{"w":"retryoptionsproto","s":"tryoptionsproto","c":{},"d":[111],"e":true}},"d":[],"e":false},"r":{"w":"rr22","s":"r22","c":{"c":{"w":"rr22config","s":"config","c":{},"d":[72],"e":true}},"d":[49],"e":true},"o":{"w":"role","s":"ole","c":{},"d":[78],"e":true},"u":{"w":"run","s":"un","c":{},"d":[123,131,155,162],"e":true}},"d":[],"e":false},"n":{"w":"notes","s":"notes","c":{},"d":[2],"e":true},"v":{"w":"v","s":"v","c":{"0":{"w":"v0","s":"0","c":{},"d":[4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"e":true},"1":{"w":"v1","s":"1","c":{},"d":[81,158],"e":true},"2":{"w":"v2","s":"2","c":{},"d":[60,128,149],"e":true},"a":{"w":"value","s":"alue","c":{},"d":[59,80,93,114],"e":true}},"d":[],"e":false},"g":{"w":"g","s":"g","c":{"e":{"w":"ge","s":"e","c":{"t":{"w":"getting","s":"tting","c":{"_":{"w":"getting_started","s":"_started","c":{},"d":[22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],"e":true}},"d":[22],"e":true},"n":{"w":"generate","s":"nerate","c":{},"d":[118,151],"e":true}},"d":[],"e":false},"u":{"w":"guide","s":"uide","c":{},"d":[115],"e":true}},"d":[],"e":false},"i":{"w":"i","s":"i","c":{"n":{"w":"in","s":"n","c":{"s":{"w":"installation","s":"stallation","c":{},"d":[23],"e":true},"t":{"w":"introduction","s":"troduction","c":{},"d":[41],"e":true},"p":{"w":"input","s":"put","c":{"a":{"w":"inputattr","s":"attr","c":{},"d":[65],"e":true},"p":{"w":"inputparams","s":"params","c":{},"d":[86],"e":true}},"d":[],"e":false}},"d":[],"e":false},"d":{"w":"id","s":"d","c":{"1":{"w":"id1","s":"1","c":{},"d":[28,99],"e":true},"2":{"w":"id2","s":"2","c":{},"d":[29,107],"e":true},"3":{"w":"id3","s":"3","c":{},"d":[31,108],"e":true},"4":{"w":"id4","s":"4","c":{},"d":[32,113],"e":true}},"d":[],"e":false},"s":{"w":"issue","s":"ssue","c":{"s":{"w":"issues","s":"s","c":{},"d":[147,148],"e":true}},"d":[39],"e":true},"o":{"w":"io","s":"o","c":{"c":{"w":"ioconfig","s":"config","c":{},"d":[66],"e":true},"t":{"w":"iotype","s":"type","c":{},"d":[75],"e":true}},"d":[],"e":false}},"d":[],"e":false},"c":{"w":"c","s":"c","c":{"o":{"w":"con","s":"on","c":{"f":{"w":"config","s":"fig","c":{"u":{"w":"configuration","s":"uration","c":{},"d":[52,60,81,94],"e":true}},"d":[119,130,140,143,147,152,153,154,160],"e":true},"t":{"w":"conte","s":"te","c":{"n":{"w":"contents","s":"nts","c":{},"d":[53,61,82,95],"e":true},"x":{"w":"contextdescproto","s":"xtdescproto","c":{},"d":[109],"e":true}},"d":[],"e":false}},"d":[],"e":false},"u":{"w":"curvetype","s":"urvetype","c":{},"d":[91],"e":true},"l":{"w":"clusterdefine","s":"lusterdefine","c":{},"d":[101],"e":true},"s":{"w":"csv","s":"sv","c":{},"d":[141],"e":true}},"d":[24],"e":true},"b":{"w":"b","s":"b","c":{"i":{"w":"binaries","s":"inaries","c":{},"d":[24],"e":true},"u":{"w":"bu","s":"u","c":{"i":{"w":"build","s":"ild","c":{"i":{"w":"building","s":"ing","c":{},"d":[26,34,117,132,150,163],"e":true}},"d":[38],"e":true},"c":{"w":"bucket","s":"cket","c":{"p":{"w":"bucketpsiconfig","s":"psiconfig","c":{},"d":[84],"e":true},"i":{"w":"bucketized","s":"ized","c":{},"d":[145],"e":true}},"d":[],"e":false}},"d":[],"e":false},"a":{"w":"ba","s":"a","c":{"s":{"w":"based","s":"sed","c":{},"d":[47],"e":true},"n":{"w":"bandwidth","s":"ndwidth","c":{},"d":[126,156],"e":true}},"d":[],"e":false},"l":{"w":"blazing","s":"lazing","c":{},"d":[49],"e":true},"e":{"w":"be","s":"e","c":{"n":{"w":"benchmark","s":"nchmark","c":{},"d":[116,127,149,157,164,165,166],"e":true},"f":{"w":"before","s":"fore","c":{},"d":[139],"e":true}},"d":[],"e":false}},"d":[],"e":false},"f":{"w":"f","s":"f","c":{"r":{"w":"fr","s":"r","c":{"o":{"w":"from","s":"om","c":{},"d":[26,117,132,150,163],"e":true},"e":{"w":"frequently","s":"equently","c":{},"d":[146],"e":true}},"d":[],"e":false},"a":{"w":"fa","s":"a","c":{"s":{"w":"fast","s":"st","c":{},"d":[49],"e":true},"q":{"w":"faq","s":"q","c":{},"d":[146,146,147,148],"e":true}},"d":[],"e":false},"i":{"w":"file","s":"ile","c":{},"d":[119,141,142,152],"e":true},"u":{"w":"full","s":"ull","c":{},"d":[144],"e":true},"e":{"w":"feature","s":"eature","c":{},"d":[148],"e":true}},"d":[],"e":false},"a":{"w":"a","s":"a","c":{"p":{"w":"ap","s":"p","c":{"p":{"w":"applications","s":"plications","c":{},"d":[30],"e":true},"i":{"w":"api","s":"i","c":{},"d":[51],"e":true},"s":{"w":"apsi","s":"si","c":{"r":{"w":"apsireceiverconfig","s":"receiverconfig","c":{},"d":[55],"e":true},"s":{"w":"apsisenderconfig","s":"senderconfig","c":{},"d":[56],"e":true},"_":{"w":"apsi_benchmark","s":"_benchmark","c":{},"d":[116,117,118,119,120,121,122,123,124,125,126,127],"e":true}},"d":[116,120,121,122,123,124,125,138,142],"e":true}},"d":[],"e":false},"n":{"w":"an","s":"n","c":{"d":{"w":"and","s":"d","c":{},"d":[126,130,140,156,160],"e":true}},"d":[39],"e":true},"d":{"w":"advancedjointype","s":"dvancedjointype","c":{},"d":[77],"e":true},"l":{"w":"allocatedports","s":"llocatedports","c":{},"d":[100],"e":true},"s":{"w":"asked","s":"sked","c":{},"d":[146],"e":true}},"d":[],"e":false},"u":{"w":"u","s":"u","c":{"n":{"w":"un","s":"n","c":{"i":{"w":"unittest","s":"ittest","c":{},"d":[38],"e":true},"b":{"w":"unbalanced","s":"balanced","c":{},"d":[46],"e":true}},"d":[],"e":false},"b":{"w":"ub","s":"b","c":{"p":{"w":"ubpsiconfig","s":"psiconfig","c":{},"d":[73,79],"e":true}},"d":[134],"e":true},"s":{"w":"user","s":"ser","c":{"_":{"w":"user_guide","s":"_guide","c":{},"d":[115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167],"e":true}},"d":[115],"e":true}},"d":[],"e":false},"k":{"w":"k","s":"k","c":{"k":{"w":"kkrt","s":"krt","c":{"1":{"w":"kkrt16","s":"16","c":{},"d":[44],"e":true},"c":{"w":"kkrtconfig","s":"config","c":{},"d":[67],"e":true}},"d":[166],"e":true},"e":{"w":"keyword","s":"eyword","c":{},"d":[138],"e":true}},"d":[],"e":false},"o":{"w":"o","s":"o","c":{"p":{"w":"oprf","s":"prf","c":{},"d":[47],"e":true},"f":{"w":"of","s":"f","c":{},"d":[53,61,82,95],"e":true},"u":{"w":"output","s":"utput","c":{"a":{"w":"outputattr","s":"attr","c":{},"d":[68],"e":true},"p":{"w":"outputparams","s":"params","c":{},"d":[88],"e":true}},"d":[],"e":false},"n":{"w":"online","s":"nline","c":{},"d":[121],"e":true}},"d":[],"e":false},"j":{"w":"json","s":"json","c":{},"d":[120,121,122],"e":true},"q":{"w":"qu","s":"qu","c":{"i":{"w":"quickstart","s":"ickstart","c":{},"d":[128,135,158],"e":true},"e":{"w":"questions","s":"estions","c":{},"d":[146],"e":true}},"d":[],"e":false}},"d":[],"e":false},"isArray":false},"title":{"type":"Radix","node":{"w":"","s":"","c":{"0":{"w":"0","s":"0","c":{"b":{"w":"0beta","s":"beta","c":{},"d":[4,6,14,21],"e":true}},"d":[7,8,9,10,11,12,13,15,16,17,18,19,20],"e":true},"1":{"w":"1","s":"1","c":{"6":{"w":"16c32g","s":"6c32g","c":{},"d":[125],"e":true}},"d":[21],"e":true},"2":{"w":"2","s":"2","c":{"b":{"w":"2beta","s":"beta","c":{},"d":[5],"e":true}},"d":[18,19,20],"e":true},"3":{"w":"3","s":"3","c":{"2":{"w":"32c64g","s":"2c64g","c":{},"d":[124],"e":true},"p":{"w":"3p","s":"p","c":{},"d":[43],"e":true}},"d":[14,15,16,17],"e":true},"4":{"w":"4","s":"4","c":{},"d":[5,6,7,8,9,10,11,12,13],"e":true},"5":{"w":"5","s":"5","c":{},"d":[4],"e":true},"w":{"w":"w","s":"w","c":{"e":{"w":"welcome","s":"elcome","c":{},"d":[1],"e":true},"i":{"w":"with","s":"ith","c":{},"d":[123,155],"e":true}},"d":[],"e":false},"t":{"w":"t","s":"t","c":{"o":{"w":"to","s":"o","c":{},"d":[1],"e":true},"a":{"w":"ta","s":"a","c":{"b":{"w":"table","s":"ble","c":{},"d":[53,61,82,95],"e":true},"s":{"w":"taskinputconfig","s":"skinputconfig","c":{},"d":[105,106],"e":true}},"d":[],"e":false},"y":{"w":"types","s":"ypes","c":{},"d":[59,80,93,114],"e":true},"i":{"w":"tips","s":"ips","c":{},"d":[167],"e":true}},"d":[],"e":false},"s":{"w":"s","s":"s","c":{"e":{"w":"se","s":"e","c":{"c":{"w":"sec","s":"c","c":{"r":{"w":"secret","s":"ret","c":{"f":{"w":"secretflow","s":"flow","c":{},"d":[1,29],"e":true},"p":{"w":"secretpad","s":"pad","c":{},"d":[32],"e":true}},"d":[],"e":false},"u":{"w":"security","s":"urity","c":{},"d":[167],"e":true}},"d":[],"e":false},"t":{"w":"setup","s":"tup","c":{},"d":[35],"e":true},"r":{"w":"service","s":"rvice","c":{},"d":[104],"e":true},"n":{"w":"sender","s":"nder","c":{},"d":[153],"e":true}},"d":[],"e":false},"t":{"w":"start","s":"tart","c":{"e":{"w":"started","s":"ed","c":{},"d":[22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],"e":true}},"d":[139],"e":true},"o":{"w":"source","s":"ource","c":{},"d":[26,117,132,150,163],"e":true},"p":{"w":"spu","s":"pu","c":{},"d":[28],"e":true},"c":{"w":"sc","s":"c","c":{"q":{"w":"scql","s":"ql","c":{},"d":[31],"e":true},"a":{"w":"scalar","s":"alar","c":{},"d":[59,80,93,114],"e":true}},"d":[],"e":false},"y":{"w":"system","s":"ystem","c":{},"d":[35],"e":true},"f":{"w":"sfpsiconfigmapentry","s":"fpsiconfigmapentry","c":{},"d":[106],"e":true},"s":{"w":"ssloptionsproto","s":"sloptionsproto","c":{},"d":[112],"e":true},"u":{"w":"supported","s":"upported","c":{},"d":[136,159],"e":true}},"d":[1],"e":true},"p":{"w":"p","s":"p","c":{"s":{"w":"psi","s":"si","c":{"c":{"w":"psiconfig","s":"config","c":{},"d":[70,77],"e":true},"r":{"w":"psiresultreport","s":"resultreport","c":{},"d":[89],"e":true},"t":{"w":"psitype","s":"type","c":{},"d":[92],"e":true}},"d":[1,33,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48,49,49,50,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,128,129,130,131,131,132,133,134,134,149,150,151,152,153,154,155,155,156,157,158,159,160,161,162,162,163,164,165,165,166,166,167],"e":true},"y":{"w":"python","s":"ython","c":{},"d":[27],"e":true},"a":{"w":"pa","s":"a","c":{"c":{"w":"packages","s":"ckages","c":{},"d":[27],"e":true},"r":{"w":"par","s":"r","c":{"t":{"w":"party","s":"ty","c":{"p":{"w":"partyproto","s":"proto","c":{},"d":[110],"e":true}},"d":[102],"e":true},"a":{"w":"params","s":"ams","c":{},"d":[142],"e":true}},"d":[],"e":false}},"d":[],"e":false},"r":{"w":"pr","s":"r","c":{"o":{"w":"protocol","s":"otocol","c":{"s":{"w":"protocols","s":"s","c":{},"d":[41,42,43,44,45,46,47,48,49,50,136,159],"e":true},"c":{"w":"protocolconfig","s":"config","c":{},"d":[69],"e":true}},"d":[76],"e":true},"i":{"w":"private","s":"ivate","c":{},"d":[45],"e":true},"e":{"w":"prepare","s":"epare","c":{},"d":[119,130,140,152,160],"e":true}},"d":[],"e":false},"i":{"w":"pir","s":"ir","c":{"r":{"w":"pirresultreport","s":"resultreport","c":{},"d":[57],"e":true}},"d":[52,53,54,55,56,57,58,59,135,136,137,138,138,139,140,141,142,143,143,144,145],"e":true},"o":{"w":"port","s":"ort","c":{},"d":[103],"e":true}},"d":[],"e":false},"l":{"w":"l","s":"l","c":{"i":{"w":"li","s":"i","c":{"b":{"w":"library","s":"brary","c":{},"d":[1],"e":true},"n":{"w":"linux","s":"nux","c":{},"d":[37],"e":true},"m":{"w":"limit","s":"mit","c":{},"d":[126,156],"e":true}},"d":[],"e":false},"a":{"w":"la","s":"a","c":{"b":{"w":"labeled","s":"beled","c":{},"d":[48],"e":true},"u":{"w":"launch","s":"unch","c":{"c":{"w":"launchconfig","s":"config","c":{},"d":[97],"e":true}},"d":[94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114],"e":true},"t":{"w":"latency","s":"tency","c":{},"d":[126,156],"e":true}},"d":[],"e":false}},"d":[],"e":false},"d":{"w":"d","s":"d","c":{"o":{"w":"doc","s":"oc","c":{"u":{"w":"documentation","s":"umentation","c":{},"d":[1],"e":true},"k":{"w":"docker","s":"ker","c":{},"d":[25,36,123,129,137,155,161],"e":true}},"d":[],"e":false},"e":{"w":"de","s":"e","c":{"v":{"w":"dev","s":"v","c":{"2":{"w":"dev2","s":"2","c":{"3":{"w":"dev23122","s":"3122","c":{"1":{"w":"dev231221","s":"1","c":{},"d":[20],"e":true},"8":{"w":"dev231228","s":"8","c":{},"d":[19],"e":true}},"d":[],"e":false},"4":{"w":"dev240","s":"40","c":{"1":{"w":"dev240123","s":"123","c":{},"d":[18],"e":true},"2":{"w":"dev2402","s":"2","c":{"1":{"w":"dev240219","s":"19","c":{},"d":[17],"e":true},"2":{"w":"dev240222","s":"22","c":{},"d":[16],"e":true}},"d":[],"e":false},"3":{"w":"dev2403","s":"3","c":{"0":{"w":"dev240304","s":"04","c":{},"d":[15],"e":true},"2":{"w":"dev240329","s":"29","c":{},"d":[13],"e":true}},"d":[],"e":false},"4":{"w":"dev240401","s":"401","c":{},"d":[12],"e":true},"5":{"w":"dev2405","s":"5","c":{"1":{"w":"dev24051","s":"1","c":{"4":{"w":"dev240514","s":"4","c":{},"d":[11],"e":true},"7":{"w":"dev240517","s":"7","c":{},"d":[10],"e":true}},"d":[],"e":false},"2":{"w":"dev240521","s":"21","c":{},"d":[9],"e":true}},"d":[],"e":false},"7":{"w":"dev240731","s":"731","c":{},"d":[8],"e":true},"8":{"w":"dev240801","s":"801","c":{},"d":[7],"e":true}},"d":[],"e":false}},"d":[],"e":false},"e":{"w":"development","s":"elopment","c":{},"d":[40],"e":true}},"d":[36],"e":true},"p":{"w":"deprecated","s":"precated","c":{},"d":[33,158,159,160,161,162,163,164,165,166,167],"e":true},"b":{"w":"debugoptions","s":"bugoptions","c":{},"d":[63],"e":true}},"d":[],"e":false},"i":{"w":"differentially","s":"ifferentially","c":{},"d":[45],"e":true},"p":{"w":"dppsiparams","s":"ppsiparams","c":{},"d":[85],"e":true},"a":{"w":"data","s":"ata","c":{},"d":[118,130,140,151,160],"e":true}},"d":[],"e":false},"r":{"w":"r","s":"r","c":{"e":{"w":"re","s":"e","c":{"l":{"w":"release","s":"lease","c":{},"d":[2,3,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,25,129,137,161],"e":true},"p":{"w":"reporting","s":"porting","c":{},"d":[39],"e":true},"f":{"w":"reference","s":"ference","c":{},"d":[50,51],"e":true},"c":{"w":"rec","s":"c","c":{"o":{"w":"recoveryconfig","s":"overyconfig","c":{},"d":[71],"e":true},"e":{"w":"receiver","s":"eiver","c":{},"d":[154],"e":true}},"d":[],"e":false},"t":{"w":"retryoptionsproto","s":"tryoptionsproto","c":{},"d":[111],"e":true}},"d":[],"e":false},"r":{"w":"rr22","s":"r22","c":{"c":{"w":"rr22config","s":"config","c":{},"d":[72],"e":true}},"d":[49],"e":true},"o":{"w":"role","s":"ole","c":{},"d":[78],"e":true},"u":{"w":"run","s":"un","c":{},"d":[123,131,155,162],"e":true}},"d":[],"e":false},"n":{"w":"notes","s":"notes","c":{},"d":[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"e":true},"v":{"w":"v","s":"v","c":{"0":{"w":"v0","s":"0","c":{},"d":[4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"e":true},"1":{"w":"v1","s":"1","c":{},"d":[81,82,83,84,85,86,87,88,89,90,91,92,93,158,159,160,161,162,163,164,165,166,167],"e":true},"2":{"w":"v2","s":"2","c":{},"d":[60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,128,129,130,131,132,133,134,149,150,151,152,153,154,155,156,157],"e":true},"a":{"w":"value","s":"alue","c":{},"d":[59,80,93,114],"e":true}},"d":[],"e":false},"g":{"w":"g","s":"g","c":{"e":{"w":"ge","s":"e","c":{"t":{"w":"getting","s":"tting","c":{},"d":[22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],"e":true},"n":{"w":"generate","s":"nerate","c":{},"d":[118,151],"e":true}},"d":[],"e":false},"u":{"w":"guide","s":"uide","c":{},"d":[115],"e":true}},"d":[],"e":false},"i":{"w":"i","s":"i","c":{"n":{"w":"in","s":"n","c":{"s":{"w":"installation","s":"stallation","c":{},"d":[23],"e":true},"t":{"w":"introduction","s":"troduction","c":{},"d":[41,42,43,44,45,46,47,48,49,50],"e":true},"p":{"w":"input","s":"put","c":{"a":{"w":"inputattr","s":"attr","c":{},"d":[65],"e":true},"p":{"w":"inputparams","s":"params","c":{},"d":[86],"e":true}},"d":[],"e":false}},"d":[],"e":false},"s":{"w":"issue","s":"ssue","c":{"s":{"w":"issues","s":"s","c":{},"d":[147,148],"e":true}},"d":[39],"e":true},"o":{"w":"io","s":"o","c":{"c":{"w":"ioconfig","s":"config","c":{},"d":[66],"e":true},"t":{"w":"iotype","s":"type","c":{},"d":[75],"e":true}},"d":[],"e":false}},"d":[],"e":false},"c":{"w":"c","s":"c","c":{"o":{"w":"con","s":"on","c":{"f":{"w":"config","s":"fig","c":{"u":{"w":"configuration","s":"uration","c":{},"d":[52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114],"e":true}},"d":[119,130,140,143,147,152,153,154,160],"e":true},"t":{"w":"conte","s":"te","c":{"n":{"w":"contents","s":"nts","c":{},"d":[53,61,82,95],"e":true},"x":{"w":"contextdescproto","s":"xtdescproto","c":{},"d":[109],"e":true}},"d":[],"e":false}},"d":[],"e":false},"u":{"w":"curvetype","s":"urvetype","c":{},"d":[91],"e":true},"l":{"w":"clusterdefine","s":"lusterdefine","c":{},"d":[101],"e":true},"s":{"w":"csv","s":"sv","c":{},"d":[141],"e":true}},"d":[24],"e":true},"b":{"w":"b","s":"b","c":{"i":{"w":"binaries","s":"inaries","c":{},"d":[24],"e":true},"u":{"w":"bu","s":"u","c":{"i":{"w":"build","s":"ild","c":{"i":{"w":"building","s":"ing","c":{},"d":[26,34,117,132,150,163],"e":true}},"d":[38],"e":true},"c":{"w":"bucket","s":"cket","c":{"p":{"w":"bucketpsiconfig","s":"psiconfig","c":{},"d":[84],"e":true},"i":{"w":"bucketized","s":"ized","c":{},"d":[145],"e":true}},"d":[],"e":false}},"d":[],"e":false},"a":{"w":"ba","s":"a","c":{"s":{"w":"based","s":"sed","c":{},"d":[47],"e":true},"n":{"w":"bandwidth","s":"ndwidth","c":{},"d":[126,156],"e":true}},"d":[],"e":false},"l":{"w":"blazing","s":"lazing","c":{},"d":[49],"e":true},"e":{"w":"be","s":"e","c":{"n":{"w":"benchmark","s":"nchmark","c":{},"d":[116,117,118,119,120,121,122,123,124,125,126,127,127,149,150,151,152,153,154,155,156,157,157,164,165,166],"e":true},"f":{"w":"before","s":"fore","c":{},"d":[139],"e":true}},"d":[],"e":false}},"d":[],"e":false},"f":{"w":"f","s":"f","c":{"r":{"w":"fr","s":"r","c":{"o":{"w":"from","s":"om","c":{},"d":[26,117,132,150,163],"e":true},"e":{"w":"frequently","s":"equently","c":{},"d":[146,147,148],"e":true}},"d":[],"e":false},"a":{"w":"fa","s":"a","c":{"s":{"w":"fast","s":"st","c":{},"d":[49],"e":true},"q":{"w":"faq","s":"q","c":{},"d":[146,147,148],"e":true}},"d":[],"e":false},"i":{"w":"file","s":"ile","c":{},"d":[119,141,142,152],"e":true},"u":{"w":"full","s":"ull","c":{},"d":[144],"e":true},"e":{"w":"feature","s":"eature","c":{},"d":[148],"e":true}},"d":[],"e":false},"a":{"w":"a","s":"a","c":{"p":{"w":"ap","s":"p","c":{"p":{"w":"applications","s":"plications","c":{},"d":[30],"e":true},"i":{"w":"api","s":"i","c":{},"d":[51],"e":true},"s":{"w":"apsi","s":"si","c":{"r":{"w":"apsireceiverconfig","s":"receiverconfig","c":{},"d":[55],"e":true},"s":{"w":"apsisenderconfig","s":"senderconfig","c":{},"d":[56],"e":true},"_":{"w":"apsi_","s":"_","c":{"s":{"w":"apsi_sender","s":"sender","c":{"_":{"w":"apsi_sender_","s":"_","c":{"s":{"w":"apsi_sender_setup","s":"setup","c":{},"d":[120],"e":true},"o":{"w":"apsi_sender_online","s":"online","c":{},"d":[121],"e":true}},"d":[],"e":false}},"d":[124],"e":true},"r":{"w":"apsi_receiver","s":"receiver","c":{},"d":[122,125],"e":true}},"d":[],"e":false}},"d":[116,117,118,119,120,121,122,123,123,124,125,126,127,138,142],"e":true}},"d":[],"e":false},"n":{"w":"an","s":"n","c":{"d":{"w":"and","s":"d","c":{},"d":[126,130,140,156,160],"e":true}},"d":[39],"e":true},"d":{"w":"advancedjointype","s":"dvancedjointype","c":{},"d":[77],"e":true},"l":{"w":"allocatedports","s":"llocatedports","c":{},"d":[100],"e":true},"s":{"w":"asked","s":"sked","c":{},"d":[146,147,148],"e":true}},"d":[],"e":false},"e":{"w":"e","s":"e","c":{"a":{"w":"easy","s":"asy","c":{},"d":[33],"e":true},"c":{"w":"ecdh","s":"cdh","c":{"c":{"w":"ecdhconfig","s":"config","c":{},"d":[64],"e":true}},"d":[42,43,47,165],"e":true},"n":{"w":"enums","s":"nums","c":{},"d":[58,74,90,98,107,113],"e":true},"x":{"w":"examples","s":"xamples","c":{},"d":[133,144],"e":true}},"d":[],"e":false},"u":{"w":"u","s":"u","c":{"n":{"w":"un","s":"n","c":{"i":{"w":"unittest","s":"ittest","c":{},"d":[38],"e":true},"b":{"w":"unbalanced","s":"balanced","c":{},"d":[46],"e":true}},"d":[],"e":false},"b":{"w":"ub","s":"b","c":{"p":{"w":"ubpsiconfig","s":"psiconfig","c":{},"d":[73,79],"e":true}},"d":[134],"e":true},"s":{"w":"user","s":"ser","c":{},"d":[115],"e":true}},"d":[],"e":false},"k":{"w":"k","s":"k","c":{"k":{"w":"kkrt","s":"krt","c":{"1":{"w":"kkrt16","s":"16","c":{},"d":[44],"e":true},"c":{"w":"kkrtconfig","s":"config","c":{},"d":[67],"e":true}},"d":[166],"e":true},"e":{"w":"keyword","s":"eyword","c":{},"d":[138],"e":true}},"d":[],"e":false},"o":{"w":"o","s":"o","c":{"p":{"w":"oprf","s":"prf","c":{},"d":[47],"e":true},"f":{"w":"of","s":"f","c":{},"d":[53,61,82,95],"e":true},"u":{"w":"output","s":"utput","c":{"a":{"w":"outputattr","s":"attr","c":{},"d":[68],"e":true},"p":{"w":"outputparams","s":"params","c":{},"d":[88],"e":true}},"d":[],"e":false}},"d":[],"e":false},"m":{"w":"m","s":"m","c":{"e":{"w":"me","s":"e","c":{"s":{"w":"messages","s":"ssages","c":{},"d":[54,62,83,96,99,108],"e":true},"m":{"w":"memorypsiconfig","s":"morypsiconfig","c":{},"d":[87],"e":true}},"d":[],"e":false},"o":{"w":"mo","s":"o","c":{"d":{"w":"mode","s":"de","c":{},"d":[79,145],"e":true},"r":{"w":"more","s":"re","c":{},"d":[133],"e":true}},"d":[],"e":false}},"d":[],"e":false},"j":{"w":"json","s":"json","c":{},"d":[120,121,122],"e":true},"q":{"w":"qu","s":"qu","c":{"i":{"w":"quickstart","s":"ickstart","c":{},"d":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,158,159,160,161,162,163,164,165,166,167],"e":true},"e":{"w":"questions","s":"estions","c":{},"d":[146,147,148],"e":true}},"d":[],"e":false}},"d":[],"e":false},"isArray":false},"content":{"type":"Radix","node":{"w":"","s":"","c":{"0":{"w":"0","s":"0","c":{"1":{"w":"01","s":"1","c":{"2":{"w":"012s","s":"2s","c":{"0":{"w":"012s0","s":"0","c":{},"d":[166,166,166,166,166,166,166,166,166,166,166,166,166,166,166],"e":true}},"d":[166,166,166,166,166,166,166,166,166,166],"e":true},"4":{"w":"014s","s":"4s","c":{"o":{"w":"014sonline","s":"online","c":{"0":{"w":"014sonline0","s":"0","c":{},"d":[166,166],"e":true},"2":{"w":"014sonline2","s":"2","c":{},"d":[166,166],"e":true}},"d":[],"e":false}},"d":[166,166,166,166,166,166],"e":true},"6":{"w":"016s","s":"6s","c":{"0":{"w":"016s0","s":"0","c":{},"d":[166,166,166],"e":true}},"d":[166,166],"e":true},"8":{"w":"018s","s":"8s","c":{"o":{"w":"018sonline25","s":"online25","c":{},"d":[166,166],"e":true}},"d":[166,166,166],"e":true},"9":{"w":"019s","s":"9s","c":{"0":{"w":"019s0","s":"0","c":{},"d":[166,166,166],"e":true}},"d":[166,166],"e":true}},"d":[],"e":false},"2":{"w":"024s","s":"24s","c":{"0":{"w":"024s0","s":"0","c":{},"d":[166,166,166],"e":true}},"d":[166,166],"e":true},"3":{"w":"0312s","s":"312s","c":{"0":{"w":"0312s0","s":"0","c":{},"d":[166,166,166],"e":true}},"d":[166,166],"e":true},"4":{"w":"048s","s":"48s","c":{"4":{"w":"048s46","s":"46","c":{},"d":[166,166,166],"e":true}},"d":[166,166],"e":true},"5":{"w":"054s","s":"54s","c":{"8":{"w":"054s85","s":"85","c":{},"d":[165,165,165],"e":true}},"d":[165,165],"e":true},"6":{"w":"067s","s":"67s","c":{"8":{"w":"067s86","s":"86","c":{},"d":[45,45,45],"e":true}},"d":[45,45],"e":true},"8":{"w":"081s","s":"81s","c":{"1":{"w":"081s13","s":"13","c":{},"d":[165,165,165],"e":true}},"d":[165,165],"e":true},"9":{"w":"095s","s":"95s","c":{"1":{"w":"095s18","s":"18","c":{},"d":[165,165,165],"e":true}},"d":[165,165],"e":true},"b":{"w":"0b0","s":"b0","c":{},"d":[29,29,29,29,29,29,29,29,141,141,141,143,143],"e":true}},"d":[6,6,10,10,13,13,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,48,48,48,48,48,48,48,48,48,48,48,48,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,50,50,75,75,76,76,77,77,78,78,79,79,91,91,92,92,112,112,112,112,112,141,141,141,143,143,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166,166],"e":true},"1":{"w":"1","s":"1","c":{"0":{"w":"10","s":"0","c":{"0":{"w":"100","s":"0","c":{"0":{"w":"1000mbps","s":"0mbps","c":{},"d":[166],"e":true},"2":{"w":"10022","s":"22","c":{},"d":[76,76,76,76,76],"e":true},"m":{"w":"100mbps","s":"mbps","c":{"o":{"w":"100mbpsoffline0","s":"offline0","c":{},"d":[166],"e":true}},"d":[166,166,166],"e":true}},"d":[165,165,166,166],"e":true},"2":{"w":"1024","s":"24","c":{"0":{"w":"10240","s":"0","c":{"0":{"w":"102400","s":"0","c":{"0":{"w":"1024000kbps","s":"0kbps","c":{},"d":[166],"e":true},"k":{"w":"102400kbps","s":"kbps","c":{},"d":[166],"e":true}},"d":[],"e":false},"k":{"w":"10240kbps","s":"kbps","c":{},"d":[166],"e":true}},"d":[],"e":false}},"d":[56,56,56,56,56],"e":true},"5":{"w":"1055","s":"55","c":{},"d":[50,50],"e":true},"7":{"w":"107","s":"7","c":{"2":{"w":"1072","s":"2","c":{},"d":[50,50],"e":true},"4":{"w":"1074","s":"4","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"9":{"w":"109","s":"9","c":{"1":{"w":"1091","s":"1","c":{},"d":[50,50],"e":true},"5":{"w":"10957","s":"57","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"s":{"w":"10s","s":"s","c":{"e":{"w":"10serror_codesrepeated","s":"error_codesrepeated","c":{},"d":[111,111],"e":true}},"d":[111,111,111],"e":true},"m":{"w":"10mbps","s":"mbps","c":{"o":{"w":"10mbpsoffline0","s":"offline0","c":{},"d":[166],"e":true}},"d":[166,166,166],"e":true}},"d":[47,47,50,50,50,50,50,50,50,50,50,76,76,76,76,76,92,92,166,166],"e":true},"1":{"w":"11","s":"1","c":{"0":{"w":"1109","s":"09","c":{},"d":[76,76,76,76,76],"e":true},"4":{"w":"1145","s":"45","c":{},"d":[50,50,50,50,50,50],"e":true}},"d":[37,37,47,47,92,92,165,165,166,166],"e":true},"2":{"w":"12","s":"2","c":{"2":{"w":"1223","s":"23","c":{},"d":[50,50],"e":true},"3":{"w":"1237","s":"37","c":{},"d":[50,50],"e":true},"4":{"w":"1243","s":"43","c":{},"d":[50,50],"e":true},"5":{"w":"1255","s":"55","c":{},"d":[50,50],"e":true},"8":{"w":"128","s":"8","c":{},"d":[44],"e":true}},"d":[92,92],"e":true},"3":{"w":"13","s":"3","c":{"2":{"w":"13249","s":"249","c":{},"d":[50,50,50,92,92,92,92,92,92],"e":true},"4":{"w":"134","s":"4","c":{"s":{"w":"134s","s":"s","c":{"4":{"w":"134s42","s":"42","c":{},"d":[45,45,45],"e":true}},"d":[45,45],"e":true}},"d":[50,50,50,50,76,76,76,76,76,76,76,76,76,76],"e":true},"9":{"w":"139","s":"9","c":{},"d":[165,165],"e":true}},"d":[92,92,165,165],"e":true},"4":{"w":"14","s":"4","c":{"4":{"w":"144","s":"4","c":{},"d":[50,50,50,50,50],"e":true},"8":{"w":"14888","s":"888","c":{},"d":[42,42,42,42,42,91,91,91,91,91],"e":true}},"d":[92,92],"e":true},"5":{"w":"15","s":"5","c":{"6":{"w":"156s","s":"6s","c":{},"d":[165,165,165,165,165],"e":true}},"d":[37,37,92,92,165,165],"e":true},"6":{"w":"16","s":"6","c":{"3":{"w":"163","s":"3","c":{},"d":[165,165],"e":true},"7":{"w":"1672","s":"72","c":{},"d":[166,166],"e":true},"c":{"w":"16c","s":"c","c":{"1":{"w":"16c11","s":"11","c":{},"d":[165],"e":true},"2":{"w":"16c2","s":"2","c":{},"d":[165],"e":true}},"d":[165,165,165,165],"e":true}},"d":[48,48,48,48,48,56,56,56,56,56],"e":true},"7":{"w":"17","s":"7","c":{"0":{"w":"170","s":"0","c":{},"d":[45,45],"e":true},"3":{"w":"173","s":"3","c":{},"d":[165,165],"e":true}},"d":[],"e":false},"8":{"w":"18","s":"8","c":{"1":{"w":"181s","s":"1s","c":{"8":{"w":"181s81","s":"81","c":{},"d":[165,165,165],"e":true}},"d":[165,165],"e":true},"2":{"w":"182","s":"2","c":{},"d":[166,166,166],"e":true},"6":{"w":"186s","s":"6s","c":{"2":{"w":"186s29","s":"29","c":{},"d":[165,165,165],"e":true}},"d":[165,165,165,165,165,165,165],"e":true}},"d":[165,165,166,166],"e":true},"9":{"w":"19","s":"9","c":{"2":{"w":"192","s":"2","c":{},"d":[166,166],"e":true},"8":{"w":"1986","s":"86","c":{},"d":[50,50,50,50,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76],"e":true},"9":{"w":"1999","s":"99","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"n":{"w":"1n","s":"n","c":{"1":{"w":"1n1","s":"1","c":{},"d":[42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47],"e":true},"2":{"w":"1n2","s":"2","c":{},"d":[42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47],"e":true}},"d":[],"e":false},"i":{"w":"1itemparams","s":"itemparams","c":{"f":{"w":"1itemparamsfelts_per_itemhow","s":"felts_per_itemhow","c":{},"d":[48],"e":true}},"d":[48],"e":true},"m":{"w":"1m","s":"m","c":{},"d":[118,118],"e":true}},"d":[37,37,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,55,55,55,55,55,56,56,56,56,56,67,67,67,67,67,72,72,72,72,72,75,75,76,76,77,77,78,78,79,79,89,89,89,89,89,89,91,91,91,91,91,91,91,92,92,111,111,111,111,111,118,118,159,159],"e":true},"2":{"w":"2","s":"2","c":{"0":{"w":"20","s":"0","c":{"0":{"w":"2006","s":"06","c":{},"d":[50,50,50,50],"e":true},"1":{"w":"201","s":"1","c":{"0":{"w":"2010","s":"0","c":{},"d":[48,48,48,48,48,50,50],"e":true},"1":{"w":"2011","s":"1","c":{},"d":[50,50],"e":true},"2":{"w":"2012","s":"2","c":{},"d":[50,50,50,50,50,50,50],"e":true},"5":{"w":"2015","s":"5","c":{},"d":[50,50,50,50,50,50,50],"e":true},"6":{"w":"2016","s":"6","c":{"o":{"w":"2016openssl","s":"openssl","c":{"i":{"w":"2016openssliso","s":"iso","c":{},"d":[42,42],"e":true}},"d":[42],"e":true}},"d":[42,42,50,50,50,50,76,76,76,76,76,76,91,91,91,91,91,92,92,92,92,92,92],"e":true},"7":{"w":"2017","s":"7","c":{},"d":[50,50,50,50],"e":true},"8":{"w":"2018","s":"8","c":{},"d":[50,50,50,50,50,50,50,50,50,50,50,50],"e":true},"9":{"w":"2019","s":"9","c":{},"d":[50,50,50,50,50,50,50,50,50,50,50,50],"e":true}},"d":[],"e":false},"2":{"w":"202","s":"2","c":{"0":{"w":"2020","s":"0","c":{},"d":[50,50],"e":true},"1":{"w":"2021","s":"1","c":{},"d":[50,50,50,50,50,50,50,50],"e":true},"2":{"w":"2022","s":"2","c":{},"d":[50,50,76,76,76,76,76,76,92,92,92,92,92,92],"e":true}},"d":[45,45,45,165,165,165,165,165,165,166,166,166],"e":true},"3":{"w":"203","s":"3","c":{},"d":[50,50],"e":true},"4":{"w":"2048","s":"48","c":{},"d":[48,48],"e":true},"8":{"w":"208","s":"8","c":{},"d":[165,165],"e":true}},"d":[37,37,45,45,45,45,67,67,67,67,67,72,72,72,72,72,147,165,165,165,165,165,165,166,166],"e":true},"1":{"w":"21","s":"1","c":{"2":{"w":"212","s":"2","c":{},"d":[45,45,45,165,165,165,165,165,165],"e":true},"s":{"w":"21s","s":"s","c":{},"d":[166,166,166,166,166],"e":true}},"d":[45,45,48,48,48,48,49,50,50,50,50,165,165,165,165],"e":true},"2":{"w":"22","s":"2","c":{"0":{"w":"2208","s":"08","c":{},"d":[50,50,50,92,92,92,92,92,92],"e":true},"1":{"w":"221","s":"1","c":{},"d":[50,50],"e":true},"2":{"w":"222","s":"2","c":{},"d":[45,45,45,165,165,165,165,165,165,166,166,166],"e":true},"4":{"w":"224","s":"4","c":{"2":{"w":"2242","s":"2","c":{},"d":[44,44,44,44,44,44],"e":true}},"d":[44,44,44,44,44,44,44,44],"e":true},"7":{"w":"227s","s":"7s","c":{"1":{"w":"227s163","s":"163","c":{},"d":[165,165,165],"e":true}},"d":[165,165],"e":true}},"d":[45,45,48,48,48,48,48,49,49,50,50,165,165,165,165,166,166],"e":true},"3":{"w":"23","s":"3","c":{"2":{"w":"232","s":"2","c":{},"d":[45,45,45,165,165,165,165,165,165],"e":true}},"d":[45,45,165,165,165,165,165,165],"e":true},"4":{"w":"24","s":"4","c":{"8":{"w":"248","s":"8","c":{"2":{"w":"248269cy","s":"269cy","c":{},"d":[165],"e":true},"3":{"w":"248369b","s":"369b","c":{},"d":[165],"e":true}},"d":[],"e":false},"d":{"w":"24dp","s":"dp","c":{},"d":[45],"e":true},"l":{"w":"24lanoffline0","s":"lanoffline0","c":{},"d":[166],"e":true}},"d":[44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,45,45,45,45,165,165,165,165,165,165,165,165,166,166,166,166],"e":true},"5":{"w":"25","s":"5","c":{"5":{"w":"25519","s":"519","c":{},"d":[18,18],"e":true},"6":{"w":"256bit","s":"6bit","c":{},"d":[84,84,84,84,84],"e":true}},"d":[166,166],"e":true},"6":{"w":"26","s":"6","c":{},"d":[37,37],"e":true},"7":{"w":"272s","s":"72s","c":{"1":{"w":"272s173","s":"173","c":{},"d":[165,165,165],"e":true}},"d":[165,165],"e":true},"8":{"w":"28","s":"8","c":{},"d":[59,59,80,80,93,93,114,114],"e":true},"9":{"w":"29","s":"9","c":{"1":{"w":"291","s":"1","c":{},"d":[50,50,50,50],"e":true}},"d":[165,165],"e":true},"t":{"w":"2tableparams","s":"tableparams","c":{"h":{"w":"2tableparamshash_func_countcuckoo","s":"hash_func_countcuckoo","c":{},"d":[48,48],"e":true}},"d":[48],"e":true},"p":{"w":"2p","s":"p","c":{},"d":[78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,159,159,159,159,159,159,159,159,159,159,159,159],"e":true},"s":{"w":"2s","s":"s","c":{"m":{"w":"2smax_retry_interval_ms","s":"max_retry_interval_ms","c":{},"d":[111,111],"e":true}},"d":[111,111,111],"e":true}},"d":[37,37,37,37,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,45,45,45,45,45,45,45,45,45,45,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,50,50,56,56,56,56,56,59,59,59,59,76,76,77,77,78,78,79,79,80,80,80,80,91,91,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,93,93,93,93,114,114,114,114,147,159,159,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,166,166,166,166,166,166,166,166,166,166,166,166,166],"e":true},"3":{"w":"3","s":"3","c":{"0":{"w":"30","s":"0","c":{"8":{"w":"308","s":"8","c":{},"d":[50,50,50,50],"e":true}},"d":[48,48,48,48,48,48,48,48,48,48],"e":true},"1":{"w":"31","s":"1","c":{"3":{"w":"313","s":"3","c":{"3":{"w":"3133956","s":"3956","c":{},"d":[50,50,50],"e":true},"4":{"w":"3134061","s":"4061","c":{},"d":[50,50,50],"e":true}},"d":[],"e":false}},"d":[165,165],"e":true},"2":{"w":"32","s":"2","c":{"0":{"w":"320","s":"0","c":{},"d":[76,76,76,76,76,76,92,92,92,92,92,92],"e":true},"4":{"w":"3243","s":"43","c":{"7":{"w":"3243734","s":"734","c":{},"d":[50,50,50],"e":true},"8":{"w":"3243836","s":"836","c":{},"d":[50,50,50],"e":true}},"d":[],"e":false},"9":{"w":"32918","s":"918","c":{},"d":[42,42,42,42,42,91,91,91,91,91],"e":true},"b":{"w":"32bytes","s":"bytes","c":{},"d":[84,84,84,84,84],"e":true},"c":{"w":"32c64g","s":"c64g","c":{},"d":[124],"e":true},"s":{"w":"32s","s":"s","c":{"3":{"w":"32s31","s":"31","c":{},"d":[165,165,165],"e":true}},"d":[165,165],"e":true}},"d":[118,118],"e":true},"3":{"w":"330","s":"30","c":{},"d":[165,165],"e":true},"5":{"w":"35","s":"5","c":{"4":{"w":"354","s":"4","c":{},"d":[165,165],"e":true},"9":{"w":"359s","s":"9s","c":{},"d":[45,45,45,45,45],"e":true}},"d":[50,50],"e":true},"6":{"w":"368s","s":"68s","c":{"1":{"w":"368s100mbpsoffline0","s":"100mbpsoffline0","c":{},"d":[166,166],"e":true}},"d":[166,166,166],"e":true},"7":{"w":"37s","s":"7s","c":{"1":{"w":"37s1","s":"1","c":{"0":{"w":"37s10mbpsoffline0","s":"0mbpsoffline0","c":{},"d":[166,166],"e":true},"5":{"w":"37s15","s":"5","c":{},"d":[165,165,165],"e":true}},"d":[],"e":false}},"d":[165,165,166,166,166],"e":true},"9":{"w":"3958","s":"958","c":{},"d":[50,50],"e":true},"f":{"w":"3fourq","s":"fourq","c":{},"d":[42,42],"e":true},"p":{"w":"3p","s":"p","c":{},"d":[43],"e":true},"q":{"w":"3queryparams","s":"queryparams","c":{},"d":[48],"e":true},"c":{"w":"3curve_secp256k14parameters","s":"curve_secp256k14parameters","c":{},"d":[91,91],"e":true},"r":{"w":"3retry_interval_ms","s":"retry_interval_ms","c":{},"d":[111,111],"e":true},"s":{"w":"3s","s":"s","c":{"9":{"w":"3s9","s":"9","c":{},"d":[165,165,165],"e":true}},"d":[165,165],"e":true}},"d":[37,37,37,37,37,37,42,42,42,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,47,48,48,48,48,48,48,48,76,76,77,77,78,78,79,79,91,91,91,91,91,111,111,111,159,159],"e":true},"4":{"w":"4","s":"4","c":{"0":{"w":"40","s":"0","c":{"9":{"w":"4096","s":"96","c":{},"d":[48,48,48,48,48,64,64,64,64,64],"e":true}},"d":[165,165,165,165],"e":true},"1":{"w":"41","s":"1","c":{"5":{"w":"415","s":"5","c":{},"d":[166,166],"e":true},"8":{"w":"418","s":"8","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"2":{"w":"42","s":"2","c":{},"d":[45,45,165,165],"e":true},"3":{"w":"43","s":"3","c":{"4":{"w":"434s","s":"4s","c":{"1":{"w":"434s100","s":"100","c":{},"d":[166,166,166],"e":true}},"d":[166,166],"e":true},"5":{"w":"435","s":"5","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"4":{"w":"44","s":"4","c":{},"d":[166,166],"e":true},"6":{"w":"46","s":"6","c":{"6":{"w":"466s","s":"6s","c":{"6":{"w":"466s666","s":"666","c":{},"d":[165,165,165],"e":true}},"d":[165,165],"e":true}},"d":[166,166],"e":true},"7":{"w":"474s","s":"74s","c":{"1":{"w":"474s10","s":"10","c":{},"d":[166,166,166],"e":true}},"d":[166,166],"e":true},"8":{"w":"48","s":"8","c":{},"d":[48,48,48,48,48,48,48,48,48,48,165,165],"e":true},"9":{"w":"495s","s":"95s","c":{"2":{"w":"495s2","s":"2","c":{},"d":[166,166,166],"e":true}},"d":[166,166],"e":true},"b":{"w":"4b3","s":"b3","c":{},"d":[13,13],"e":true},"s":{"w":"4sealparams","s":"sealparams","c":{},"d":[48],"e":true},"c":{"w":"4c","s":"c","c":{"7":{"w":"4c7","s":"7","c":{},"d":[165,165,165],"e":true}},"d":[165,165,165,165],"e":true}},"d":[6,6,10,10,13,13,48,48,50,50,50,50,77,77,78,78,79,79,91,91,92,92,141,141,141,143,143,165,165],"e":true},"5":{"w":"5","s":"5","c":{"0":{"w":"50","s":"0","c":{"9":{"w":"509s","s":"9s","c":{"3":{"w":"509s330","s":"330","c":{},"d":[165,165,165],"e":true}},"d":[165,165],"e":true},"g":{"w":"50ghz","s":"ghz","c":{"w":{"w":"50ghzwith","s":"with","c":{},"d":[165,165,165,165],"e":true}},"d":[165,166],"e":true}},"d":[48,48,48,48,48],"e":true},"1":{"w":"512","s":"12","c":{},"d":[42,42,42,42,42],"e":true},"6":{"w":"56","s":"6","c":{"5":{"w":"565","s":"5","c":{},"d":[50,50,50,50,50],"e":true}},"d":[48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,59,59,80,80,93,93,114,114],"e":true},"8":{"w":"580s","s":"80s","c":{"1":{"w":"580s170","s":"170","c":{},"d":[45,45,45],"e":true}},"d":[45,45],"e":true},"b":{"w":"5b","s":"b","c":{"0":{"w":"5b0","s":"0","c":{},"d":[10,10],"e":true},"1":{"w":"5b1","s":"1","c":{},"d":[6,6],"e":true}},"d":[],"e":false}},"d":[29,29,29,29,29,29,29,29,37,37,77,77,79,79,91,91,92,92],"e":true},"6":{"w":"6","s":"6","c":{"1":{"w":"614s","s":"14s","c":{"6":{"w":"614s65","s":"65","c":{},"d":[165,165,165],"e":true}},"d":[165,165],"e":true},"2":{"w":"6280","s":"280","c":{},"d":[50,50],"e":true},"3":{"w":"639s","s":"39s","c":{"2":{"w":"639s23","s":"23","c":{},"d":[165,165,165],"e":true}},"d":[165,165],"e":true},"4":{"w":"649s","s":"49s","c":{"1":{"w":"649s16c2","s":"16c2","c":{},"d":[165,165],"e":true}},"d":[165,165,165],"e":true},"5":{"w":"65","s":"5","c":{"5":{"w":"65535","s":"535","c":{},"d":[48,48,48,48,48],"e":true}},"d":[165,165],"e":true},"6":{"w":"66","s":"6","c":{"6":{"w":"666","s":"6","c":{},"d":[165,165],"e":true}},"d":[165,165],"e":true},"7":{"w":"670s","s":"70s","c":{"4":{"w":"670s48","s":"48","c":{},"d":[165,165,165],"e":true}},"d":[165,165],"e":true},"8":{"w":"68","s":"8","c":{"2":{"w":"682s","s":"2s","c":{"4":{"w":"682s42","s":"42","c":{},"d":[165,165,165],"e":true}},"d":[165,165],"e":true},"s":{"w":"68s","s":"s","c":{"4":{"w":"68s415","s":"415","c":{},"d":[166,166,166],"e":true}},"d":[166,166],"e":true}},"d":[],"e":false},"9":{"w":"69","s":"9","c":{"1":{"w":"691","s":"1","c":{},"d":[50,50],"e":true},"4":{"w":"694s","s":"4s","c":{"1":{"w":"694s11","s":"11","c":{},"d":[166,166,166],"e":true}},"d":[166,166],"e":true}},"d":[],"e":false}},"d":[92,92,165,165],"e":true},"7":{"w":"7","s":"7","c":{"0":{"w":"70","s":"0","c":{"2":{"w":"702","s":"2","c":{},"d":[50,50],"e":true},"g":{"w":"70ghz","s":"ghz","c":{"c":{"w":"70ghzcurve25519","s":"curve25519","c":{},"d":[165,165,165,165],"e":true}},"d":[165],"e":true}},"d":[],"e":false},"6":{"w":"765s","s":"65s","c":{"4":{"w":"765s44","s":"44","c":{},"d":[166,166,166],"e":true}},"d":[166,166],"e":true},"9":{"w":"799","s":"99","c":{},"d":[76,76,76,76,76,76,92,92,92,92,92,92],"e":true}},"d":[59,59,80,80,92,92,93,93,114,114,165,165],"e":true},"8":{"w":"8","s":"8","c":{"0":{"w":"80","s":"0","c":{"2":{"w":"802s","s":"2s","c":{"1":{"w":"802s139","s":"139","c":{},"d":[165,165,165],"e":true}},"d":[165,165],"e":true},"6":{"w":"806s","s":"6s","c":{"2":{"w":"806s20","s":"20","c":{},"d":[45,45,45],"e":true}},"d":[45,45],"e":true},"7":{"w":"807s","s":"7s","c":{"8":{"w":"807s8c20","s":"8c20","c":{},"d":[165,165],"e":true}},"d":[165,165,165],"e":true}},"d":[],"e":false},"1":{"w":"81","s":"1","c":{"8":{"w":"818","s":"8","c":{},"d":[50,50],"e":true},"9":{"w":"8192","s":"92","c":{"p":{"w":"8192plain_modulus","s":"plain_modulus","c":{},"d":[48,48],"e":true}},"d":[48,48,48],"e":true}},"d":[165,165],"e":true},"2":{"w":"82","s":"2","c":{"6":{"w":"8269cy","s":"69cy","c":{},"d":[165,165,165,165,166],"e":true},"8":{"w":"828s","s":"8s","c":{"8":{"w":"828s87","s":"87","c":{},"d":[165,165,165],"e":true}},"d":[165,165],"e":true},"9":{"w":"829","s":"9","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"3":{"w":"836","s":"36","c":{"9":{"w":"8369b","s":"9b","c":{},"d":[165,165,165,165],"e":true},"s":{"w":"836s","s":"s","c":{"3":{"w":"836s354","s":"354","c":{},"d":[165,165,165],"e":true}},"d":[165,165],"e":true}},"d":[],"e":false},"4":{"w":"842s","s":"42s","c":{"1":{"w":"842s16c11","s":"16c11","c":{},"d":[165,165],"e":true}},"d":[165,165,165],"e":true},"5":{"w":"85","s":"5","c":{},"d":[165,165],"e":true},"6":{"w":"86","s":"6","c":{},"d":[45,45],"e":true},"7":{"w":"87","s":"7","c":{},"d":[165,165],"e":true},"9":{"w":"896","s":"96","c":{},"d":[50,50],"e":true},"c":{"w":"8c","s":"c","c":{"2":{"w":"8c20","s":"20","c":{},"d":[165],"e":true},"4":{"w":"8c4","s":"4","c":{},"d":[165],"e":true}},"d":[165,165,165,165],"e":true}},"d":[37,37,59,59,80,80,92,92,93,93,114,114],"e":true},"9":{"w":"9","s":"9","c":{"0":{"w":"903s","s":"03s","c":{"2":{"w":"903s208","s":"208","c":{},"d":[165,165,165],"e":true}},"d":[165,165],"e":true},"1":{"w":"91","s":"1","c":{"2":{"w":"912","s":"2","c":{},"d":[50,50],"e":true},"9":{"w":"919s","s":"9s","c":{"4":{"w":"919s40","s":"40","c":{},"d":[165,165,165],"e":true}},"d":[165,165],"e":true}},"d":[],"e":false},"2":{"w":"921s","s":"21s","c":{"6":{"w":"921s6","s":"6","c":{},"d":[165,165,165],"e":true}},"d":[165,165],"e":true},"3":{"w":"932s","s":"32s","c":{"6":{"w":"932s66","s":"66","c":{},"d":[165,165,165],"e":true}},"d":[165,165],"e":true},"4":{"w":"94s","s":"4s","c":{"1":{"w":"94s1672","s":"1672","c":{},"d":[166,166,166],"e":true}},"d":[166,166],"e":true},"6":{"w":"965s","s":"65s","c":{"1":{"w":"965s100","s":"100","c":{},"d":[165,165,165],"e":true}},"d":[165,165],"e":true},"8":{"w":"983s","s":"83s","c":{"1":{"w":"983s192","s":"192","c":{},"d":[166,166,166],"e":true}},"d":[166,166],"e":true},"9":{"w":"994s","s":"94s","c":{"8":{"w":"994s8c4","s":"8c4","c":{},"d":[165,165],"e":true}},"d":[165,165,165],"e":true}},"d":[45,45,92,92,165,165],"e":true},"t":{"w":"t","s":"t","c":{"h":{"w":"th","s":"h","c":{"i":{"w":"thi","s":"i","c":{"s":{"w":"this","s":"s","c":{},"d":[1,1,22,22,22,22,22,45,45,45,45,51,56,56,56,56,56,109,109,109,109,109,109,109,109,109,109,111,111,111,111,111,116,127,127,127,127,136,139,141,141,143,143,143,143,146,147,147,147,149],"e":true},"r":{"w":"third","s":"rd","c":{},"d":[50,50,76,76,76,76,76,147,147],"e":true}},"d":[],"e":false},"e":{"w":"the","s":"e","c":{"r":{"w":"there","s":"re","c":{"f":{"w":"therefore","s":"fore","c":{},"d":[45,127],"e":true}},"d":[22,109],"e":true},"n":{"w":"then","s":"n","c":{},"d":[42,42,42,42,43,43,43,43,45,45,45,45,45,45,45,45,45,45,47,47,47,47,48,48,48,48,48,48,109,124,125,132,145,163],"e":true},"m":{"w":"them","s":"m","c":{},"d":[43,43,43,43],"e":true},"i":{"w":"their","s":"ir","c":{},"d":[45,45,45,45],"e":true},"s":{"w":"these","s":"se","c":{},"d":[59,59,59,59,80,80,80,80,93,93,93,93,111,111,111,111,111,111,111,111,111,111,114,114,114,114,148,148],"e":true}},"d":[1,20,20,22,22,22,22,22,22,22,41,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,43,43,43,43,43,43,43,43,44,44,44,44,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,49,49,49,49,49,49,50,50,50,50,50,50,55,55,55,55,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,57,63,63,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,67,70,70,70,70,70,70,70,70,70,70,70,71,71,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,76,76,76,76,76,77,77,77,77,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,85,86,86,86,86,86,87,87,87,87,87,87,87,87,88,88,88,89,89,89,89,89,91,91,91,91,91,91,91,91,91,91,91,92,101,102,102,104,104,104,104,104,104,104,109,109,109,109,109,109,109,109,109,109,111,111,111,111,111,111,111,111,111,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,116,117,117,118,118,118,119,123,127,127,127,127,127,127,127,127,127,127,127,127,130,130,130,130,130,130,130,130,130,130,131,131,131,131,139,139,139,139,139,139,141,141,141,141,141,141,141,142,142,142,142,142,143,143,143,145,145,145,145,145,145,145,145,145,145,145,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,148,148,148,149,149,149,150,150,151,152,155,157,157,157,159,159,159,159,159,159,159,162,162,162,162,166,166,167],"e":true},"r":{"w":"thr","s":"r","c":{"e":{"w":"thre","s":"e","c":{"e":{"w":"three","s":"e","c":{},"d":[41,41,43],"e":true},"a":{"w":"threa","s":"a","c":{"d":{"w":"thread","s":"d","c":{"s":{"w":"threads","s":"s","c":{},"d":[55,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56],"e":true},"i":{"w":"threading","s":"ing","c":{},"d":[166],"e":true}},"d":[166],"e":true},"t":{"w":"threat","s":"t","c":{},"d":[159,159,159],"e":true}},"d":[],"e":false}},"d":[],"e":false},"o":{"w":"thro","s":"o","c":{"t":{"w":"throttle","s":"ttle","c":{"_":{"w":"throttle_window_size","s":"_window_size","c":{},"d":[109],"e":true}},"d":[109],"e":true},"w":{"w":"throw","s":"w","c":{},"d":[109],"e":true},"u":{"w":"through","s":"ugh","c":{},"d":[151],"e":true}},"d":[],"e":false}},"d":[],"e":false},"a":{"w":"tha","s":"a","c":{"t":{"w":"that","s":"t","c":{},"d":[42,43,43,45,45,45,45,45,45,47,49,49,109,109,111,111,111,111,111,118,120,122,127,127,139],"e":true},"n":{"w":"than","s":"n","c":{},"d":[42,42,48,59,59,59,59,59,59,59,59,59,59,59,59,80,80,80,80,80,80,80,80,80,80,80,80,93,93,93,93,93,93,93,93,93,93,93,93,109,109,114,114,114,114,114,114,114,114,114,114,114,114],"e":true}},"d":[],"e":false},"u":{"w":"thu","s":"u","c":{"s":{"w":"thus","s":"s","c":{},"d":[42,42,42,42,47,47,47,47],"e":true},"r":{"w":"thuraisingham","s":"raisingham","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"o":{"w":"those","s":"ose","c":{},"d":[45],"e":true}},"d":[43,43,43,43,43,43,43,43],"e":true},"e":{"w":"te","s":"e","c":{"a":{"w":"team","s":"am","c":{},"d":[1],"e":true},"m":{"w":"temp","s":"mp","c":{},"d":[14,14],"e":true},"s":{"w":"test","s":"st","c":{"i":{"w":"testing","s":"ing","c":{},"d":[38,50,50,127],"e":true}},"d":[45],"e":true},"r":{"w":"term","s":"rm","c":{"s":{"w":"terms","s":"s","c":{},"d":[45],"e":true},"i":{"w":"terminal","s":"inal","c":{},"d":[131,131,162,162],"e":true}},"d":[],"e":false},"c":{"w":"techniquesfor","s":"chniquesfor","c":{},"d":[49],"e":true},"x":{"w":"text","s":"xt","c":{},"d":[55,55,55,55,55,59,59,80,80,93,93,114,114,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145,145],"e":true}},"d":[],"e":false},"m":{"w":"tmp","s":"mp","c":{},"d":[5,5,63,63,63,63,63,118,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130],"e":true},"o":{"w":"to","s":"o","c":{"p":{"w":"top","s":"p","c":{"i":{"w":"topics","s":"ics","c":{},"d":[40],"e":true},"s":{"w":"tops","s":"s","c":{},"d":[50,50],"e":true}},"d":[70],"e":true},"t":{"w":"total","s":"tal","c":{},"d":[67,67,67,67,67,72,72,72,72,72],"e":true},"d":{"w":"todo","s":"do","c":{},"d":[75],"e":true}},"d":[6,6,6,6,10,10,11,11,13,13,20,20,20,20,22,22,22,22,22,22,22,36,37,39,40,42,42,42,42,42,42,42,42,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,44,44,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,49,49,49,49,49,49,50,50,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,59,59,59,59,63,63,63,63,63,63,69,69,69,69,69,69,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,71,71,73,73,73,73,73,76,76,76,76,76,77,77,77,77,77,77,79,79,79,79,79,80,80,80,80,84,84,84,84,84,84,84,84,84,84,86,86,86,86,86,87,87,87,87,87,87,87,87,87,87,88,88,88,88,88,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,93,93,93,93,103,103,103,103,103,103,103,103,103,103,104,104,104,104,104,104,109,109,109,109,109,109,109,109,109,109,109,111,111,111,111,111,112,112,112,112,112,114,114,114,114,115,117,118,118,118,118,118,119,120,122,123,123,127,127,127,127,127,127,127,127,130,130,134,139,139,139,139,139,142,142,142,142,143,143,143,145,147,147,147,147,147,147,147,147,147,148,148,148,148,148,148,148,148,148,150,151,151,152,155,155,159,160,166],"e":true},"y":{"w":"typ","s":"yp","c":{"o":{"w":"typo","s":"o","c":{},"d":[14,14],"e":true},"i":{"w":"typical","s":"ical","c":{},"d":[45],"e":true},"e":{"w":"type","s":"e","c":{"s":{"w":"types","s":"s","c":{},"d":[53,53,53,61,61,61,75,82,82,82,95,95,95],"e":true},"n":{"w":"typenotesc","s":"notesc","c":{},"d":[59,59,59,80,80,80,93,93,93,114,114,114],"e":true},"j":{"w":"typejava","s":"java","c":{},"d":[59,59,59,80,80,80,93,93,93,114,114,114],"e":true},"p":{"w":"typepython","s":"python","c":{},"d":[59,59,59,80,80,80,93,93,93,114,114,114],"e":true}},"d":[55,55,56,56,57,57,59,59,59,59,59,59,59,59,59,59,59,63,63,64,64,65,65,66,66,66,66,66,66,67,67,68,68,69,69,70,70,70,70,70,70,70,71,71,72,72,73,73,80,80,80,80,80,80,80,80,80,80,80,84,84,84,84,84,84,84,85,85,86,86,87,87,87,87,87,87,87,88,88,89,89,92,93,93,93,93,93,93,93,93,93,93,93,97,97,100,100,101,101,102,102,103,103,104,104,105,105,106,106,109,109,109,110,110,111,111,112,112,114,114,114,114,114,114,114,114,114,114,114,136,136,147],"e":true}},"d":[],"e":false},"u":{"w":"tu","s":"u","c":{"t":{"w":"tutorial","s":"torial","c":{},"d":[31,31],"e":true},"r":{"w":"turn","s":"rn","c":{"e":{"w":"turned","s":"ed","c":{},"d":[140],"e":true},"s":{"w":"turns","s":"s","c":{},"d":[147],"e":true}},"d":[56,56,56,56,56,112,112,112,112,112,147,147,147,147],"e":true}},"d":[],"e":false},"w":{"w":"two","s":"wo","c":{},"d":[41,41,41,41,41,41,42,42,44,44,47,47,47,47,47,47,50,50,50,50,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,123,130,130,130,130,130,130,130,130,130,130,155],"e":true},"i":{"w":"ti","s":"i","c":{"m":{"w":"time","s":"me","c":{"o":{"w":"timeout","s":"out","c":{},"d":[109,109,109,109,109],"e":true},"l":{"w":"timeline","s":"line","c":{},"d":[109,109],"e":true},"t":{"w":"timetout","s":"tout","c":{},"d":[109],"e":true}},"d":[48,71,109,109,109,109,109,109,109,109,109,109,109,111,111,111,111,111,111,111,127,147,157,157,164],"e":true},"t":{"w":"titouan","s":"touan","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"a":{"w":"ta","s":"a","c":{"b":{"w":"tab","s":"b","c":{"l":{"w":"table","s":"le","c":{"p":{"w":"tableparams","s":"params","c":{},"d":[48,48,48,48,48,48],"e":true},"_":{"w":"table_size","s":"_size","c":{"p":{"w":"table_sizepositive","s":"positive","c":{},"d":[48],"e":true}},"d":[48,48],"e":true}},"d":[],"e":false}},"d":[56,56],"e":true},"k":{"w":"take","s":"ke","c":{"s":{"w":"takes","s":"s","c":{},"d":[49,49],"e":true},"n":{"w":"taken","s":"n","c":{},"d":[127],"e":true}},"d":[],"e":false},"d":{"w":"tad","s":"d","c":{},"d":[50,50],"e":true},"n":{"w":"tanguy","s":"nguy","c":{},"d":[50,50],"e":true},"s":{"w":"task","s":"sk","c":{"i":{"w":"taskinputconfig","s":"inputconfig","c":{},"d":[95,95,95,95,95,95,95,95,95,95,105,105,105,105,105,105],"e":true}},"d":[57,71,71,148,148],"e":true}},"d":[],"e":false},"r":{"w":"tr","s":"r","c":{"a":{"w":"tra","s":"a","c":{"n":{"w":"trans","s":"ns","c":{"f":{"w":"transfer","s":"fer","c":{},"d":[49,50,50,92,92,92,92,92],"e":true},"a":{"w":"transactions","s":"actions","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"c":{"w":"trace","s":"ce","c":{"_":{"w":"trace_path","s":"_path","c":{},"d":[63,63,63],"e":true}},"d":[63,63,63,63,63,63,63,63,63,63,63,63],"e":true}},"d":[],"e":false},"u":{"w":"tru","s":"u","c":{"s":{"w":"trust","s":"st","c":{"e":{"w":"trusted","s":"ed","c":{},"d":[112,112,112,112,112],"e":true}},"d":[50,50],"e":true},"e":{"w":"true","s":"e","c":{},"d":[56,56,56,56,56,70,70,70,70,70,73,73,73,73,73,73,73,73,73,73,147,148,148],"e":true}},"d":[],"e":false},"i":{"w":"trieu","s":"ieu","c":{},"d":[50,50],"e":true},"e":{"w":"tree","s":"ee","c":{},"d":[134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,142,142,142],"e":true},"y":{"w":"try","s":"y","c":{},"d":[139,159,166],"e":true}},"d":[],"e":false},"s":{"w":"tsudik","s":"sudik","c":{},"d":[50,50],"e":true}},"d":[48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,50,50,50,50,147,147,147,147],"e":true},"i":{"w":"i","s":"i","c":{"s":{"w":"is","s":"s","c":{"s":{"w":"issue","s":"sue","c":{"s":{"w":"issues","s":"s","c":{},"d":[39,39,39],"e":true}},"d":[39],"e":true},"o":{"w":"iso","s":"o","c":{},"d":[42,42,42,91,91,91,91,91],"e":true},"h":{"w":"ishai","s":"hai","c":{},"d":[50,50,50,50,50,50,50,50,50,50],"e":true}},"d":[1,1,20,20,42,42,42,44,44,45,45,45,45,45,45,45,47,48,48,48,48,48,48,48,48,48,48,49,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,59,59,59,59,67,67,67,67,67,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,72,72,72,72,72,73,73,73,73,73,73,73,73,73,73,77,77,77,77,77,77,80,80,80,80,91,91,91,91,91,93,93,93,93,109,109,109,109,109,109,109,114,114,114,114,115,117,127,127,127,127,127,127,136,141,141,141,141,142,142,142,143,143,143,143,145,145,145,145,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,147,148,148,148,148,150,157,157,159,159,159,166,167],"e":true},"n":{"w":"in","s":"n","c":{"t":{"w":"int","s":"t","c":{"3":{"w":"int32","s":"32","c":{"u":{"w":"int32uses","s":"uses","c":{},"d":[59,59,80,80,93,93,114,114],"e":true},"i":{"w":"int32in","s":"in","c":{"t":{"w":"int32intint","s":"tint","c":{},"d":[59,59,59,59,59,59,80,80,80,80,80,80,93,93,93,93,93,93,114,114,114,114,114,114],"e":true},"d":{"w":"int32index","s":"dex","c":{},"d":[101,101,101,101,101,101],"e":true}},"d":[],"e":false},"s":{"w":"int32s","s":"s","c":{"e":{"w":"int32set","s":"et","c":{},"d":[112,112,112],"e":true}},"d":[59,59,80,80,93,93,114,114],"e":true},"n":{"w":"int32number","s":"number","c":{},"d":[103,103,103],"e":true}},"d":[56,56,56,56,56,56,56,56,56,56,56,56,56,56,101,101,101,101,101,101,101,101,103,103,103,103,112,112,112,112],"e":true},"6":{"w":"int64","s":"64","c":{"n":{"w":"int64none","s":"none","c":{"i":{"w":"int64noneintersection_key_count","s":"intersection_key_count","c":{},"d":[89,89],"e":true}},"d":[57,57,57,89,89,89,89],"e":true},"u":{"w":"int64uses","s":"uses","c":{},"d":[59,59,80,80,93,93,114,114],"e":true},"l":{"w":"int64longint","s":"longint","c":{},"d":[59,59,59,59,59,59,80,80,80,80,80,80,93,93,93,93,93,93,114,114,114,114,114,114],"e":true},"s":{"w":"int64s","s":"s","c":{},"d":[59,59,80,80,93,93,114,114],"e":true},"t":{"w":"int64the","s":"the","c":{},"d":[89,89,89,89,89,89],"e":true}},"d":[57,57,57,57,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89],"e":true},"e":{"w":"inte","s":"e","c":{"r":{"w":"inter","s":"r","c":{"s":{"w":"intersection","s":"section","c":{"_":{"w":"intersection_","s":"_","c":{"c":{"w":"intersection_count","s":"count","c":{},"d":[89,89,89,89,89],"e":true},"k":{"w":"intersection_key_count","s":"key_count","c":{},"d":[89,89,89],"e":true}},"d":[],"e":false}},"d":[1,42,42,43,43,43,43,43,44,44,45,45,45,45,45,45,45,45,45,47,47,47,47,48,48,48,49,49,50,50,50,50,50,50,50,50,50,50,55,55,55,55,55,70,70,70,70,70,76,76,76,76,76,89,89,89,89,89,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,147,147,147,147,158,167],"e":true},"p":{"w":"interpolates","s":"polates","c":{},"d":[48,48,48,48,48,48],"e":true},"a":{"w":"interactive","s":"active","c":{},"d":[50,50,50,50],"e":true},"f":{"w":"interface","s":"face","c":{},"d":[56,56,149],"e":true},"v":{"w":"interval","s":"val","c":{},"d":[109,109,109,109,109,111,111,111,111,111,111,111,111,111,111],"e":true}},"d":[],"e":false},"g":{"w":"integrat","s":"grat","c":{"e":{"w":"integrates","s":"es","c":{},"d":[22,22,22,22,22],"e":true},"i":{"w":"integration","s":"ion","c":{},"d":[139,139],"e":true}},"d":[],"e":false},"l":{"w":"intel","s":"l","c":{},"d":[42,42,42,42,42,45,45,45,45,45,50,50,50,165,165,165,165,165,165,165,165,165,165,166],"e":true},"n":{"w":"intend","s":"nd","c":{"e":{"w":"intended","s":"ed","c":{},"d":[127],"e":true}},"d":[147],"e":true}},"d":[],"e":false},"o":{"w":"into","s":"o","c":{},"d":[39,44,44,44,44,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,67,67,67,67,67,72,72,72,72,72,109,118,140,145,145,145],"e":true},"r":{"w":"introduc","s":"roduc","c":{"t":{"w":"introduction","s":"tion","c":{},"d":[40,40,40,40,159,159],"e":true},"e":{"w":"introduce","s":"e","c":{"s":{"w":"introduces","s":"s","c":{},"d":[47,48,116],"e":true},"d":{"w":"introduced","s":"d","c":{},"d":[47,49],"e":true}},"d":[149],"e":true}},"d":[],"e":false}},"d":[59,59,59,59,80,80,80,80,93,93,93,93,114,114,114,114],"e":true},"f":{"w":"info","s":"fo","c":{"r":{"w":"information","s":"rmation","c":{},"d":[1,101,101,101,101,101,101,102,135,159],"e":true}},"d":[55,55,55,55,55,56,56,56,56,56,63,63,63,147],"e":true},"n":{"w":"inner","s":"ner","c":{},"d":[21,21,70,70],"e":true},"s":{"w":"ins","s":"s","c":{"t":{"w":"inst","s":"t","c":{"a":{"w":"install","s":"all","c":{"a":{"w":"installation","s":"ation","c":{},"d":[28,28,29,29],"e":true}},"d":[37],"e":true},"e":{"w":"instead","s":"ead","c":{},"d":[37,56,56,56,56,56,59,59,59,59,80,80,80,80,93,93,93,93,114,114,114,114],"e":true}},"d":[],"e":false},"e":{"w":"inserts","s":"erts","c":{},"d":[44,44,44,44,48,48,48,48],"e":true}},"d":[],"e":false},"p":{"w":"input","s":"put","c":{"s":{"w":"inputs","s":"s","c":{},"d":[45,147],"e":true},"a":{"w":"inputattr","s":"attr","c":{"i":{"w":"inputattrinput","s":"input","c":{},"d":[70,70,70,73,73,73],"e":true}},"d":[61,61,61,61,61,70,70,70,73,73,73],"e":true},"_":{"w":"input_","s":"_","c":{"c":{"w":"input_config","s":"config","c":{},"d":[70,70,70,70,70,73,73,73,73,73],"e":true},"a":{"w":"input_attr","s":"attr","c":{},"d":[70,70,70,70,70,73,73,73,73,73],"e":true},"p":{"w":"input_params","s":"params","c":{},"d":[84,84,84,84,84],"e":true}},"d":[],"e":false},"p":{"w":"inputparams","s":"params","c":{"t":{"w":"inputparamsthe","s":"the","c":{},"d":[84,84,84],"e":true}},"d":[82,82,82,82,82,84,84,84],"e":true}},"d":[43,45,49,49,65,65,65,65,65,67,67,67,67,67,67,67,67,67,67,70,70,70,70,70,70,70,70,70,72,72,72,72,72,72,72,72,72,72,73,73,73,73,73,73,73,84,84,84,84,84,85,86,86,86,86,86,86,86,86,86,86,86,89,89,89,89,89,119,130,130,130,130,140,140,152],"e":true},"d":{"w":"ind","s":"d","c":{"e":{"w":"index","s":"ex","c":{},"d":[45,45,45,45,45,45,101,101,101,101,136,136,136,136,136],"e":true},"i":{"w":"indi","s":"i","c":{"c":{"w":"indicate","s":"cate","c":{},"d":[67,67,67,67,67,72,72,72,72,72],"e":true},"n":{"w":"indindiscernibility","s":"ndiscernibility","c":{},"d":[145],"e":true}},"d":[],"e":false},"_":{"w":"ind_degree","s":"_degree","c":{},"d":[145,145,145,145,145,145,145,145,145],"e":true}},"d":[],"e":false},"v":{"w":"inv","s":"v","c":{"o":{"w":"invocations","s":"ocations","c":{},"d":[45],"e":true},"a":{"w":"invalid_psi_type","s":"alid_psi_type","c":{"0":{"w":"invalid_psi_type0none","s":"0none","c":{"e":{"w":"invalid_psi_type0noneecdh_psi_2pc1noticed","s":"ecdh_psi_2pc1noticed","c":{},"d":[92],"e":true}},"d":[92],"e":true}},"d":[92,92],"e":true}},"d":[],"e":false},"e":{"w":"ine","s":"e","c":{"v":{"w":"inevitably","s":"vitably","c":{},"d":[45],"e":true},"f":{"w":"inefficient","s":"fficient","c":{},"d":[59,59,59,59,80,80,80,80,93,93,93,93,114,114,114,114],"e":true}},"d":[],"e":false},"c":{"w":"inc","s":"c","c":{"r":{"w":"increase","s":"rease","c":{"d":{"w":"increased","s":"d","c":{},"d":[56,56,56,56,56],"e":true}},"d":[111,111,111,111,111],"e":true},"l":{"w":"including","s":"luding","c":{},"d":[75],"e":true}},"d":[],"e":false},"q":{"w":"inquiries","s":"quiries","c":{},"d":[127],"e":true}},"d":[3,3,14,14,14,14,14,14,15,15,18,18,18,18,18,18,18,18,21,21,21,21,21,21,31,31,31,31,31,31,37,42,42,42,42,42,42,42,42,42,42,42,42,42,43,43,43,44,45,45,45,45,45,45,45,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,49,49,49,49,49,49,49,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,55,55,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,65,65,65,65,65,67,67,67,67,67,67,67,67,67,67,68,68,68,68,68,71,72,72,72,72,72,72,72,72,72,72,76,76,76,76,76,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,84,84,84,84,84,84,84,84,84,84,87,87,87,87,87,87,91,91,91,91,91,91,91,91,91,91,91,103,103,103,103,103,109,109,109,109,109,109,117,127,131,131,143,143,145,145,145,145,145,147,147,147,147,147,147,147,148,148,148,148,148,150,151,155,159,162,162,167],"e":true},"m":{"w":"im","s":"m","c":{"p":{"w":"imp","s":"p","c":{"r":{"w":"improve","s":"rove","c":{"m":{"w":"improvement","s":"ment","c":{"s":{"w":"improvements","s":"s","c":{},"d":[48,49],"e":true}},"d":[3,3,3,3,3,3,3,4,4,5,5,5,5,5,5,6,6,6,6,8,8,10,10,12,12,13,13,14,14,14,14,18,18,19,19],"e":true},"d":{"w":"improved","s":"d","c":{},"d":[48,48,50,50,50,50],"e":true}},"d":[],"e":false},"l":{"w":"implement","s":"lement","c":{"a":{"w":"implementation","s":"ation","c":{},"d":[3,3,3,43,45,49,50,50,159],"e":true},"s":{"w":"implements","s":"s","c":{},"d":[41],"e":true},"e":{"w":"implemented","s":"ed","c":{},"d":[48],"e":true}},"d":[43,45,45],"e":true},"o":{"w":"important","s":"ortant","c":{},"d":[42],"e":true}},"d":[],"e":false},"a":{"w":"image","s":"age","c":{},"d":[22,22,25,129,137,161],"e":true}},"d":[],"e":false},"c":{"w":"ic","s":"c","c":{"_":{"w":"ic_mode","s":"_mode","c":{},"d":[4,4,15,15],"e":true}},"d":[6,6,11,11],"e":true},"f":{"w":"if","s":"f","c":{"m":{"w":"ifma","s":"ma","c":{},"d":[42,42,42,42,42],"e":true}},"d":[20,20,45,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,59,59,59,59,59,59,59,59,64,64,65,65,65,65,65,67,67,67,67,67,67,67,67,67,67,68,68,68,68,68,70,70,70,70,70,70,70,70,70,70,70,71,72,72,72,72,72,72,72,72,72,72,73,73,73,73,73,73,73,73,73,73,77,77,77,77,77,77,77,77,80,80,80,80,80,80,80,80,93,93,93,93,93,93,93,93,109,109,109,109,109,111,111,111,111,111,111,111,111,111,111,112,112,112,112,112,112,112,112,112,112,114,114,114,114,114,114,114,114,117,127,127,127,139,142,142,142,143,143,145,147,147,147,148,150,159,159,166],"e":true},"t":{"w":"it","s":"t","c":{"e":{"w":"ite","s":"e","c":{"m":{"w":"item","s":"m","c":{"s":{"w":"items","s":"s","c":{},"d":[42,44,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,67,67,67,67,67,69,72,72,72,72,72,141,141,145],"e":true},"p":{"w":"itemparams","s":"params","c":{},"d":[48,48,48,48,48,48,48],"e":true},"_":{"w":"item_bit_size","s":"_bit_size","c":{},"d":[48,48,48,48,48,48,48,48,48,48],"e":true}},"d":[48,48,48,48,48,56,56,56,56,56,56,56,56,56,56],"e":true},"r":{"w":"iterative","s":"rative","c":{},"d":[92,92,92,92],"e":true}},"d":[],"e":false},"s":{"w":"its","s":"s","c":{},"d":[42,42,42,42,42,42,42,42,42,42,42,42,43,43,45,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,49,109],"e":true}},"d":[22,42,42,42,42,42,42,42,42,42,43,45,45,45,45,45,45,45,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,56,56,56,56,56,70,70,73,73,109,109,127,142,147,147,147,147,149],"e":true},"p":{"w":"ipp","s":"pp","c":{},"d":[42,42,42,42,42,42,42,50,50,50,165,165,165,165,165,165,165],"e":true},"e":{"w":"ie","s":"e","c":{"c":{"w":"iec","s":"c","c":{},"d":[42,42,42,42,42,91,91,91,91,91],"e":true},"e":{"w":"ieee","s":"ee","c":{},"d":[50,50,50,50,50,50,76,76,76,76,76],"e":true},"t":{"w":"ietf","s":"tf","c":{},"d":[50,50,50],"e":true}},"d":[],"e":false},"d":{"w":"id","s":"d","c":{"0":{"w":"id0","s":"0","c":{},"d":[130,130,130,130,130,130,130,130,130,130],"e":true},"1":{"w":"id1","s":"1","c":{},"d":[130,130,130,130,130,130,130,130,130,130],"e":true},"e":{"w":"ide","s":"e","c":{"a":{"w":"ideal","s":"al","c":{},"d":[45],"e":true},"n":{"w":"identical","s":"ntical","c":{},"d":[56],"e":true}},"d":[],"e":false},"x":{"w":"idx","s":"x","c":{},"d":[145],"e":true},"s":{"w":"ids","s":"s","c":{},"d":[147,147],"e":true}},"d":[50,50,50,109,109,109,109,110,110,110,110,130,130,130,130,130,130,130,130,130,130],"e":true},"_":{"w":"i_","s":"_","c":{},"d":[45,45],"e":true},"r":{"w":"irtf","s":"rtf","c":{},"d":[47,47,50,50,50],"e":true},"l":{"w":"ilia","s":"lia","c":{"s":{"w":"iliashenko","s":"shenko","c":{},"d":[50,50],"e":true}},"d":[50,50],"e":true},"a":{"w":"iacr","s":"acr","c":{},"d":[50,50,50,50,50,50,76,76,76,76,76,76,76,76,76,76,76,76,92,92,92,92,92,92,92,92,92,92,92,92],"e":true},"g":{"w":"ignored","s":"gnored","c":{},"d":[56,56,56,56,56,109,109,142],"e":true},"o":{"w":"io","s":"o","c":{"c":{"w":"ioconfig","s":"config","c":{"c":{"w":"ioconfigconfig","s":"config","c":{"s":{"w":"ioconfigconfigs","s":"s","c":{},"d":[70,70,70,70,70,70],"e":true}},"d":[73,73,73],"e":true},"r":{"w":"ioconfigrequired","s":"required","c":{},"d":[73,73,73],"e":true}},"d":[61,61,61,61,61,70,70,70,70,70,70,73,73,73,73,73,73],"e":true},"t":{"w":"iotype","s":"type","c":{"n":{"w":"iotypenone","s":"none","c":{"p":{"w":"iotypenonepath","s":"path","c":{},"d":[66,66],"e":true}},"d":[66],"e":true}},"d":[61,61,61,61,61,66,66,66,147,147],"e":true},"s":{"w":"ios","s":"s","c":{},"d":[71],"e":true},"_":{"w":"io_type_","s":"_type_","c":{"u":{"w":"io_type_unspecified","s":"unspecified","c":{"0":{"w":"io_type_unspecified0none","s":"0none","c":{"i":{"w":"io_type_unspecified0noneio_type_file_csv1local","s":"io_type_file_csv1local","c":{},"d":[75],"e":true}},"d":[75],"e":true}},"d":[75,75,147,147,147],"e":true},"f":{"w":"io_type_file_csv","s":"file_csv","c":{"1":{"w":"io_type_file_csv1local","s":"1local","c":{},"d":[75],"e":true}},"d":[75,75,147],"e":true}},"d":[],"e":false}},"d":[66,75],"e":true}},"d":[42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,167],"e":true},"r":{"w":"r","s":"r","c":{"e":{"w":"re","s":"e","c":{"p":{"w":"rep","s":"p","c":{"o":{"w":"repo","s":"o","c":{"r":{"w":"report","s":"rt","c":{},"d":[50,50,50,50,57,89],"e":true}},"d":[1,1,1,17,17,139],"e":true},"r":{"w":"repr","s":"r","c":{"e":{"w":"represent","s":"esent","c":{"a":{"w":"representation","s":"ation","c":{},"d":[68,68,68,68,68],"e":true},"s":{"w":"represents","s":"s","c":{},"d":[100,101,102,103,104,127,127,157,157,157,157],"e":true}},"d":[48,48,48,48,48,127],"e":true},"o":{"w":"reproduce","s":"oduce","c":{},"d":[127],"e":true}},"d":[],"e":false},"e":{"w":"repeated","s":"eated","c":{},"d":[70,70,70,70,73,73,73,73,86,86,86,86,100,100,100,101,101,101,102,102,102,104,104,104,104,109,109,109,111,111,111,111,111,111,111,111],"e":true}},"d":[],"e":false},"t":{"w":"ret","s":"t","c":{"r":{"w":"retr","s":"r","c":{"i":{"w":"retri","s":"i","c":{"e":{"w":"retrie","s":"e","c":{"v":{"w":"retrieval","s":"val","c":{},"d":[1],"e":true},"s":{"w":"retries","s":"s","c":{},"d":[111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111],"e":true}},"d":[],"e":false},"v":{"w":"retrival","s":"val","c":{},"d":[135],"e":true}},"d":[],"e":false},"y":{"w":"retry","s":"y","c":{"o":{"w":"retryoptionsproto","s":"optionsproto","c":{},"d":[95,95,95,95,95,109,109,147,147],"e":true},"_":{"w":"retry_","s":"_","c":{"o":{"w":"retry_opts","s":"opts","c":{},"d":[109],"e":true},"i":{"w":"retry_interval_","s":"interval_","c":{"m":{"w":"retry_interval_ms","s":"ms","c":{},"d":[111,111,111],"e":true},"i":{"w":"retry_interval_incr_ms","s":"incr_ms","c":{},"d":[111,111,111],"e":true}},"d":[],"e":false}},"d":[],"e":false}},"d":[109,109,109,109,109,109,109,109,109,109,109,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111],"e":true}},"d":[],"e":false},"u":{"w":"returns","s":"urns","c":{},"d":[49],"e":true}},"d":[],"e":false},"c":{"w":"rec","s":"c","c":{"e":{"w":"receiv","s":"eiv","c":{"e":{"w":"receive","s":"e","c":{"r":{"w":"receiver","s":"r","c":{"s":{"w":"receivers","s":"s","c":{},"d":[78,78,78,78,78,142,142,142,143,145],"e":true},"_":{"w":"receiver_","s":"_","c":{"r":{"w":"receiver_rank","s":"rank","c":{},"d":[84,84,84,84,84,87,87,87,87,87],"e":true},"i":{"w":"receiver_input","s":"input","c":{},"d":[130,130,130,130,130,130,130,130,130,130],"e":true}},"d":[],"e":false}},"d":[4,4,43,44,44,44,44,44,44,44,44,44,44,45,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,49,49,49,49,49,49,49,49,49,49,49,55,55,55,55,55,70,70,78,78,78,78,78,78,78,84,84,84,84,84,84,84,84,84,84,87,87,87,87,87,87,87,87,87,87,92,92,92,92,92,123,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,142,143,143,145,147,147,147,147,147,147,147,147,147,155],"e":true},"d":{"w":"received","s":"d","c":{},"d":[42,42,42,42,47,47,47,47,147],"e":true},"s":{"w":"receives","s":"s","c":{},"d":[47,47,47,47,48,48,48,48,48,48,48,48],"e":true}},"d":[78,78,78,78,78,147,147,147,147,147],"e":true},"i":{"w":"receiving","s":"ing","c":{},"d":[45,45,45,45],"e":true}},"d":[],"e":false},"o":{"w":"reco","s":"o","c":{"v":{"w":"recovery","s":"very","c":{"c":{"w":"recoveryconfig","s":"config","c":{"c":{"w":"recoveryconfigconfigs","s":"configs","c":{},"d":[70,70,70],"e":true}},"d":[61,61,61,61,61,70,70,70,148,148,148,148],"e":true},"_":{"w":"recovery_config","s":"_config","c":{},"d":[70,70,70,70,70],"e":true}},"d":[20,20,21,21,22,22,22,22,22,70,70,70,70,70,71,71,148,148,148],"e":true},"m":{"w":"recommend","s":"mmend","c":{"e":{"w":"recommended","s":"ed","c":{},"d":[49,115],"e":true},"a":{"w":"recommendation","s":"ation","c":{},"d":[147,147],"e":true}},"d":[22,167],"e":true},"r":{"w":"record","s":"rd","c":{"s":{"w":"records","s":"s","c":{"c":{"w":"recordscurve_fourq2fourq","s":"curve_fourq2fourq","c":{},"d":[91,91],"e":true}},"d":[50,50,91,91,91],"e":true}},"d":[127],"e":true}},"d":[],"e":false},"v":{"w":"recv","s":"v","c":{"_":{"w":"recv_timeout_ms","s":"_timeout_ms","c":{},"d":[109,109,109,109,109,109,109],"e":true}},"d":[109,109,109,109,109,109,109],"e":true}},"d":[],"e":false},"f":{"w":"ref","s":"f","c":{"a":{"w":"refactor","s":"actor","c":{"i":{"w":"refactoring","s":"ing","c":{},"d":[115],"e":true}},"d":[5,5],"e":true},"e":{"w":"refer","s":"er","c":{"e":{"w":"reference","s":"ence","c":{},"d":[28,28,29,29,29,29,29,29,29,29,31,31,31,31,31,31,31,31,31,31,31,31,42,42,127],"e":true}},"d":[45,142],"e":true}},"d":[48,48,48,48,48,148],"e":true},"a":{"w":"rea","s":"a","c":{"d":{"w":"read","s":"d","c":{"e":{"w":"reader","s":"er","c":{},"d":[5,5,14,14],"e":true},"m":{"w":"readme","s":"me","c":{},"d":[56,56,133,133,139,139],"e":true}},"d":[56,56,56,56,56,133,134,139,139,144],"e":true},"s":{"w":"reassembled","s":"ssembled","c":{},"d":[109],"e":true}},"d":[],"e":false},"m":{"w":"remove","s":"move","c":{},"d":[6,6,8,8,9,9],"e":true},"n":{"w":"rename","s":"name","c":{},"d":[20,20,20,20],"e":true},"l":{"w":"rel","s":"l","c":{"e":{"w":"release","s":"ease","c":{},"d":[22,22,22,22,22,22,22,22,22,22,22,25,50,50,129,137,161],"e":true},"a":{"w":"rela","s":"a","c":{"t":{"w":"related","s":"ted","c":{},"d":[40,69,127,139],"e":true},"x":{"w":"relaxes","s":"xes","c":{},"d":[47],"e":true}},"d":[],"e":false}},"d":[],"e":false},"g":{"w":"reg","s":"g","c":{"i":{"w":"registry","s":"istry","c":{},"d":[25,25,129,129,137,137,161],"e":true},"u":{"w":"regular","s":"ular","c":{},"d":[59,59,59,59,80,80,80,80,93,93,93,93,114,114,114,114],"e":true}},"d":[],"e":false},"q":{"w":"requ","s":"qu","c":{"i":{"w":"requir","s":"ir","c":{"e":{"w":"require","s":"e","c":{"s":{"w":"requires","s":"s","c":{},"d":[42,127],"e":true},"d":{"w":"required","s":"d","c":{},"d":[56,56,56,56,56,56,56,56,56,56,66,66,70,70,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,141,141,142],"e":true}},"d":[42,127],"e":true},"i":{"w":"requiring","s":"ing","c":{},"d":[44],"e":true}},"d":[],"e":false},"e":{"w":"request","s":"est","c":{},"d":[109,109],"e":true}},"d":[],"e":false},"s":{"w":"res","s":"s","c":{"u":{"w":"resu","s":"u","c":{"l":{"w":"result","s":"lt","c":{"s":{"w":"results","s":"s","c":{},"d":[45,45,45,45,45,45,55,55,55,55,55,92,92,92,92,92,127],"e":true},"i":{"w":"resulting","s":"ing","c":{},"d":[48],"e":true},"d":{"w":"resultdp_psi_2pc12differentially","s":"dp_psi_2pc12differentially","c":{},"d":[92,92],"e":true}},"d":[45,48,48,48,48,48,49,49,55,55,55,55,55,69,69,69,69,69,78,78,78,78,78,84,84,84,84,84,84,84,84,84,84,87,87,87,87,87,87,87,87,87,87,89,89,89,89,89,89,92,92,92,147,147,147,164,167],"e":true},"m":{"w":"resume","s":"me","c":{},"d":[71,148],"e":true}},"d":[],"e":false},"c":{"w":"resch","s":"ch","c":{},"d":[50,50],"e":true},"e":{"w":"rese","s":"e","c":{"n":{"w":"resende","s":"nde","c":{},"d":[50,50],"e":true},"a":{"w":"research","s":"arch","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"t":{"w":"restart","s":"tart","c":{},"d":[71,148],"e":true},"p":{"w":"resp","s":"p","c":{"e":{"w":"respectively","s":"ectively","c":{},"d":[123,155],"e":true},"o":{"w":"responses","s":"onses","c":{},"d":[143],"e":true}},"d":[],"e":false},"i":{"w":"residing","s":"iding","c":{},"d":[145],"e":true},"o":{"w":"resource","s":"ource","c":{},"d":[147],"e":true}},"d":[],"e":false},"v":{"w":"reveal","s":"veal","c":{"i":{"w":"revealing","s":"ing","c":{},"d":[45,45],"e":true},"s":{"w":"reveals","s":"s","c":{},"d":[45,45],"e":true},"e":{"w":"revealed","s":"ed","c":{},"d":[77,77,77,77],"e":true}},"d":[69,69],"e":true},"d":{"w":"red","s":"d","c":{"u":{"w":"reduc","s":"uc","c":{"i":{"w":"reducing","s":"ing","c":{},"d":[49],"e":true},"e":{"w":"reduced","s":"ed","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"m":{"w":"redmond","s":"mond","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"i":{"w":"reichert","s":"ichert","c":{},"d":[50,50],"e":true}},"d":[45,45,45,45],"e":true},"r":{"w":"rr","s":"r","c":{"2":{"w":"rr22","s":"22","c":{"e":{"w":"rr22ecdh","s":"ecdh","c":{},"d":[22,22,22],"e":true},"c":{"w":"rr22config","s":"config","c":{"f":{"w":"rr22configfor","s":"for","c":{},"d":[69,69,69],"e":true}},"d":[61,61,61,61,61,69,69,69],"e":true},"_":{"w":"rr22_","s":"_","c":{"c":{"w":"rr22_config","s":"config","c":{},"d":[69,69,69,69,69],"e":true},"f":{"w":"rr22_fast_psi_2pc","s":"fast_psi_2pc","c":{"1":{"w":"rr22_fast_psi_2pc13noticed","s":"13noticed","c":{},"d":[92,92,92],"e":true}},"d":[92,92],"e":true},"l":{"w":"rr22_lowcomm_psi_2pc","s":"lowcomm_psi_2pc","c":{"1":{"w":"rr22_lowcomm_psi_2pc14none","s":"14none","c":{},"d":[92],"e":true}},"d":[92,92],"e":true},"m":{"w":"rr22_malicious_psi_2pc","s":"malicious_psi_2pc","c":{"1":{"w":"rr22_malicious_psi_2pc15none","s":"15none","c":{},"d":[92],"e":true}},"d":[92,92],"e":true}},"d":[],"e":false}},"d":[4,4,6,6,11,11,18,18,19,19,21,21,21,21,22,22,22,22,22,22,22,41,41,41,49,49,69,69,69,69,69,72],"e":true},"_":{"w":"rr_i","s":"_i","c":{},"d":[48,48,48,48,48,48,48,48,48],"e":true},"i":{"w":"rri","s":"i","c":{},"d":[48,48,48,48,48,48],"e":true},"r":{"w":"rrr","s":"r","c":{},"d":[48,48,48,48,48,48,48,48],"e":true}},"d":[48,48,48],"e":true},"u":{"w":"ru","s":"u","c":{"n":{"w":"run","s":"n","c":{"l":{"w":"runlegacypsi","s":"legacypsi","c":{},"d":[15,15],"e":true},"n":{"w":"running","s":"ning","c":{},"d":[48,92,92,92,92,92,92,92,92,92,92],"e":true},"t":{"w":"runtime_config","s":"time_config","c":{},"d":[97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,160,160],"e":true}},"d":[44,44,48,48,48,48,48,48,49,49,70,79,79,79,79,79,79,117,124,125,131,131,150,162,162],"e":true},"l":{"w":"rule","s":"le","c":{"s":{"w":"rules","s":"s","c":{},"d":[147],"e":true}},"d":[42],"e":true}},"d":[],"e":false},"f":{"w":"rfc9380","s":"fc9380","c":{},"d":[18,18,91,91,91,91,91],"e":true},"a":{"w":"ra","s":"a","c":{"1":{"w":"ra18","s":"18","c":{},"d":[47,47],"e":true},"c":{"w":"race","s":"ce","c":{},"d":[18,18,19,19],"e":true},"n":{"w":"ran","s":"n","c":{"d":{"w":"random","s":"dom","c":{"l":{"w":"randomly","s":"ly","c":{},"d":[43,43,45,45,45,45],"e":true}},"d":[42,42,45,45,45,45],"e":true},"k":{"w":"rank","s":"k","c":{},"d":[84,84,84,84,84,87,87,87,87,87],"e":true}},"d":[],"e":false},"d":{"w":"radames","s":"dames","c":{},"d":[50,50],"e":true},"g":{"w":"raghuraman","s":"ghuraman","c":{},"d":[50,50,50,50,50,50],"e":true},"y":{"w":"raykova","s":"ykova","c":{},"d":[50,50],"e":true},"i":{"w":"raise","s":"ise","c":{},"d":[109],"e":true}},"d":[],"e":false},"i":{"w":"ri","s":"i","c":{"g":{"w":"right","s":"ght","c":{"a":{"w":"rightarrow","s":"arrow","c":{},"d":[44,44,44,44,44,44,44,44],"e":true}},"d":[20,20,70,70,70,70,70,70,77,77,77,77,77,77,147],"e":true},"s":{"w":"risk","s":"sk","c":{},"d":[43,45],"e":true},"r":{"w":"rir_i","s":"r_i","c":{"r":{"w":"rir_iri","s":"ri","c":{},"d":[47,47,47,47,47,47,47,47,47,47,47,47],"e":true}},"d":[47,47,47,47,47,47],"e":true},"h":{"w":"rih_1","s":"h_1","c":{},"d":[47,47,47,47,47,47,47,47,47],"e":true},"n":{"w":"rin","s":"n","c":{"d":{"w":"rindal","s":"dal","c":{},"d":[50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50],"e":true},"g":{"w":"ring","s":"g","c":{},"d":[50,50],"e":true}},"d":[],"e":false}},"d":[47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48],"e":true},"s":{"w":"rs","s":"s","c":{"2":{"w":"rs21","s":"21","c":{},"d":[41,41,41,49,49],"e":true}},"d":[49],"e":true},"o":{"w":"ro","s":"o","c":{"o":{"w":"roots","s":"ots","c":{},"d":[42],"e":true},"w":{"w":"row","s":"w","c":{"s":{"w":"rows","s":"s","c":{},"d":[145,145,145],"e":true}},"d":[48,48,48,48,48,48,48,48,48,48,56,56,56,56,56,141,141],"e":true},"b":{"w":"robinson","s":"binson","c":{},"d":[48,48,48,48,48],"e":true},"u":{"w":"rou","s":"u","c":{"n":{"w":"round","s":"nd","c":{},"d":[50,50,50,50],"e":true},"g":{"w":"rough","s":"gh","c":{},"d":[127],"e":true}},"d":[],"e":false},"s":{"w":"ros","s":"s","c":{"e":{"w":"rosenberg","s":"enberg","c":{},"d":[50,50],"e":true},"u":{"w":"rosulek","s":"ulek","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"l":{"w":"role","s":"le","c":{"n":{"w":"rolenone","s":"none","c":{"b":{"w":"rolenonebroadcast_result","s":"broadcast_result","c":{},"d":[69,69],"e":true}},"d":[69],"e":true},"r":{"w":"rolerequired","s":"required","c":{},"d":[70,70,70,73,73,73,73,73,73],"e":true},"_":{"w":"role_","s":"_","c":{"s":{"w":"role_se","s":"se","c":{"n":{"w":"role_sender","s":"nder","c":{"2":{"w":"role_sender2sender","s":"2sender","c":{},"d":[78,78,78],"e":true}},"d":[78,78],"e":true},"r":{"w":"role_server","s":"rver","c":{"3":{"w":"role_server3server","s":"3server","c":{},"d":[78,78,78],"e":true}},"d":[78,78],"e":true}},"d":[],"e":false},"c":{"w":"role_client","s":"client","c":{"4":{"w":"role_client4server","s":"4server","c":{},"d":[78,78,78],"e":true}},"d":[78,78],"e":true},"u":{"w":"role_unspecified","s":"unspecified","c":{"0":{"w":"role_unspecified0none","s":"0none","c":{"r":{"w":"role_unspecified0nonerole_receiver1receiver","s":"role_receiver1receiver","c":{},"d":[78],"e":true}},"d":[78],"e":true}},"d":[78,78],"e":true},"r":{"w":"role_receiver","s":"receiver","c":{"1":{"w":"role_receiver1receiver","s":"1receiver","c":{},"d":[78],"e":true}},"d":[78,78],"e":true}},"d":[],"e":false}},"d":[61,61,61,61,61,69,69,69,69,69,69,70,70,70,73,73,73,73,73,73,73,73,73,73,73,78,102,102,102,102,102,102,102],"e":true}},"d":[],"e":false},"_":{"w":"r_i","s":"_i","c":{},"d":[47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48],"e":true}},"d":[45,45,45,45,45,45,45,45,45,45,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,50,50,50,50,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,166,166],"e":true},"o":{"w":"o","s":"o","c":{"f":{"w":"of","s":"f","c":{"f":{"w":"off","s":"f","c":{"i":{"w":"official","s":"icial","c":{},"d":[25,129,137,161],"e":true},"e":{"w":"offer","s":"er","c":{},"d":[42,127],"e":true},"l":{"w":"offline","s":"line","c":{},"d":[47,47,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,84,84,84,84,84,92,92,92,92,92,127,143,166,166,166,166,166,166],"e":true}},"d":[55,55,55,55,55,56,56,56,56,56,63,63,112,112,112,112,112],"e":true},"t":{"w":"often","s":"ten","c":{},"d":[59,59,59,59,80,80,80,80,93,93,93,93,114,114,114,114],"e":true}},"d":[1,6,6,12,12,20,20,22,22,22,22,22,42,42,42,43,43,43,43,44,44,45,45,45,45,45,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,49,49,49,49,50,50,50,50,50,50,50,50,50,50,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,57,59,59,63,63,63,63,63,67,67,67,67,67,67,67,67,67,67,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,72,72,72,72,72,72,72,72,72,72,76,76,76,76,76,77,77,77,77,77,77,77,77,78,79,79,79,79,79,79,79,79,79,79,80,80,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,85,86,86,86,86,86,86,86,86,86,86,86,88,88,88,88,88,88,89,89,89,89,89,89,89,89,89,89,89,91,91,91,91,91,92,93,93,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,102,102,102,102,102,102,102,102,102,102,102,103,103,103,103,103,103,103,103,103,103,104,104,104,104,104,109,109,109,109,109,111,111,111,111,111,112,112,112,112,112,114,114,118,118,118,127,127,127,127,127,127,130,139,139,139,145,145,147,147,147,147,147,147,147,147,147,149,151,159,159,159,160,166],"e":true},"u":{"w":"ou","s":"u","c":{"t":{"w":"out","s":"t","c":{"p":{"w":"output","s":"put","c":{"s":{"w":"outputs","s":"s","c":{},"d":[48,48,48,48,49,49],"e":true},"_":{"w":"output_","s":"_","c":{"f":{"w":"output_file","s":"file","c":{},"d":[55,55,55,55,55],"e":true},"c":{"w":"output_config","s":"config","c":{},"d":[70,70,70,70,70,73,73,73,73,73],"e":true},"a":{"w":"output_attr","s":"attr","c":{},"d":[70,70,70,70,70,73,73,73,73,73],"e":true},"p":{"w":"output_params","s":"params","c":{},"d":[84,84,84,84,84],"e":true}},"d":[],"e":false},"a":{"w":"outputattr","s":"attr","c":{"o":{"w":"outputattroutput","s":"output","c":{},"d":[70,70,70,73,73,73],"e":true}},"d":[61,61,61,61,61,70,70,70,73,73,73],"e":true},"p":{"w":"outputparams","s":"params","c":{"t":{"w":"outputparamsthe","s":"the","c":{},"d":[84,84,84],"e":true}},"d":[82,82,82,82,82,84,84,84],"e":true}},"d":[4,4,43,45,47,49,55,55,55,55,55,56,56,56,56,56,68,68,68,68,68,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,73,73,73,73,73,73,73,84,84,84,84,84,88,88,88,88,88,88,88,88,88,88,88],"e":true},"l":{"w":"outlined","s":"lined","c":{},"d":[127],"e":true}},"d":[45],"e":true},"r":{"w":"our","s":"r","c":{},"d":[43,43,43,45,45,159,166],"e":true}},"d":[],"e":false},"n":{"w":"on","s":"n","c":{"e":{"w":"one","s":"e","c":{"o":{"w":"oneof","s":"of","c":{},"d":[97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97],"e":true}},"d":[4,4,44,48,55,55,55,55,55,55,55,56,56,67,67,67,67,67,72,72,72,72,72,109,127,143,167,167],"e":true},"l":{"w":"onl","s":"l","c":{"y":{"w":"only","s":"y","c":{},"d":[44,45,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,79,79,79,79,79,79,79,79,79,79,127,141,141,145,145,147,147],"e":true},"i":{"w":"online","s":"ine","c":{"0":{"w":"online0","s":"0","c":{},"d":[166],"e":true},"2":{"w":"online2","s":"2","c":{"5":{"w":"online25","s":"5","c":{},"d":[166],"e":true}},"d":[166],"e":true}},"d":[47,47,47,79,79,79,79,79,92,92,92,92,92,92,92,92,92,92,143,143,143,145,166,166,166,166,166,166],"e":true}},"d":[],"e":false}},"d":[42,42,42,43,44,44,44,45,45,45,45,45,45,45,45,45,48,48,48,48,48,48,48,49,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,56,56,56,56,56,56,56,56,56,56,76,76,76,76,76,91,91,91,91,91,92,92,92,92,92,92,92,92,92,92,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,115,147,147,147,147,147,147,147],"e":true},"r":{"w":"or","s":"r","c":{"g":{"w":"org","s":"g","c":{},"d":[28,28,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,31,31,31,31,31,31,31,31,31,31,31,31,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,76,76,76,76,76,76,76,76,76,76,76,76,91,91,91,91,91,91,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92],"e":true},"i":{"w":"origin","s":"igin","c":{"a":{"w":"original","s":"al","c":{"_":{"w":"original_","s":"_","c":{"k":{"w":"original_key_count","s":"key_count","c":{},"d":[89,89,89,89,89],"e":true},"c":{"w":"original_count","s":"count","c":{},"d":[89,89,89,89],"e":true}},"d":[],"e":false}},"d":[45,56,142],"e":true}},"d":[73,73,73,73,73,78,78,78,78,78],"e":true},"d":{"w":"order","s":"der","c":{},"d":[47,47,47,47,47,50,50,147,151,155],"e":true}},"d":[22,22,37,44,44,45,45,56,56,56,56,56,59,59,70,70,70,70,70,73,73,73,73,73,77,77,77,77,80,80,92,92,92,92,92,93,93,109,114,114,140,159],"e":true},"p":{"w":"op","s":"p","c":{"e":{"w":"ope","s":"e","c":{"r":{"w":"operat","s":"rat","c":{"i":{"w":"operations","s":"ions","c":{},"d":[22,22,22,22,22],"e":true},"o":{"w":"operators","s":"ors","c":{},"d":[31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31],"e":true}},"d":[],"e":false},"n":{"w":"openssl","s":"nssl","c":{"s":{"w":"opensslsm2gbt","s":"sm2gbt","c":{},"d":[42,42],"e":true}},"d":[42,42,42,42,42,42,42],"e":true}},"d":[],"e":false},"r":{"w":"oprf","s":"rf","c":{"s":{"w":"oprfs","s":"s","c":{},"d":[44,44,50,50],"e":true}},"d":[44,44,44,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,50,50,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,159,159,159,159,159,159],"e":true},"t":{"w":"opti","s":"ti","c":{"m":{"w":"optim","s":"m","c":{"i":{"w":"optimiz","s":"iz","c":{"a":{"w":"optimizations","s":"ations","c":{},"d":[47,48,166],"e":true},"e":{"w":"optimize","s":"e","c":{},"d":[127],"e":true}},"d":[],"e":false},"a":{"w":"optimal","s":"al","c":{},"d":[118,127,127],"e":true}},"d":[],"e":false},"o":{"w":"option","s":"on","c":{"a":{"w":"optional","s":"al","c":{"p":{"w":"optionalp","s":"p","c":{"r":{"w":"optionalprotocol","s":"rotocol","c":{},"d":[103,103],"e":true},"a":{"w":"optionalpartiesrepeated","s":"artiesrepeated","c":{},"d":[109,109],"e":true}},"d":[],"e":false}},"d":[84,84,84,84,84,84,84,84,84,84,87,87,87,87,103,103,103,103,103,103,103,103,109,109,109,141,141,142,143],"e":true},"s":{"w":"options","s":"s","c":{},"d":[109,109,111,112],"e":true}},"d":[],"e":false}},"d":[],"e":false}},"d":[],"e":false},"t":{"w":"ot","s":"t","c":{"h":{"w":"other","s":"her","c":{"w":{"w":"otherwise","s":"wise","c":{},"d":[67,67,67,67,67,72,72,72,72,72,142,147],"e":true},"s":{"w":"others","s":"s","c":{},"d":[109],"e":true}},"d":[48,56,56,56,56,56,78,78,78,78,78,131,147,147,162],"e":true}},"d":[41,41,42,44,44,49,50,50,50,50,50,50],"e":true},"v":{"w":"ov","s":"v","c":{"e":{"w":"over","s":"er","c":{"w":{"w":"overwhelmingly","s":"whelmingly","c":{},"d":[42],"e":true},"h":{"w":"overhead","s":"head","c":{},"d":[49,49],"e":true}},"d":[48,48,48,48,48,48,48,48,48,48,48,48,50,50,91,91,91,91,91],"e":true}},"d":[56,56],"e":true},"w":{"w":"own","s":"wn","c":{},"d":[43,43,45,45,45,78,78,78,78,78,78,78,78,78,78],"e":true},"b":{"w":"ob","s":"b","c":{"t":{"w":"obtains","s":"tains","c":{},"d":[44,44],"e":true},"l":{"w":"obliv","s":"liv","c":{"i":{"w":"oblivious","s":"ious","c":{},"d":[47,49,49,50,50,50,50,50,50,76,76,76,76,76,92,92,92,92,92],"e":true},"o":{"w":"oblivous","s":"ous","c":{},"d":[49],"e":true}},"d":[],"e":false}},"d":[],"e":false},"k":{"w":"okvs","s":"kvs","c":{},"d":[49,49,49,50,50],"e":true},"l":{"w":"ole","s":"le","c":{},"d":[50,50,50,50,50,50],"e":true},"c":{"w":"oc","s":"c","c":{"t":{"w":"oct","s":"t","c":{"o":{"w":"october","s":"ober","c":{},"d":[50,50,50,50],"e":true}},"d":[50,50,50,50],"e":true},"c":{"w":"occu","s":"cu","c":{"p":{"w":"occupation","s":"pation","c":{},"d":[71],"e":true},"r":{"w":"occurred","s":"rred","c":{},"d":[142],"e":true}},"d":[],"e":false}},"d":[],"e":false},"s":{"w":"oss","s":"ss","c":{},"d":[75],"e":true},"a":{"w":"oakland","s":"akland","c":{},"d":[76,76,76,76,76],"e":true}},"d":[49],"e":true},"p":{"w":"p","s":"p","c":{"r":{"w":"pr","s":"r","c":{"i":{"w":"pri","s":"i","c":{"v":{"w":"priva","s":"va","c":{"t":{"w":"private","s":"te","c":{"_":{"w":"private_key_path","s":"_key_path","c":{},"d":[112,112,112,148,148,148],"e":true}},"d":[1,1,41,41,45,45,45,45,45,45,47,47,47,47,48,50,50,50,50,50,50,50,50,50,50,76,76,76,76,76,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,112,112,135,148,148,158],"e":true},"c":{"w":"privacy","s":"cy","c":{},"d":[45,45,45,50,50,50,50,50,50,50,50,76,76,76,76,76],"e":true}},"d":[],"e":false},"n":{"w":"principles","s":"nciples","c":{},"d":[40,127],"e":true},"m":{"w":"prime","s":"me","c":{"c":{"w":"primecurve_sm23sm2","s":"curve_sm23sm2","c":{},"d":[91,91],"e":true}},"d":[47,50,50,50,50,91,91,91],"e":true}},"d":[],"e":false},"o":{"w":"pro","s":"o","c":{"v":{"w":"provide","s":"vide","c":{"s":{"w":"provides","s":"s","c":{},"d":[1,22,22,22,22,22,45,48,49,92,92,92,92,92,142],"e":true},"d":{"w":"provided","s":"d","c":{"p":{"w":"providedprovided","s":"provided","c":{"p":{"w":"providedprovidedpython","s":"python","c":{},"d":[22,22],"e":true}},"d":[22],"e":true}},"d":[22,22,22,22,118,139,142,142,142,142,143,143,145,148,148],"e":true}},"d":[56,127,139,139,139,140,143,148,148,148,148,148,148,148,148,148],"e":true},"t":{"w":"prot","s":"t","c":{"o":{"w":"proto","s":"o","c":{"c":{"w":"protocol","s":"col","c":{"s":{"w":"protocols","s":"s","c":{"e":{"w":"protocolsecdh","s":"ecdh","c":{},"d":[22,22,22],"e":true},"t":{"w":"protocolst","s":"t","c":{"y":{"w":"protocolstypeserver","s":"ypeserver","c":{},"d":[136,136,136],"e":true},"h":{"w":"protocolsthreat","s":"hreat","c":{},"d":[159,159,159],"e":true}},"d":[],"e":false}},"d":[22,22,40,40,40,40,41,42,42,45,47,48,48,69,70,70,70,70,70,76,118,136,136,147,147,150,151,152,159,159,159,159,159,167],"e":true},"c":{"w":"protocolconfig","s":"config","c":{"c":{"w":"protocolconfigconfigs","s":"configs","c":{},"d":[70,70,70],"e":true}},"d":[61,61,61,61,61,70,70,70],"e":true},"n":{"w":"protocolnone","s":"none","c":{"r":{"w":"protocolnonerole","s":"role","c":{},"d":[69,69],"e":true}},"d":[69],"e":true},"_":{"w":"protocol_","s":"_","c":{"c":{"w":"protocol_config","s":"config","c":{},"d":[70,70,70,70],"e":true},"k":{"w":"protocol_kkrt","s":"kkrt","c":{"2":{"w":"protocol_kkrt2efficient","s":"2efficient","c":{},"d":[76,76,76],"e":true}},"d":[76,76],"e":true},"u":{"w":"protocol_unspecified","s":"unspecified","c":{"0":{"w":"protocol_unspecified0none","s":"0none","c":{"p":{"w":"protocol_unspecified0noneprotocol_ecdh1","s":"protocol_ecdh1","c":{},"d":[76],"e":true}},"d":[76],"e":true}},"d":[76,76],"e":true},"e":{"w":"protocol_ecdh","s":"ecdh","c":{"1":{"w":"protocol_ecdh1","s":"1","c":{},"d":[76],"e":true}},"d":[76,76],"e":true},"r":{"w":"protocol_rr22","s":"rr22","c":{"3":{"w":"protocol_rr223blazing","s":"3blazing","c":{},"d":[76],"e":true}},"d":[76,76],"e":true}},"d":[],"e":false}},"d":[4,4,6,6,9,9,21,21,21,21,41,41,41,41,41,41,41,41,41,41,41,41,42,42,42,43,43,43,43,44,45,45,45,47,47,47,48,48,48,48,48,48,49,49,49,49,50,50,51,61,61,61,61,61,64,67,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,72,76,76,76,76,76,78,78,78,78,78,103,103,103,103,103,109,117,159,167],"e":true}},"d":[59,59,59,59,59,80,80,80,80,80,93,93,93,93,93,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,114,114,114,114,114],"e":true},"e":{"w":"protect","s":"ect","c":{"s":{"w":"protects","s":"s","c":{},"d":[45],"e":true},"i":{"w":"protection","s":"ion","c":{},"d":[45,45,45],"e":true}},"d":[],"e":false}},"d":[],"e":false},"p":{"w":"prop","s":"p","c":{"o":{"w":"propo","s":"o","c":{"r":{"w":"proportional","s":"rtional","c":{},"d":[42],"e":true},"s":{"w":"proposed","s":"sed","c":{},"d":[44,47],"e":true}},"d":[],"e":false},"e":{"w":"proper","s":"er","c":{},"d":[147,148,148],"e":true}},"d":[],"e":false},"c":{"w":"proce","s":"ce","c":{"s":{"w":"process","s":"ss","c":{"e":{"w":"processe","s":"e","c":{"d":{"w":"processed","s":"d","c":{},"d":[56,56,56,56,56,109],"e":true},"s":{"w":"processes","s":"s","c":{},"d":[56,56,56,56,56],"e":true}},"d":[],"e":false}},"d":[45,127],"e":true},"e":{"w":"proceed","s":"ed","c":{"i":{"w":"proceedings","s":"ings","c":{},"d":[50,50],"e":true}},"d":[56,56,56,56,56],"e":true}},"d":[],"e":false},"o":{"w":"proofs","s":"ofs","c":{},"d":[50,50],"e":true},"m":{"w":"prom","s":"m","c":{"i":{"w":"promised","s":"ised","c":{},"d":[70,70,70,70,70,73,73,73,73,73,147,147],"e":true},"p":{"w":"promptly","s":"ptly","c":{},"d":[146],"e":true}},"d":[],"e":false},"b":{"w":"probability","s":"bability","c":{},"d":[85,85,85,85,85],"e":true},"g":{"w":"progr","s":"gr","c":{"a":{"w":"program","s":"am","c":{},"d":[147],"e":true},"e":{"w":"progress","s":"ess","c":{},"d":[148],"e":true}},"d":[],"e":false}},"d":[],"e":false},"e":{"w":"pre","s":"e","c":{"f":{"w":"prefix","s":"fix","c":{},"d":[3,3,3,3,3,3,3,3,3,3,3,3],"e":true},"v":{"w":"prev","s":"v","c":{"i":{"w":"previous","s":"ious","c":{},"d":[42,42,42,42,47,47,47,47],"e":true},"e":{"w":"prevent","s":"ent","c":{},"d":[45],"e":true}},"d":[],"e":false},"p":{"w":"prep","s":"p","c":{"r":{"w":"preprocess","s":"rocess","c":{"i":{"w":"preprocessing","s":"ing","c":{},"d":[47,47],"e":true},"_":{"w":"preprocess_path","s":"_path","c":{},"d":[84,84,84,84,84],"e":true}},"d":[84,84,84,84,84],"e":true},"a":{"w":"prepare","s":"are","c":{},"d":[130],"e":true}},"d":[],"e":false},"s":{"w":"pres","s":"s","c":{"e":{"w":"present","s":"ent","c":{"e":{"w":"presented","s":"ed","c":{},"d":[127],"e":true}},"d":[49,127],"e":true},"s":{"w":"press","s":"s","c":{},"d":[50,50,50,50,50,50,50,50,50,50,50,50,50,50],"e":true}},"d":[],"e":false},"c":{"w":"precheck","s":"check","c":{},"d":[86,86,86,86,86],"e":true},"t":{"w":"pretty","s":"tty","c":{},"d":[147],"e":true}},"d":[],"e":false},"a":{"w":"practic","s":"actic","c":{"e":{"w":"practice","s":"e","c":{},"d":[42],"e":true},"a":{"w":"practical","s":"al","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"f":{"w":"prf","s":"f","c":{},"d":[47,47,47,47,47,50,50,76,76,76,76,76,92,92,92,92,92],"e":true}},"d":[],"e":false},"s":{"w":"ps","s":"s","c":{"i":{"w":"psi","s":"i","c":{"9":{"w":"psi9","s":"9","c":{},"d":[45,45,45],"e":true},"_":{"w":"psi_","s":"_","c":{"v":{"w":"psi_v2","s":"v2","c":{},"d":[3,3,29,29,29,29,29,29,29,29,97,97,97,97,97,97,97,97,97,97],"e":true},"t":{"w":"psi_t","s":"t","c":{"e":{"w":"psi_test","s":"est","c":{},"d":[18,18],"e":true},"y":{"w":"psi_type","s":"ype","c":{},"d":[84,84,84,84,87,87,87,87],"e":true}},"d":[],"e":false},"d":{"w":"psi_df","s":"df","c":{},"d":[29,29,29,29,29,29,29,29],"e":true},"c":{"w":"psi_c","s":"c","c":{"s":{"w":"psi_csv","s":"sv","c":{},"d":[29,29,29,29,29,29,29,29],"e":true},"o":{"w":"psi_config","s":"onfig","c":{},"d":[97,97,97,97,97],"e":true}},"d":[],"e":false},"j":{"w":"psi_join_","s":"join_","c":{"d":{"w":"psi_join_df","s":"df","c":{},"d":[29,29,29,29,29,29,29,29],"e":true},"c":{"w":"psi_join_csv","s":"csv","c":{},"d":[29,29,29,29,29,29,29,29],"e":true}},"d":[],"e":false}},"d":[],"e":false},"c":{"w":"psiconfig","s":"config","c":{"p":{"w":"psiconfigplease","s":"please","c":{},"d":[97,97,97],"e":true}},"d":[61,61,61,61,61,61,61,61,61,61,70,70,70,70,70,70,70,73,73,73,73,73,73,94,97,97,97,97],"e":true},"r":{"w":"psire","s":"re","c":{"p":{"w":"psireport","s":"port","c":{},"d":[70],"e":true},"s":{"w":"psiresultreport","s":"sultreport","c":{},"d":[82,82,82,82,82],"e":true}},"d":[],"e":false},"t":{"w":"psitype","s":"type","c":{"t":{"w":"psitypethe","s":"the","c":{},"d":[84,84,84,87,87,87],"e":true},"c":{"w":"psitypecode","s":"code","c":{},"d":[159,159],"e":true}},"d":[82,82,82,82,82,84,84,84,87,87,87],"e":true},"k":{"w":"psikkrt_psi_2pc2noticed","s":"kkrt_psi_2pc2noticed","c":{},"d":[92,92],"e":true},"p":{"w":"psiparams","s":"params","c":{},"d":[142,142],"e":true},"s":{"w":"psisemi","s":"semi","c":{},"d":[159,159,159,159,159,159,159,159,159],"e":true},"m":{"w":"psimalicious2p","s":"malicious2p","c":{},"d":[159,159,159],"e":true}},"d":[1,1,1,4,4,4,4,14,14,18,18,18,18,18,18,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,25,25,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,31,31,31,31,31,33,33,40,40,40,40,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,42,42,42,42,42,43,43,43,44,44,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,50,50,50,50,50,50,50,50,50,50,50,50,51,51,51,51,51,51,51,51,63,63,63,63,63,64,64,64,64,64,64,64,69,71,73,76,76,76,76,76,76,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,85,86,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,88,89,91,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,94,94,94,94,94,94,94,97,97,97,97,97,106,106,106,106,106,106,106,115,115,115,115,115,115,115,115,115,115,115,115,115,117,117,129,129,130,132,133,133,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,137,137,147,147,147,147,148,148,149,149,150,150,151,152,155,157,158,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,160,160,160,161,163,165,165,167,167,167],"e":true},"z":{"w":"psz18","s":"z18","c":{},"d":[44,44],"e":true},"t":{"w":"psty19","s":"ty19","c":{},"d":[45,45],"e":true},"e":{"w":"pseudorandom","s":"eudorandom","c":{"n":{"w":"pseudorandomness","s":"ness","c":{},"d":[50,50],"e":true}},"d":[47,47,49,50,50,50,50,50,50],"e":true},"_":{"w":"ps_low_degree","s":"_low_degree","c":{"a":{"w":"ps_low_degreeany","s":"any","c":{},"d":[48],"e":true}},"d":[48,48,48,48,48,48,48],"e":true}},"d":[],"e":false},"i":{"w":"pi","s":"i","c":{"r":{"w":"pir","s":"r","c":{"_":{"w":"pir_","s":"_","c":{"s":{"w":"pir_setup","s":"setup","c":{},"d":[29,29,29,29,29,29,29,29],"e":true},"q":{"w":"pir_query","s":"query","c":{},"d":[29,29,29,29,29,29,29,29],"e":true},"m":{"w":"pir_memory_query","s":"memory_query","c":{},"d":[29,29,29,29,29,29,29,29],"e":true},"c":{"w":"pir_config","s":"config","c":{},"d":[29,29,29,29,29,29,29,29],"e":true}},"d":[],"e":false},"r":{"w":"pirresultreport","s":"resultreport","c":{},"d":[53,53,53,53,53],"e":true},"s":{"w":"pirsingle","s":"single","c":{},"d":[136,136,136,136,136,136],"e":true}},"d":[1,1,1,5,5,14,14,16,16,22,22,22,22,22,22,29,29,29,29,29,29,29,29,29,29,29,29,29,29,48,48,51,51,51,51,57,97,97,97,97,97,115,115,115,115,115,127,135,136,136,136,136,136,136,136,136,136,139,139,139,139,142,142,142],"e":true},"n":{"w":"pinkas","s":"nkas","c":{},"d":[50,50],"e":true}},"d":[45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45],"e":true},"a":{"w":"pa","s":"a","c":{"r":{"w":"par","s":"r","c":{"t":{"w":"part","s":"t","c":{"y":{"w":"party","s":"y","c":{"p":{"w":"partyproto","s":"proto","c":{"p":{"w":"partyprotoparty","s":"party","c":{},"d":[109,109,109],"e":true}},"d":[95,95,95,95,95,109,109,109],"e":true},"b":{"w":"partybasic","s":"basic","c":{},"d":[101,101,101],"e":true}},"d":[41,41,41,41,41,41,41,41,43,47,50,50,76,76,76,76,76,77,77,77,77,77,77,77,77,89,89,89,89,89,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,95,95,95,95,95,101,101,101,101,101,101,101,101,102,102,102,102,102,102,102,102,102,102,102,102,109,109,109,109,159,159,166,167],"e":true},"i":{"w":"parti","s":"i","c":{"e":{"w":"parties","s":"es","c":{"r":{"w":"partiesrepeated","s":"repeated","c":{},"d":[101,101,109],"e":true}},"d":[70,70,70,70,70,77,77,78,84,84,84,84,84,87,87,87,87,87,101,101,101,101,101,101,101,101,109,109,147,147,147,147,147,147,147],"e":true},"c":{"w":"participants","s":"cipants","c":{},"d":[78,78,78,78,78],"e":true}},"d":[],"e":false}},"d":[1,79,79,79,79,79,79,79,79,79,79,146],"e":true},"a":{"w":"para","s":"a","c":{"m":{"w":"param","s":"m","c":{"s":{"w":"params","s":"s","c":{"f":{"w":"paramsfunction","s":"function","c":{"1":{"w":"paramsfunction1itemparamsfelts_per_itemhow","s":"1itemparamsfelts_per_itemhow","c":{},"d":[48],"e":true}},"d":[48,48],"e":true},"_":{"w":"params_file","s":"_file","c":{},"d":[55,55,55,55,55,56,56,56,56,56,120,120,122,122,143,145],"e":true}},"d":[5,5,48,48,84,84,84,84,84,87,87,87,87,87,142,142,142,142,142,142,143],"e":true},"e":{"w":"parameter","s":"eter","c":{"s":{"w":"parameters","s":"s","c":{},"d":[48,55,55,55,55,55,56,56,56,56,56,84,84,84,84,84,84,84,84,84,84,85,86,88,91,91,118,118,127,127,127,139,142,142,142,142,142,142,142,142,142],"e":true}},"d":[118,119,142],"e":true}},"d":[],"e":false},"l":{"w":"parallel","s":"llel","c":{"e":{"w":"paralleled","s":"ed","c":{},"d":[109],"e":true}},"d":[109],"e":true}},"d":[],"e":false},"s":{"w":"parser","s":"ser","c":{"s":{"w":"parsersupport","s":"support","c":{},"d":[22,22,22],"e":true}},"d":[22,22],"e":true}},"d":[],"e":false},"s":{"w":"passing","s":"ssing","c":{},"d":[6,6,11,11],"e":true},"c":{"w":"pack","s":"ck","c":{"a":{"w":"packages","s":"ages","c":{},"d":[22,22],"e":true},"i":{"w":"packing","s":"ing","c":{},"d":[48,48,48,48,48,48,48],"e":true},"s":{"w":"packs","s":"s","c":{},"d":[48,48,48,48,48,48],"e":true}},"d":[],"e":false},"g":{"w":"page","s":"ge","c":{"s":{"w":"pages","s":"s","c":{},"d":[50,50,50,50,50,50,50,50,50,50,50,50,50,50],"e":true}},"d":[29,29,50,50,50,50,51],"e":true},"p":{"w":"paper","s":"per","c":{},"d":[45],"e":true},"t":{"w":"pat","s":"t","c":{"e":{"w":"paterson","s":"erson","c":{},"d":[48,48,48,48,48,48,48,48,48,48],"e":true},"h":{"w":"path","s":"h","c":{"p":{"w":"pathprivate_key_path","s":"private_key_path","c":{},"d":[112,112],"e":true},"v":{"w":"pathverify_depth","s":"verify_depth","c":{},"d":[112,112],"e":true}},"d":[55,55,55,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56,63,63,63,63,63,66,66,66,84,84,84,84,84,84,84,84,84,84,86,86,86,86,86,86,86,86,86,88,88,88,88,88,88,88,88,88,112,112,112,112,112,112],"e":true}},"d":[],"e":false},"i":{"w":"pair","s":"ir","c":{"s":{"w":"pairs","s":"s","c":{},"d":[49],"e":true}},"d":[56,56,56,56,56],"e":true},"y":{"w":"payload","s":"yload","c":{},"d":[109],"e":true}},"d":[],"e":false},"o":{"w":"po","s":"o","c":{"r":{"w":"port","s":"rt","c":{"s":{"w":"ports","s":"s","c":{"r":{"w":"portsrepeated","s":"repeated","c":{},"d":[100,100],"e":true}},"d":[100,100,100,100,100,100,100,100],"e":true},"a":{"w":"portallocated","s":"allocated","c":{},"d":[100,100,100],"e":true},"_":{"w":"port_name","s":"_name","c":{},"d":[104,104,104,104],"e":true}},"d":[8,8,95,95,95,95,95,100,100,100,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,104,104,104,104,104,104,104,104,104,104,104],"e":true},"i":{"w":"point","s":"int","c":{"i":{"w":"pointing","s":"ing","c":{},"d":[45],"e":true},"s":{"w":"points","s":"s","c":{},"d":[56,56,56,56,56],"e":true}},"d":[],"e":false},"s":{"w":"pos","s":"s","c":{"s":{"w":"possible","s":"sible","c":{},"d":[47],"e":true},"i":{"w":"positive","s":"itive","c":{},"d":[48,48],"e":true}},"d":[],"e":false},"p":{"w":"pop","s":"p","c":{"r":{"w":"poprf","s":"rf","c":{},"d":[47],"e":true},"u":{"w":"popular","s":"ular","c":{},"d":[146],"e":true}},"d":[],"e":false},"l":{"w":"poly","s":"ly","c":{"n":{"w":"polynomial","s":"nomial","c":{},"d":[48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48],"e":true},"_":{"w":"poly_modulus_degree","s":"_modulus_degree","c":{"2":{"w":"poly_modulus_degree2048","s":"2048","c":{},"d":[48],"e":true}},"d":[48,48,48,48,48,48,48],"e":true}},"d":[],"e":false},"w":{"w":"powers","s":"wers","c":{"4":{"w":"powers4sealparamspoly_modulus_degree2048","s":"4sealparamspoly_modulus_degree2048","c":{},"d":[48,48],"e":true}},"d":[48,48,48,48,48,48,48,48,48,48,48,48,48,48,48],"e":true},"d":{"w":"pod","s":"d","c":{},"d":[100,102,102,102,102,102,103,103,103,103,103,103,103,103,103,103,103],"e":true}},"d":[],"e":false},"u":{"w":"pu","s":"u","c":{"r":{"w":"purposes","s":"rposes","c":{},"d":[17,17],"e":true},"s":{"w":"push","s":"sh","c":{},"d":[47],"e":true},"b":{"w":"publi","s":"bli","c":{"c":{"w":"public","s":"c","c":{},"d":[50,50],"e":true},"s":{"w":"published","s":"shed","c":{},"d":[91,91,91,91,91,91,91,91,91,91],"e":true}},"d":[],"e":false}},"d":[],"e":false},"y":{"w":"py","s":"y","c":{"t":{"w":"python","s":"thon","c":{},"d":[22,22,22,22,22,22,22,22,22,22,37,37,59,59,80,80,93,93,114,114],"e":true},"_":{"w":"py_api","s":"_api","c":{},"d":[28,28],"e":true}},"d":[151,151],"e":true},"l":{"w":"pl","s":"l","c":{"e":{"w":"please","s":"ease","c":{},"d":[25,26,28,29,31,32,33,37,39,43,45,45,56,94,94,97,97,97,97,97,97,97,97,109,118,127,127,130,130,133,133,134,134,139,139,141,142,142,142,143,144,159,160,160],"e":true},"a":{"w":"pla","s":"a","c":{"t":{"w":"platinum","s":"tinum","c":{"2":{"w":"platinum2","s":"2","c":{},"d":[45,45,45],"e":true},"c":{"w":"platinumcpu2","s":"cpu2","c":{},"d":[165,165,165,165,165,165],"e":true}},"d":[45,45,165,165,165,165,166],"e":true},"i":{"w":"plain","s":"in","c":{"t":{"w":"plaintext","s":"text","c":{},"d":[48,48,48,48,48,48],"e":true},"_":{"w":"plain_modulus","s":"_modulus","c":{"_":{"w":"plain_modulus_bits","s":"_bits","c":{},"d":[48,48,48,48,48],"e":true}},"d":[48,48,48],"e":true}},"d":[],"e":false}},"d":[],"e":false}},"d":[],"e":false},"e":{"w":"pe","s":"e","c":{"r":{"w":"per","s":"r","c":{"l":{"w":"perl","s":"l","c":{},"d":[37,37],"e":true},"f":{"w":"perform","s":"form","c":{"a":{"w":"performance","s":"ance","c":{},"d":[42,109,118,118,127,127,127,127,127,127,127,151],"e":true},"s":{"w":"performs","s":"s","c":{},"d":[45,45,48,48,48,48,48,48],"e":true}},"d":[43,147,166],"e":true},"m":{"w":"permut","s":"mut","c":{"a":{"w":"permutation","s":"ation","c":{},"d":[45,45],"e":true},"e":{"w":"permute","s":"e","c":{"d":{"w":"permuted","s":"d","c":{},"d":[45,45],"e":true}},"d":[45,45],"e":true}},"d":[],"e":false}},"d":[55,55,55,55,55,145],"e":true},"t":{"w":"peter","s":"ter","c":{},"d":[50,50,50,50,50,50,50,50,50,50],"e":true},"e":{"w":"peer","s":"er","c":{},"d":[112,112,112,112,112,148,148],"e":true}},"d":[],"e":false},"h":{"w":"ph","s":"h","c":{"a":{"w":"phase","s":"ase","c":{"s":{"w":"phases","s":"s","c":{},"d":[47],"e":true}},"d":[47,47,47,47,47,47,47,48,48,48,48,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,127,166,166],"e":true},"i":{"w":"phillipp","s":"illipp","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"c":{"w":"pcg","s":"cg","c":{"s":{"w":"pcgs","s":"s","c":{},"d":[49],"e":true},"_":{"w":"pcg_psi","s":"_psi","c":{"s":{"w":"pcg_psisemi","s":"semi","c":{},"d":[159],"e":true}},"d":[159,159,159],"e":true}},"d":[49],"e":true},"k":{"w":"pkc","s":"kc","c":{},"d":[50,50],"e":true},"p":{"w":"pp","s":"p","c":{},"d":[50,50,50,50,50,50,50,50,50,50,76,76,76,76,76],"e":true},"d":{"w":"pdf","s":"df","c":{"p":{"w":"pdfprotocol_rr223blazing","s":"protocol_rr223blazing","c":{},"d":[76,76],"e":true},"c":{"w":"pdfcurve_25519_elligator25curve25519","s":"curve_25519_elligator25curve25519","c":{},"d":[91,91],"e":true},"e":{"w":"pdfecdh_psi_3pc4multi","s":"ecdh_psi_3pc4multi","c":{},"d":[92,92],"e":true}},"d":[50,50,50,50,50,50,50,50,50,50,50,50,76,76,76,76,76,76,76,76,76,76,91,91,91,91,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92],"e":true}},"d":[49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50],"e":true},"s":{"w":"s","s":"s","c":{"e":{"w":"se","s":"e","c":{"t":{"w":"set","s":"t","c":{"s":{"w":"sets","s":"s","c":{},"d":[42,44,47,47,47,47,48,48,48,48,48],"e":true},"t":{"w":"setting","s":"ting","c":{"s":{"w":"settings","s":"s","c":{},"d":[127,127,148,148],"e":true}},"d":[48],"e":true},"u":{"w":"setup","s":"up","c":{},"d":[48,48,127,140,143,145],"e":true}},"d":[1,42,42,42,42,42,42,42,42,43,43,43,44,44,45,45,45,45,45,45,45,45,45,47,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,50,50,50,50,50,50,50,50,50,50,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,64,64,64,64,64,65,65,65,65,65,67,67,67,67,67,67,67,67,67,67,68,68,68,68,68,72,72,72,72,72,72,72,72,72,72,76,76,76,76,76,77,77,77,77,92,92,92,92,92,92,92,92,92,92,112,112,112,112,118,118,127,145,147,147,147,147,148,148,148,148,158],"e":true},"c":{"w":"sec","s":"c","c":{"2":{"w":"sec2","s":"2","c":{},"d":[42,42,42,42,42,42,42,50,50,50,91,91,91,91,91,91],"e":true},"r":{"w":"secret","s":"ret","c":{"f":{"w":"secretflow","s":"flow","c":{},"d":[1,1,1,1,1,22,22,22,22,22,22,22,22,22,22,22,22,22,25,25,25,25,28,28,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,31,31,31,31,31,31,31,31,31,31,31,31,41,42,48,49,49,129,129,129,129,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,137,137,137,137,161,161],"e":true},"p":{"w":"secretpad","s":"pad","c":{},"d":[1,1,22,22,22,22,22,22,32,32],"e":true}},"d":[84,84,84,84,84],"e":true},"u":{"w":"secur","s":"ur","c":{"i":{"w":"security","s":"ity","c":{"n":{"w":"securitynovember","s":"november","c":{},"d":[50,50],"e":true}},"d":[42,47,49,50,50,50,50,50,50,50,50,50,50,76,76,76,76,76,159,159],"e":true},"e":{"w":"secure","s":"e","c":{},"d":[45,47,50,50,50,50,50,50,50,50],"e":true}},"d":[],"e":false},"p":{"w":"secp256k1","s":"p256k1","c":{},"d":[42,42,42,42,42,159,159,159],"e":true},"t":{"w":"section","s":"tion","c":{},"d":[47],"e":true},"g":{"w":"secg","s":"g","c":{},"d":[50,50,50,91,91,91,91,91,91],"e":true},"o":{"w":"second","s":"ond","c":{"r":{"w":"secondretry_interval_incr_ms","s":"retry_interval_incr_ms","c":{},"d":[111,111],"e":true},"s":{"w":"seconds","s":"s","c":{},"d":[157,157],"e":true}},"d":[56,56,56,56,56,79,79,79,79,79,111,111,111],"e":true}},"d":[50,50,91,91,91,91,91],"e":true},"a":{"w":"sea","s":"a","c":{"l":{"w":"seal","s":"l","c":{"p":{"w":"sealp","s":"p","c":{"i":{"w":"sealpir","s":"ir","c":{},"d":[6,6,8,8,11,11,136,136,136,136,136],"e":true},"a":{"w":"sealparams","s":"arams","c":{},"d":[48,48,48,48,48,48],"e":true}},"d":[],"e":false}},"d":[48,48,48,48,48,48,48,50,50,50,50,50],"e":true},"r":{"w":"search","s":"rch","c":{"i":{"w":"searching","s":"ing","c":{},"d":[145],"e":true}},"d":[145],"e":true}},"d":[],"e":false},"e":{"w":"see","s":"e","c":{},"d":[26,147,147],"e":true},"m":{"w":"semi","s":"mi","c":{},"d":[41,41,41,41,41,41,41,41,42,42,44,47,49,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,167],"e":true},"v":{"w":"several","s":"veral","c":{},"d":[42,48],"e":true},"n":{"w":"send","s":"nd","c":{"s":{"w":"sends","s":"s","c":{},"d":[42,42,42,42,42,42,43,43,43,43,43,43,43,43,43,43,43,43,44,44,45,45,45,45,45,45,45,45,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,49,49,49,49,145],"e":true},"e":{"w":"sender","s":"er","c":{"d":{"w":"senderdb","s":"db","c":{},"d":[56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56],"e":true},"s":{"w":"senders","s":"s","c":{},"d":[78,78,78,78,78,140,142,142,142],"e":true},"_":{"w":"sender_","s":"_","c":{"i":{"w":"sender_input","s":"input","c":{},"d":[130,130,130,130,130,130,130,130,130,130],"e":true},"d":{"w":"sender_data_rows","s":"data_rows","c":{},"d":[145,145,145,145,145,145],"e":true}},"d":[],"e":false}},"d":[44,44,44,44,44,44,44,44,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,49,49,49,49,49,49,49,49,49,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,69,69,69,69,69,70,70,78,78,123,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,140,140,142,142,143,143,143,143,143,143,143,145,145,145,145,145,145,145,147,147,147,147,147,147,147,147,155],"e":true},"a":{"w":"sendasync","s":"async","c":{},"d":[109,109],"e":true}},"d":[79,79,79,79,79,109,109,109,109,109,109,109],"e":true},"p":{"w":"sep","s":"p","c":{"a":{"w":"separately","s":"arately","c":{},"d":[45,45],"e":true},"e":{"w":"seperate","s":"erate","c":{},"d":[56,56,56,56,56],"e":true}},"d":[50,50],"e":true},"r":{"w":"ser","s":"r","c":{"v":{"w":"serv","s":"v","c":{"e":{"w":"server","s":"er","c":{"s":{"w":"servers","s":"s","c":{},"d":[73,73,73,73,73,73,73,73,73,73,73,73,78,78,78,78,78,79,79,79,79,140],"e":true},"_":{"w":"server_","s":"_","c":{"s":{"w":"server_s","s":"s","c":{"e":{"w":"server_secret_key_path","s":"ecret_key_path","c":{},"d":[73,73,73,73,73],"e":true},"s":{"w":"server_ssl_opts","s":"sl_opts","c":{},"d":[109,148,148,148],"e":true}},"d":[],"e":false},"g":{"w":"server_get_result","s":"get_result","c":{},"d":[73,73,73,73,73,73,73,73,73,73],"e":true}},"d":[],"e":false},"a":{"w":"serverapsikeyword","s":"apsikeyword","c":{},"d":[136,136],"e":true}},"d":[47,78,78,78,78,102,102,102,102,102,127,134,134,134,134,134,134,134,136,136,136,136,136,136,136,136,136,136,145],"e":true},"i":{"w":"service","s":"ice","c":{"s":{"w":"services","s":"s","c":{"r":{"w":"servicesrepeated","s":"repeated","c":{},"d":[102,102,102],"e":true}},"d":[102,102,102,102,102,102,102],"e":true},"l":{"w":"servicelist","s":"list","c":{},"d":[102,102,102],"e":true}},"d":[95,95,95,95,95,102,102,102,104,104,109],"e":true}},"d":[],"e":false},"i":{"w":"serialized","s":"ialized","c":{},"d":[56,56,56,56,56,56,56,56,56,56,56,56,56,56,56],"e":true}},"d":[],"e":false},"q":{"w":"sequence","s":"quence","c":{"d":{"w":"sequenced","s":"d","c":{},"d":[50,50],"e":true}},"d":[59,59,80,80,93,93,114,114],"e":true},"l":{"w":"sel","s":"l","c":{"e":{"w":"select","s":"ect","c":{"e":{"w":"selected","s":"ed","c":{},"d":[77,77,77,77],"e":true},"_":{"w":"select_fields","s":"_fields","c":{"r":{"w":"select_fieldsrepeated","s":"repeated","c":{},"d":[86,86,86],"e":true}},"d":[86,86],"e":true}},"d":[86,86,86,86,86,86,86,86,86,86,88,88,88,88,88,145,147],"e":true},"f":{"w":"self","s":"f","c":{"_":{"w":"self_","s":"_","c":{"l":{"w":"self_link_party","s":"link_party","c":{},"d":[97,97,97,97,97],"e":true},"p":{"w":"self_party_idx","s":"party_idx","c":{},"d":[101,101,101,101,101],"e":true},"e":{"w":"self_endpoint_idx","s":"endpoint_idx","c":{},"d":[101,101,101,101,101],"e":true}},"d":[],"e":false}},"d":[89,89,89,89,89,101,101,101,101,101,101,101,101,101,101,148,148],"e":true}},"d":[],"e":false}},"d":[],"e":false},"c":{"w":"sc","s":"c","c":{"q":{"w":"scql","s":"ql","c":{},"d":[1,1,22,22,22,22,22,22,31,31,31,31,31,31,31,31,31,31,31,31,31,31],"e":true},"e":{"w":"scenarios","s":"enarios","c":{},"d":[42],"e":true},"h":{"w":"sch","s":"h","c":{"e":{"w":"scheme","s":"eme","c":{},"d":[45,45,48],"e":true},"o":{"w":"scho","s":"o","c":{"l":{"w":"scholl","s":"ll","c":{},"d":[50,50,50,50,50,50,50,50],"e":true},"p":{"w":"schoppmann","s":"ppmann","c":{},"d":[50,50,50,50],"e":true}},"d":[],"e":false},"n":{"w":"schneider","s":"neider","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"n":{"w":"scn","s":"n","c":{},"d":[50,50],"e":true},"a":{"w":"scal","s":"al","c":{"a":{"w":"scala","s":"a","c":{"b":{"w":"scalable","s":"ble","c":{},"d":[50,50,50,50],"e":true},"r":{"w":"scalar","s":"r","c":{},"d":[53,53,53,61,61,61,82,82,82,95,95,95],"e":true}},"d":[],"e":false},"e":{"w":"scale","s":"e","c":{"s":{"w":"scales","s":"s","c":{},"d":[118,120,122,127,151],"e":true}},"d":[118,127,127],"e":true}},"d":[],"e":false},"o":{"w":"scope","s":"ope","c":{},"d":[103,103,103,103,103,103,103],"e":true}},"d":[],"e":false},"p":{"w":"sp","s":"p","c":{"u":{"w":"spu","s":"u","c":{"w":{"w":"spuwith","s":"with","c":{},"d":[22,22,22],"e":true}},"d":[1,1,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,28,28,28,28,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,41,42,48,135],"e":true},"e":{"w":"spe","s":"e","c":{"c":{"w":"specif","s":"cif","c":{"i":{"w":"specifi","s":"i","c":{"e":{"w":"specifie","s":"e","c":{"d":{"w":"specified","s":"d","c":{},"d":[4,4,84,84,84,84,84,84,84,84,84,84,84,84,87,87,87,87,87,87,87,91,143],"e":true},"s":{"w":"specifies","s":"s","c":{},"d":[47],"e":true}},"d":[],"e":false},"c":{"w":"specific","s":"c","c":{},"d":[109,127,127,142,145,145,159],"e":true}},"d":[],"e":false},"y":{"w":"specify","s":"y","c":{},"d":[119,143,152],"e":true}},"d":[],"e":false},"e":{"w":"speed","s":"ed","c":{},"d":[50,50,91,91,91,91,91],"e":true}},"d":[],"e":false},"l":{"w":"split","s":"lit","c":{"t":{"w":"splitt","s":"t","c":{"i":{"w":"splitting","s":"ing","c":{},"d":[48,48,48,48,48],"e":true},"e":{"w":"splitted","s":"ed","c":{},"d":[67,67,67,67,67,72,72,72,72,72],"e":true}},"d":[],"e":false},"s":{"w":"splits","s":"s","c":{},"d":[48,48,48,48],"e":true}},"d":[56,56,56,56,56,145,145,145],"e":true},"r":{"w":"springer","s":"ringer","c":{},"d":[50,50,50,50,50,50,50,50],"e":true},"d":{"w":"spdlog_level_","s":"dlog_level_","c":{"t":{"w":"spdlog_level_trace","s":"trace","c":{},"d":[63,63],"e":true},"d":{"w":"spdlog_level_debug","s":"debug","c":{},"d":[63,63],"e":true},"i":{"w":"spdlog_level_info","s":"info","c":{},"d":[63,63],"e":true},"w":{"w":"spdlog_level_warn","s":"warn","c":{},"d":[63,63],"e":true},"e":{"w":"spdlog_level_error","s":"error","c":{},"d":[63,63],"e":true},"c":{"w":"spdlog_level_critical","s":"critical","c":{},"d":[63,63],"e":true},"o":{"w":"spdlog_level_off","s":"off","c":{},"d":[63,63],"e":true}},"d":[],"e":false},"a":{"w":"space","s":"ace","c":{},"d":[71],"e":true}},"d":[50,50,76,76,76,76,76],"e":true},"k":{"w":"skip","s":"kip","c":{"_":{"w":"skip_duplicates_check","s":"_duplicates_check","c":{},"d":[3,3,3,20,20],"e":true},"p":{"w":"skipped","s":"ped","c":{},"d":[77,77],"e":true}},"d":[20,20],"e":true},"y":{"w":"sy","s":"y","c":{"s":{"w":"system","s":"stem","c":{},"d":[14,14,112,112,112,112,112],"e":true},"n":{"w":"syncwait","s":"ncwait","c":{},"d":[20,20],"e":true},"m":{"w":"sym","s":"m","c":{"p":{"w":"symposium","s":"posium","c":{},"d":[50,50,50,50,76,76,76,76,76],"e":true},"m":{"w":"symmetric","s":"metric","c":{},"d":[78,78,78,78,78,78,78,78,78,78],"e":true}},"d":[],"e":false}},"d":[],"e":false},"t":{"w":"st","s":"t","c":{"r":{"w":"str","s":"r","c":{"u":{"w":"structure","s":"ucture","c":{"d":{"w":"structured","s":"d","c":{},"d":[50,50],"e":true}},"d":[17,17,49,49,49],"e":true},"i":{"w":"string","s":"ing","c":{"s":{"w":"strings","s":"s","c":{"a":{"w":"stringsave","s":"ave","c":{},"d":[56,56,56],"e":true},"o":{"w":"stringsource","s":"ource","c":{},"d":[56,56,56],"e":true},"t":{"w":"stringst","s":"t","c":{"r":{"w":"stringstringstr","s":"ringstr","c":{},"d":[59,59,80,80,93,93,114,114],"e":true},"o":{"w":"stringstores","s":"ores","c":{},"d":[71,71,71],"e":true}},"d":[],"e":false},"e":{"w":"stringse","s":"e","c":{"r":{"w":"stringservers","s":"rvers","c":{},"d":[73,73,73],"e":true},"t":{"w":"stringset","s":"t","c":{},"d":[112,112,112],"e":true}},"d":[],"e":false},"c":{"w":"stringscope","s":"cope","c":{},"d":[103,103,103],"e":true}},"d":[44],"e":true},"l":{"w":"stringlog","s":"log","c":{},"d":[55,55,55,56,56,56],"e":true},"o":{"w":"stringo","s":"o","c":{"n":{"w":"stringone","s":"ne","c":{},"d":[55,55,55,56,56,56],"e":true},"p":{"w":"stringoptional","s":"ptional","c":{},"d":[84,84,84,84,84,84],"e":true}},"d":[],"e":false},"p":{"w":"stringp","s":"p","c":{"a":{"w":"stringpath","s":"ath","c":{},"d":[55,55,55,55,55,55,55,55,55,56,56,56,56,56,56],"e":true},"r":{"w":"stringpr","s":"r","c":{"o":{"w":"stringprotocol","s":"otocol","c":{},"d":[103,103,103],"e":true},"i":{"w":"stringprivate","s":"ivate","c":{},"d":[112,112,112],"e":true}},"d":[],"e":false}},"d":[],"e":false},"a":{"w":"stringa","s":"a","c":{},"d":[59,59,80,80,93,93,114,114],"e":true},"b":{"w":"stringbytestringstr","s":"bytestringstr","c":{},"d":[59,59,80,80,93,93,114,114],"e":true},"n":{"w":"stringn","s":"n","c":{"o":{"w":"stringnone","s":"one","c":{"t":{"w":"stringnonetrace_path","s":"trace_path","c":{},"d":[63,63],"e":true},"v":{"w":"stringnonevalue","s":"value","c":{},"d":[106,106],"e":true},"h":{"w":"stringnonehost","s":"host","c":{},"d":[110,110],"e":true}},"d":[63,106,110,110,110,110],"e":true},"u":{"w":"stringnull","s":"ull","c":{},"d":[68,68,68],"e":true},"a":{"w":"stringname","s":"ame","c":{},"d":[102,102,102,104,104,104],"e":true}},"d":[],"e":false},"t":{"w":"stringthe","s":"the","c":{},"d":[63,63,63,86,86,86,86,86,86,88,88,88,109,109,109],"e":true},"r":{"w":"stringr","s":"r","c":{"e":{"w":"stringrequired","s":"equired","c":{},"d":[66,66,66,73,73,73],"e":true},"o":{"w":"stringrole","s":"ole","c":{},"d":[102,102,102],"e":true}},"d":[],"e":false},"k":{"w":"stringkeys","s":"keys","c":{},"d":[70,70,70],"e":true},"j":{"w":"stringjoin","s":"join","c":{},"d":[73,73,73],"e":true},"w":{"w":"stringwith","s":"with","c":{},"d":[97,97,97],"e":true},"e":{"w":"stringe","s":"e","c":{"a":{"w":"stringeach","s":"ach","c":{},"d":[103,103,103],"e":true},"n":{"w":"stringendpoint","s":"ndpoint","c":{},"d":[104,104,104],"e":true}},"d":[],"e":false},"c":{"w":"stringcertificate","s":"certificate","c":{},"d":[112,112,112],"e":true}},"d":[55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,59,59,63,63,63,63,63,63,63,63,66,66,66,66,68,68,68,68,70,70,70,70,71,71,71,71,73,73,73,73,73,73,73,73,73,73,73,73,80,80,84,84,84,84,84,84,84,84,86,86,86,86,86,86,86,86,88,88,88,88,93,93,97,97,97,97,102,102,102,102,102,102,102,102,103,103,103,103,103,103,103,103,103,103,103,103,104,104,104,104,104,104,104,104,106,106,106,106,109,109,109,109,109,109,109,109,110,110,110,110,110,110,110,110,112,112,112,112,112,112,112,112,112,112,112,112,114,114],"e":true},"o":{"w":"strongly","s":"ongly","c":{},"d":[45],"e":true},"e":{"w":"strength","s":"ength","c":{},"d":[45],"e":true}},"d":[],"e":false},"e":{"w":"step","s":"ep","c":{"s":{"w":"steps","s":"s","c":{},"d":[127],"e":true}},"d":[42,42,42,42,47,47,47,47],"e":true},"a":{"w":"sta","s":"a","c":{"s":{"w":"stash","s":"sh","c":{},"d":[44],"e":true},"t":{"w":"stat","s":"t","c":{"s":{"w":"stats_params","s":"s_params","c":{},"d":[48,48,48,48,48],"e":true},"u":{"w":"status","s":"us","c":{},"d":[71,71,71,71,71],"e":true}},"d":[],"e":false},"n":{"w":"standard","s":"ndard","c":{"s":{"w":"standards","s":"s","c":{},"d":[50,50,91,91,91,91,91],"e":true}},"d":[91,91,91,91,91],"e":true},"g":{"w":"stage","s":"ge","c":{"s":{"w":"stages","s":"s","c":{},"d":[79,79,79,79,79],"e":true}},"d":[79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,143,143,143,143,143,143,143,145,145],"e":true},"r":{"w":"start","s":"rt","c":{"i":{"w":"starting","s":"ing","c":{},"d":[109],"e":true}},"d":[135,158],"e":true}},"d":[],"e":false},"o":{"w":"sto","s":"o","c":{"c":{"w":"stockmeyer","s":"ckmeyer","c":{},"d":[48,48,48,48,48,48,48,48,48,48],"e":true},"r":{"w":"store","s":"re","c":{"s":{"w":"stores","s":"s","c":{},"d":[49,71,71],"e":true}},"d":[148,148],"e":true},"p":{"w":"stop","s":"p","c":{},"d":[70,70,70,70,70,147],"e":true}},"d":[],"e":false},"i":{"w":"still","s":"ill","c":{},"d":[109,115],"e":true}},"d":[],"e":false},"i":{"w":"si","s":"i","c":{"z":{"w":"size","s":"ze","c":{"s":{"w":"sizes","s":"s","c":{},"d":[48],"e":true}},"d":[18,18,19,19,43,48,67,67,67,67,67,72,72,72,72,72,77,77,77,77,84,84,84,84,84,109,109,109,109,109,109,147,147],"e":true},"m":{"w":"sim","s":"m","c":{"p":{"w":"simple","s":"ple","c":{"s":{"w":"simpleshuffledbatchprovider","s":"shuffledbatchprovider","c":{},"d":[18,18],"e":true}},"d":[139],"e":true},"u":{"w":"simultaneously","s":"ultaneously","c":{},"d":[131,162],"e":true},"i":{"w":"similar","s":"ilar","c":{},"d":[139],"e":true}},"d":[],"e":false},"g":{"w":"sig","s":"g","c":{"n":{"w":"sign","s":"n","c":{"i":{"w":"significant","s":"ificant","c":{"l":{"w":"significantly","s":"ly","c":{},"d":[42],"e":true}},"d":[49],"e":true},"e":{"w":"signed","s":"ed","c":{},"d":[59,59,59,59,80,80,80,80,93,93,93,93,114,114,114,114],"e":true}},"d":[],"e":false},"s":{"w":"sigsac","s":"sac","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"l":{"w":"sil","s":"l","c":{"v":{"w":"silver","s":"ver","c":{},"d":[49,49,50,50],"e":true},"e":{"w":"silent","s":"ent","c":{},"d":[50,50,50,50,50,50,55,55,55,55,55,56,56,56,56,56],"e":true}},"d":[],"e":false},"n":{"w":"sin","s":"n","c":{"t":{"w":"sint","s":"t","c":{"3":{"w":"sint32","s":"32","c":{"u":{"w":"sint32uses","s":"uses","c":{},"d":[59,59,80,80,93,93,114,114],"e":true}},"d":[59,59,80,80,93,93,114,114],"e":true},"6":{"w":"sint64","s":"64","c":{"u":{"w":"sint64uses","s":"uses","c":{},"d":[59,59,80,80,93,93,114,114],"e":true}},"d":[59,59,80,80,93,93,114,114],"e":true}},"d":[],"e":false},"c":{"w":"since","s":"ce","c":{},"d":[67,67,72,72,141,141,143],"e":true},"g":{"w":"single","s":"gle","c":{},"d":[109,109,136,136,136,136,166],"e":true}},"d":[],"e":false},"d":{"w":"side","s":"de","c":{"s":{"w":"sides","s":"s","c":{},"d":[148,148],"e":true}},"d":[70,70,70,70,70,70,70,70,127],"e":true}},"d":[48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48],"e":true},"o":{"w":"so","s":"o","c":{"r":{"w":"sort","s":"rt","c":{"_":{"w":"sort_output","s":"_output","c":{},"d":[20,20],"e":true}},"d":[18,18,19,19,88,88,88,88,88],"e":true},"u":{"w":"source","s":"urce","c":{"_":{"w":"source_file","s":"_file","c":{},"d":[56,56,56,56,56,143,143],"e":true}},"d":[29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,48,48,48,48,48,56,56,139,143],"e":true},"o":{"w":"soon","s":"on","c":{},"d":[39],"e":true},"m":{"w":"some","s":"me","c":{"w":{"w":"somewhat","s":"what","c":{},"d":[48,50,50],"e":true},"t":{"w":"sometimes","s":"times","c":{},"d":[147],"e":true}},"d":[42,49,142,146],"e":true}},"d":[49,109,127,139,142,145,147,147],"e":true},"u":{"w":"su","s":"u","c":{"p":{"w":"suppo","s":"ppo","c":{"r":{"w":"support","s":"rt","c":{"e":{"w":"supported","s":"ed","c":{},"d":[22,22,22,22,22,22,22,22,42,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92],"e":true},"s":{"w":"supports","s":"s","c":{},"d":[63,159],"e":true}},"d":[20,20,21,21,21,21,22,22,22,22,22,22,22,22,22,22,42,42,42,42,42,49,56,56,56,56,56,75,127,147,148],"e":true},"s":{"w":"supposed","s":"sed","c":{},"d":[139],"e":true}},"d":[],"e":false},"b":{"w":"sub","s":"b","c":{"s":{"w":"subs","s":"s","c":{"e":{"w":"subset","s":"et","c":{},"d":[22,22,22,22,22],"e":true},"a":{"w":"subsampl","s":"ampl","c":{"i":{"w":"subsampling","s":"ing","c":{},"d":[45,45],"e":true},"e":{"w":"subsamples","s":"es","c":{},"d":[45,45],"e":true}},"d":[],"e":false}},"d":[],"e":false},"g":{"w":"subgroups","s":"groups","c":{},"d":[42],"e":true},"l":{"w":"sublinear","s":"linear","c":{},"d":[49],"e":true},"f":{"w":"subfield","s":"field","c":{},"d":[50,50],"e":true},"q":{"w":"subquer","s":"quer","c":{"i":{"w":"subqueries","s":"ies","c":{},"d":[145],"e":true},"y":{"w":"subquery","s":"y","c":{},"d":[145,145,145],"e":true}},"d":[],"e":false}},"d":[45,49,49,85,85,85,85,85],"e":true},"c":{"w":"suc","s":"c","c":{"h":{"w":"such","s":"h","c":{},"d":[42,49,49,49,118,127,150],"e":true},"c":{"w":"successful","s":"cessful","c":{},"d":[117,150],"e":true}},"d":[],"e":false},"g":{"w":"suggest","s":"ggest","c":{},"d":[45],"e":true},"i":{"w":"suitable","s":"itable","c":{},"d":[118,142],"e":true},"r":{"w":"sure","s":"re","c":{},"d":[130,130,130,130,130,130,130,130,130,130,141,142,143],"e":true}},"d":[],"e":false},"m":{"w":"sm","s":"m","c":{"2":{"w":"sm2","s":"2","c":{"g":{"w":"sm2gbt","s":"gbt","c":{},"d":[42],"e":true}},"d":[42,42,91,91,159,159,159],"e":true},"a":{"w":"small","s":"all","c":{"e":{"w":"smaller","s":"er","c":{},"d":[56,56,56,56,56,67,67,67,67,67,72,72,72,72,72,78,78,78,78,78],"e":true}},"d":[56,56,56,56,56,109,127],"e":true}},"d":[],"e":false},"h":{"w":"sh","s":"h","c":{"u":{"w":"shuffl","s":"uffl","c":{"e":{"w":"shuffle","s":"e","c":{"d":{"w":"shuffled","s":"d","c":{},"d":[43,45,45,47,47,47,47],"e":true},"s":{"w":"shuffles","s":"s","c":{},"d":[43,43],"e":true}},"d":[43],"e":true},"i":{"w":"shuffling","s":"ing","c":{},"d":[92,92,92,92,92],"e":true}},"d":[],"e":false},"o":{"w":"sho","s":"o","c":{"u":{"w":"should","s":"uld","c":{"n":{"w":"shouldn","s":"n","c":{},"d":[147,147],"e":true}},"d":[45,48,48,48,48,48,67,67,67,67,67,67,67,67,67,67,72,72,72,72,72,72,72,72,72,72,109,139,141,143,145,148,159],"e":true},"w":{"w":"show","s":"w","c":{},"d":[157],"e":true}},"d":[],"e":false},"e":{"w":"she","s":"e","c":{},"d":[48],"e":true},"a":{"w":"share","s":"are","c":{},"d":[142],"e":true}},"d":[],"e":false},"a":{"w":"sa","s":"a","c":{"m":{"w":"sam","s":"m","c":{"p":{"w":"sampl","s":"pl","c":{"i":{"w":"sampling","s":"ing","c":{},"d":[45,45,85,85,85,85,85],"e":true},"e":{"w":"samples","s":"es","c":{},"d":[45,45,48,48,48,48,49,49],"e":true}},"d":[],"e":false},"e":{"w":"same","s":"e","c":{},"d":[45,55,55,55,55,55,55,55,55,55,55,139,142,143,145,147,148],"e":true}},"d":[],"e":false},"k":{"w":"sako","s":"ko","c":{},"d":[50,50],"e":true},"v":{"w":"save","s":"ve","c":{"_":{"w":"save_db_only","s":"_db_only","c":{},"d":[56,56,56,56,56],"e":true}},"d":[56,56,56,56,56,56,56,56,56,56,56,56,71,147],"e":true},"y":{"w":"say","s":"y","c":{},"d":[92,92,92,92,92],"e":true},"f":{"w":"safe","s":"fe","c":{},"d":[147,147,147,147],"e":true}},"d":[],"e":false},"_":{"w":"s_i","s":"_i","c":{},"d":[48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48],"e":true},"s":{"w":"ss","s":"s","c":{"_":{"w":"ss_i","s":"_i","c":{},"d":[48,48,48,48,48,48,48,48,48],"e":true},"i":{"w":"ssi","s":"i","c":{},"d":[48,48,48,48,48,48],"e":true},"l":{"w":"ssl","s":"l","c":{"o":{"w":"ssloptionsproto","s":"optionsproto","c":{},"d":[95,95,95,95,95,109,109,109,109],"e":true}},"d":[109,109,109,112,148,148],"e":true}},"d":[],"e":false},"l":{"w":"slots","s":"lots","c":{},"d":[48,48,48,48,48],"e":true},"r":{"w":"srinivasan","s":"rinivasan","c":{},"d":[50,50,50,50,50,50],"e":true},"d":{"w":"sdb_out_file","s":"db_out_file","c":{},"d":[56,56,56,56,56],"e":true},"f":{"w":"sf","s":"f","c":{"i":{"w":"sfixed","s":"ixed","c":{"3":{"w":"sfixed32always","s":"32always","c":{},"d":[59,59,80,80,93,93,114,114],"e":true},"6":{"w":"sfixed64always","s":"64always","c":{},"d":[59,59,80,80,93,93,114,114],"e":true}},"d":[],"e":false},"p":{"w":"sfpsiconfigmapentry","s":"psiconfigmapentry","c":{"n":{"w":"sfpsiconfigmapentrynone","s":"none","c":{},"d":[105,105,105],"e":true}},"d":[95,95,95,95,95,105,105,105],"e":true},"_":{"w":"sf_psi_config_map","s":"_psi_config_map","c":{"m":{"w":"sf_psi_config_mapmap","s":"map","c":{},"d":[105,105],"e":true}},"d":[105,105],"e":true}},"d":[],"e":false},"q":{"w":"sql","s":"ql","c":{},"d":[75,147],"e":true}},"d":[43,43,43,43,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,45,45,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,49,50,50,50,50,56,56,56,56,56,109,109,109,112,112,112,112,112,142,143,147,147,147,147,147,147,147,147,147,147,147,147,147,147],"e":true},"a":{"w":"a","s":"a","c":{"n":{"w":"an","s":"n","c":{"d":{"w":"and","s":"d","c":{},"d":[1,1,1,6,6,7,7,11,11,20,20,22,38,39,40,41,41,42,42,42,42,42,42,42,42,42,42,42,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,44,44,44,44,44,44,44,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,70,71,71,71,71,71,71,71,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,76,76,76,76,76,91,91,91,91,91,92,92,92,92,92,94,118,118,119,123,123,127,127,130,130,130,130,130,130,130,130,130,130,134,139,141,141,142,142,142,142,143,145,146,147,147,147,147,147,147,147,147,148,148,148,148,148,148,148,152,155,155,157,157,159,159,159,159,160,167],"e":true},"o":{"w":"anolis8","s":"olis8","c":{},"d":[25,25,129,129,137,137,161],"e":true},"y":{"w":"any","s":"y","c":{},"d":[48,48,59,59,69,80,80,93,93,114,114,127,139,147,147,147],"e":true}},"d":[39,45,45,47,49,49,56,56,56,56,56,91,91,91,91,91,103,117,140,142,150],"e":true},"p":{"w":"ap","s":"p","c":{"i":{"w":"api","s":"i","c":{"s":{"w":"apis","s":"s","c":{"s":{"w":"apissupported","s":"supported","c":{},"d":[22],"e":true}},"d":[22,22,22,22,22,22,22,22,22,22,22,22,22,22,28,29,51,139,139,158],"e":true}},"d":[3,3,3,3,3,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,6,6,8,8,9,9,11,11,11,11,15,15,15,15,16,16,16,16,17,17,18,18,18,18,20,20,20,20,21,21,21,21,21,21,21,21,21,21,139],"e":true},"s":{"w":"apsi","s":"si","c":{"r":{"w":"apsireceiverconfig","s":"receiverconfig","c":{"n":{"w":"apsireceiverconfignone","s":"none","c":{},"d":[97,97,97],"e":true}},"d":[53,53,53,53,53,97,97,97,97],"e":true},"s":{"w":"apsisenderconfig","s":"senderconfig","c":{"p":{"w":"apsisenderconfigplease","s":"please","c":{},"d":[97,97,97],"e":true}},"d":[53,53,53,53,53,97,97,97,97],"e":true},"_":{"w":"apsi_","s":"_","c":{"s":{"w":"apsi_sender","s":"sender","c":{"_":{"w":"apsi_sender_","s":"_","c":{"c":{"w":"apsi_sender_config","s":"config","c":{},"d":[97,97,97,97,97],"e":true},"s":{"w":"apsi_sender_setup","s":"setup","c":{},"d":[143,143,143],"e":true},"o":{"w":"apsi_sender_online","s":"online","c":{},"d":[143,143,143],"e":true}},"d":[],"e":false}},"d":[124],"e":true},"r":{"w":"apsi_receiver","s":"receiver","c":{"_":{"w":"apsi_receiver_config","s":"_config","c":{},"d":[97,97,97,97,97],"e":true}},"d":[143,143,143],"e":true}},"d":[],"e":false},"k":{"w":"apsikeyword","s":"keyword","c":{},"d":[136],"e":true}},"d":[5,5,6,6,8,8,8,8,11,11,48,48,48,48,48,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,115,115,115,115,116,117,118,118,118,123,127,127,127,127,127,127,136,136,139,139,139,139,139,139,139,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142,142],"e":true},"p":{"w":"app","s":"p","c":{"l":{"w":"appli","s":"li","c":{"c":{"w":"applications","s":"cations","c":{},"d":[22,22,50,50,76,76,76,76,76,92,92,92,92,92],"e":true},"e":{"w":"applies","s":"es","c":{},"d":[42,42,42,42,47,47,47,47,47,47,47,47],"e":true}},"d":[],"e":false},"r":{"w":"appropriate","s":"ropriate","c":{},"d":[142],"e":true}},"d":[],"e":false},"a":{"w":"apa","s":"a","c":{"c":{"w":"apache","s":"che","c":{},"d":[22,22,22,22,22],"e":true},"r":{"w":"apart","s":"rt","c":{},"d":[78,78,78,78,78],"e":true}},"d":[],"e":false},"r":{"w":"april","s":"ril","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"d":{"w":"ad","s":"d","c":{"d":{"w":"add","s":"d","c":{"i":{"w":"addition","s":"ition","c":{"a":{"w":"additional","s":"al","c":{"l":{"w":"additionally","s":"ly","c":{},"d":[127,127],"e":true}},"d":[55,55,55,55,55,111,111,111,111,111],"e":true}},"d":[43],"e":true},"s":{"w":"adds","s":"s","c":{},"d":[45,45],"e":true},"r":{"w":"address","s":"ress","c":{},"d":[104],"e":true}},"d":[6,6,8,8,11,11,14,14,17,17,18,18,18,18,21,21,21,21,45],"e":true},"v":{"w":"adv","s":"v","c":{"a":{"w":"advanced","s":"anced","c":{"j":{"w":"advancedjointype","s":"jointype","c":{"n":{"w":"advancedjointypenone","s":"none","c":{"l":{"w":"advancedjointypenoneleft_side","s":"left_side","c":{},"d":[70,70,73,73],"e":true}},"d":[70,73],"e":true}},"d":[61,61,61,61,61,70,70,70,73,73,73,147],"e":true},"_":{"w":"advanced_join_type","s":"_join_type","c":{"_":{"w":"advanced_join_type_","s":"_","c":{"l":{"w":"advanced_join_type_left_join","s":"left_join","c":{"2":{"w":"advanced_join_type_left_join2none","s":"2none","c":{},"d":[77],"e":true}},"d":[70,70,70,70,70,73,73,73,73,73,77,77],"e":true},"r":{"w":"advanced_join_type_right_join","s":"right_join","c":{"3":{"w":"advanced_join_type_right_join3none","s":"3none","c":{},"d":[77],"e":true}},"d":[70,70,70,70,70,73,73,73,73,73,77,77],"e":true},"u":{"w":"advanced_join_type_unspecified","s":"unspecified","c":{"0":{"w":"advanced_join_type_unspecified0none","s":"0none","c":{"a":{"w":"advanced_join_type_unspecified0noneadvanced_join_type_inner_join1noneadvanced_join_type_left_join2noneadvanced_join_type_right_join3noneadvanced_join_type_full_join4noneadvanced_join_type_difference5none","s":"advanced_join_type_inner_join1noneadvanced_join_type_left_join2noneadvanced_join_type_right_join3noneadvanced_join_type_full_join4noneadvanced_join_type_difference5none","c":{},"d":[77],"e":true}},"d":[77],"e":true}},"d":[77,77,147,147,147],"e":true},"i":{"w":"advanced_join_type_inner_join","s":"inner_join","c":{"1":{"w":"advanced_join_type_inner_join1none","s":"1none","c":{},"d":[77],"e":true}},"d":[77,77,147],"e":true},"f":{"w":"advanced_join_type_full_join","s":"full_join","c":{"4":{"w":"advanced_join_type_full_join4none","s":"4none","c":{},"d":[77],"e":true}},"d":[77,77],"e":true},"d":{"w":"advanced_join_type_difference","s":"difference","c":{"5":{"w":"advanced_join_type_difference5none","s":"5none","c":{},"d":[77],"e":true}},"d":[77,77],"e":true}},"d":[],"e":false}},"d":[70,70,70,70,70,70,70,70,70,70,73,73,73,73,73,73,73,73,73,73],"e":true}},"d":[40,70,77],"e":true},"e":{"w":"adversar","s":"ersar","c":{"i":{"w":"adversaries","s":"ies","c":{},"d":[47,159,159],"e":true},"y":{"w":"adversary","s":"y","c":{},"d":[159,159,159,159,159,159,159,159],"e":true}},"d":[],"e":false}},"d":[],"e":false}},"d":[],"e":false},"l":{"w":"al","s":"l","c":{"l":{"w":"all","s":"l","c":{"o":{"w":"allo","s":"o","c":{"w":{"w":"allow","s":"w","c":{"s":{"w":"allows","s":"s","c":{},"d":[45],"e":true},"e":{"w":"allowed","s":"ed","c":{},"d":[56,56,56,56,56,77,77,141,141],"e":true}},"d":[6,6,11,11,49,77,147],"e":true},"c":{"w":"allocated","s":"cated","c":{"p":{"w":"allocatedports","s":"ports","c":{},"d":[95,95,95,95,95,100],"e":true}},"d":[100,100,100,103,103,103,103,103,103],"e":true}},"d":[],"e":false}},"d":[22,22,22,22,22,44,44,48,48,48,48,51,55,55,55,55,55,56,56,56,56,56,73,73,73,73,73,79,79,79,79,79,84,84,84,84,84,87,87,87,87,87,101,101,101,101,101,101,111,111,111,111,111,111,111,111,111,111,147,166],"e":true},"s":{"w":"also","s":"so","c":{},"d":[25,45,127,129,137,145,147,147,161],"e":true},"i":{"w":"ali","s":"i","c":{"b":{"w":"alibaba","s":"baba","c":{},"d":[25,129,137,161],"e":true},"y":{"w":"aliyuncs","s":"yuncs","c":{},"d":[25,25,129,129,137,137,161],"e":true},"c":{"w":"alice","s":"ce","c":{},"d":[42,42,42,42,42,42,42,42,42,42,42,42,42,42,43,43,43,43,43,43,43,43,43,43,43,43,43,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,109,109,109,155],"e":true},"g":{"w":"aligned","s":"gned","c":{},"d":[70,70,70,70,70,73,73,73,73,73,147],"e":true}},"d":[],"e":false},"p":{"w":"alpha","s":"pha","c":{"h":{"w":"alphah","s":"h","c":{},"d":[42,42,42,42,42,42,42,42,43,43,43,43],"e":true}},"d":[42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43],"e":true},"g":{"w":"algorithm","s":"gorithm","c":{"q":{"w":"algorithmquery_powershow","s":"query_powershow","c":{},"d":[48,48],"e":true},"s":{"w":"algorithms","s":"s","c":{},"d":[49],"e":true}},"d":[48,48,48,48,48,48,48,48,92,127],"e":true},"o":{"w":"along","s":"ong","c":{},"d":[49],"e":true},"w":{"w":"always","s":"ways","c":{},"d":[59,59,78,78,78,78,78,80,80,93,93,114,114,127],"e":true},"t":{"w":"although","s":"though","c":{},"d":[109],"e":true}},"d":[],"e":false},"r":{"w":"ar","s":"r","c":{"m":{"w":"arm","s":"m","c":{},"d":[7,7,22,22],"e":true},"r":{"w":"arrow","s":"row","c":{},"d":[14,14,22,22,22,22,22],"e":true},"e":{"w":"are","s":"e","c":{},"d":[22,42,42,43,45,56,56,56,56,56,56,56,56,56,56,59,59,59,59,65,65,65,65,65,70,70,70,70,70,73,73,73,73,73,77,77,78,78,78,78,78,80,80,80,80,93,93,93,93,109,109,109,114,114,114,114,115,127,134,139,139,139,141,141,147,147,147,147,147,159,159,159],"e":true},"x":{"w":"arxiv","s":"xiv","c":{},"d":[50,50,50,92,92,92,92,92,92],"e":true},"c":{"w":"archive","s":"chive","c":{},"d":[50,50,50,50,50,50,50],"e":true},"a":{"w":"aranha","s":"anha","c":{},"d":[50,50],"e":true},"i":{"w":"arithmetic","s":"ithmetic","c":{},"d":[50,50],"e":true},"b":{"w":"arbitrary","s":"bitrary","c":{},"d":[59,59,80,80,93,93,114,114],"e":true},"g":{"w":"arguments","s":"guments","c":{},"d":[139,139],"e":true}},"d":[],"e":false},"g":{"w":"ag","s":"g","c":{"a":{"w":"again","s":"ain","c":{"s":{"w":"against","s":"st","c":{},"d":[47],"e":true}},"d":[8,8],"e":true},"r":{"w":"agree","s":"ree","c":{},"d":[42,42,44,44,147,147],"e":true},"g":{"w":"aggressive","s":"gressive","c":{"_":{"w":"aggressive_retry","s":"_retry","c":{},"d":[111,111,111],"e":true}},"d":[111,111,111,111,111],"e":true}},"d":[],"e":false},"a":{"w":"aarch64","s":"arch64","c":{},"d":[22,22,22],"e":true},"s":{"w":"as","s":"s","c":{"s":{"w":"ass","s":"s","c":{"u":{"w":"assum","s":"um","c":{"p":{"w":"assumption","s":"ption","c":{},"d":[42,42,42],"e":true},"e":{"w":"assume","s":"e","c":{},"d":[43,43,45],"e":true},"i":{"w":"assuming","s":"ing","c":{},"d":[145],"e":true}},"d":[],"e":false},"o":{"w":"associated","s":"ociated","c":{},"d":[48,48,48,48,48,48],"e":true}},"d":[],"e":false},"y":{"w":"asymmetric","s":"ymmetric","c":{},"d":[48,48,48],"e":true},"k":{"w":"ask","s":"k","c":{"e":{"w":"asked","s":"ed","c":{},"d":[115,115,115,115],"e":true}},"d":[55,55,55,55,55,142,143],"e":true},"c":{"w":"ascii","s":"cii","c":{},"d":[59,59,80,80,93,93,114,114],"e":true}},"d":[22,22,22,22,22,42,42,42,42,43,43,47,47,48,48,48,48,49,49,51,55,55,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,91,91,91,91,91,91,91,91,91,91,118,123,127,127,127,139,139,139,142,143,145,147,147,150,155,157,167],"e":true},"f":{"w":"af","s":"f","c":{"t":{"w":"after","s":"ter","c":{},"d":[22,22,22,22,22,70,70,70,70,70,109,140],"e":true},"f":{"w":"affect","s":"fect","c":{},"d":[109],"e":true}},"d":[],"e":false},"t":{"w":"at","s":"t","c":{"t":{"w":"att","s":"t","c":{"e":{"w":"attempt","s":"empt","c":{},"d":[56,56,56,56,56,56,56,56,56,56],"e":true},"r":{"w":"attributes","s":"ributes","c":{},"d":[70,70,70,70,70,70,70,70,70,70,73,73,73,73,73,73,73,73,73,73],"e":true},"a":{"w":"attacked","s":"acked","c":{},"d":[159,167],"e":true}},"d":[],"e":false}},"d":[25,25,39,43,43,45,56,56,56,56,56,94,94,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,111,111,111,111,111,129,129,130,130,133,134,136,137,137,139,142,142,142,147,148,148,160,160,161,161],"e":true},"b":{"w":"ab","s":"b","c":{"y":{"w":"aby_","s":"y_","c":{},"d":[45,45,45,45,45,45,45],"e":true},"i":{"w":"abi","s":"i","c":{"_":{"w":"abi_","s":"_","c":{},"d":[45,45,45,45,45,45,45,45,45,45,45,45,45,45],"e":true},"l":{"w":"ability","s":"lity","c":{},"d":[45],"e":true}},"d":[],"e":false},"s":{"w":"abs","s":"s","c":{"t":{"w":"abstract","s":"tract","c":{},"d":[49],"e":true},"e":{"w":"absence","s":"ence","c":{},"d":[50,50,76,76,76,76,76],"e":true}},"d":[],"e":false},"o":{"w":"above","s":"ove","c":{},"d":[109,127,127,127,157],"e":true}},"d":[42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45],"e":true},"v":{"w":"av","s":"v","c":{"x":{"w":"avx","s":"x","c":{},"d":[42,42,42,42,42],"e":true},"a":{"w":"available","s":"ailable","c":{},"d":[50,50,76,76,76,76,76],"e":true}},"d":[],"e":false},"y":{"w":"ay","s":"y","c":{},"d":[45,45,45],"e":true},"x":{"w":"axa","s":"xa","c":{},"d":[45,45,45,45,45,45,45,45,45,45,45,45],"e":true},"c":{"w":"ac","s":"c","c":{"t":{"w":"act","s":"t","c":{"u":{"w":"actual","s":"ual","c":{},"d":[45],"e":true}},"d":[123,155],"e":true},"c":{"w":"acc","s":"c","c":{"u":{"w":"accumulate","s":"umulate","c":{},"d":[49,50,50],"e":true},"o":{"w":"accordingly","s":"ordingly","c":{},"d":[109],"e":true}},"d":[],"e":false},"m":{"w":"acm","s":"m","c":{},"d":[50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50],"e":true},"h":{"w":"achieve","s":"hieve","c":{},"d":[118,127],"e":true}},"d":[],"e":false},"u":{"w":"authors","s":"uthors","c":{},"d":[47],"e":true},"m":{"w":"amount","s":"mount","c":{},"d":[111,111,111,111,111,127],"e":true},"w":{"w":"aware","s":"ware","c":{},"d":[139],"e":true}},"d":[22,22,22,22,22,22,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,47,47,48,48,48,48,48,48,48,48,48,48,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,50,50,50,50,50,50,50,50,50,50,50,50,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,67,67,67,67,67,67,67,67,67,67,71,72,72,72,72,72,72,72,72,72,72,76,76,76,76,76,76,76,76,76,76,78,78,78,78,78,78,78,78,78,78,91,91,91,91,91,91,91,91,91,91,92,92,92,92,92,103,103,103,103,103,103,103,103,103,103,109,109,109,109,109,117,118,118,127,127,127,127,127,127,139,139,140,140,140,142,142,142,145,145,145,147,148,148,166],"e":true},"f":{"w":"f","s":"f","c":{"r":{"w":"fr","s":"r","c":{"o":{"w":"from","s":"om","c":{},"d":[1,1,21,21,42,42,42,42,42,42,43,45,45,45,45,47,47,47,47,47,47,47,47,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,70,70,70,70,70,78,78,78,78,78,146],"e":true},"i":{"w":"friendly","s":"iendly","c":{},"d":[22,22,22,22,22,49,49],"e":true},"a":{"w":"franklin","s":"anklin","c":{},"d":[42,50,50],"e":true},"e":{"w":"fre","s":"e","c":{"q":{"w":"frequently","s":"quently","c":{},"d":[115,115,115,115],"e":true},"e":{"w":"free","s":"e","c":{},"d":[127],"e":true}},"d":[],"e":false}},"d":[],"e":false},"u":{"w":"fu","s":"u","c":{"n":{"w":"function","s":"nction","c":{"a":{"w":"functionality","s":"ality","c":{},"d":[1,48],"e":true},"s":{"w":"functions","s":"s","c":{},"d":[48,48,48,48,48,48,50,50,165,165],"e":true}},"d":[4,4,42,42,42,42,47,47,47,47,47,47,48,48],"e":true},"l":{"w":"full","s":"ll","c":{"y":{"w":"fully","s":"y","c":{},"d":[50,50,50,50,50,50],"e":true}},"d":[20,20,70,70,77,77,77,77,147],"e":true},"r":{"w":"further","s":"rther","c":{},"d":[22,22,22,22,22,49,127,127,139,139,139],"e":true}},"d":[],"e":false},"o":{"w":"fo","s":"o","c":{"r":{"w":"for","s":"r","c":{"m":{"w":"formerly","s":"merly","c":{},"d":[1],"e":true}},"d":[1,3,3,3,3,3,3,3,3,3,3,3,3,6,6,11,11,17,17,22,22,22,37,38,42,42,42,42,42,42,42,42,42,42,43,43,43,43,43,43,43,43,44,44,44,45,45,47,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,50,50,50,50,50,50,50,50,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,59,59,59,59,63,64,66,66,66,66,66,67,69,69,69,69,69,69,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,71,72,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,76,76,76,76,76,80,80,80,80,84,84,84,84,84,87,87,87,87,87,91,91,91,91,91,93,93,93,93,97,97,97,97,97,100,103,103,103,103,103,103,103,103,103,103,103,109,109,109,109,109,109,109,109,109,109,109,109,109,112,112,112,112,112,114,114,114,114,117,118,120,122,127,127,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,139,139,139,140,142,142,142,142,143,143,144,145,145,147,147,159,159,166],"e":true},"l":{"w":"fol","s":"l","c":{"d":{"w":"folder","s":"der","c":{},"d":[14,14,56,56,56,56,56,56,56,56,56,56,71,71,71,148,148,148],"e":true},"l":{"w":"follow","s":"low","c":{"i":{"w":"following","s":"ing","c":{},"d":[41,130,131,131,147,162,162],"e":true}},"d":[127],"e":true}},"d":[],"e":false},"u":{"w":"four","s":"ur","c":{"q":{"w":"fourq","s":"q","c":{"l":{"w":"fourqlib","s":"lib","c":{},"d":[42,42,42,42,42,42],"e":true}},"d":[42,42,42,42,42,42,42,42,42,42,50,50,91,91,159,159,159],"e":true}},"d":[50,50,59,59,59,59,80,80,80,80,91,91,91,91,91,93,93,93,93,114,114,114,114],"e":true},"o":{"w":"footprint","s":"otprint","c":{},"d":[56,56,56,56,56],"e":true}},"d":[],"e":false},"e":{"w":"fe","s":"e","c":{"a":{"w":"feature","s":"ature","c":{"s":{"w":"features","s":"s","c":{},"d":[3,3,3,139],"e":true},"d":{"w":"featured","s":"d","c":{},"d":[31,31,31,31,31],"e":true}},"d":[3,3,3,3,4,4,4,4,8,8,17,17,18,18,18,18,20,20,20,20,21,21,21,21,21,21,21,21,45,148],"e":true},"l":{"w":"felts_per_item","s":"lts_per_item","c":{"h":{"w":"felts_per_itemhow","s":"how","c":{},"d":[48],"e":true}},"d":[48,48,48,48,48,48,48],"e":true},"b":{"w":"feb","s":"b","c":{},"d":[50,50],"e":true},"e":{"w":"feel","s":"el","c":{},"d":[127],"e":true}},"d":[],"e":false},"i":{"w":"fi","s":"i","c":{"x":{"w":"fix","s":"x","c":{"e":{"w":"fixe","s":"e","c":{"s":{"w":"fixes","s":"s","c":{},"d":[3,3,3],"e":true},"d":{"w":"fixed","s":"d","c":{"3":{"w":"fixed32always","s":"32always","c":{},"d":[59,59,80,80,93,93,114,114],"e":true},"6":{"w":"fixed64always","s":"64always","c":{},"d":[59,59,80,80,93,93,114,114],"e":true}},"d":[127],"e":true}},"d":[],"e":false}},"d":[6,6,6,6,7,7,11,11,11,11,14,14,18,18,18,18,18,18,19,19,20,20,20,20],"e":true},"l":{"w":"fil","s":"l","c":{"e":{"w":"file","s":"e","c":{"s":{"w":"files","s":"s","c":{},"d":[22,22,22,22,22,22,22,22,22,22,56,56,56,56,56,56,56,56,56,56,71,71,71,71,71,112,112,112,112,112,118,119,130,142],"e":true}},"d":[6,6,11,11,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,65,65,65,65,65,66,66,66,66,66,68,68,68,68,68,75,75,75,75,75,84,84,84,84,84,84,84,84,84,84,86,86,86,86,86,88,88,88,88,88,88,88,88,88,88,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,117,117,117,119,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,140,140,140,141,142,142,142,142,142,142,143,143,143,143,148,148,148,148,150,150,150,152],"e":true},"l":{"w":"fillin","s":"lin","c":{},"d":[160],"e":true}},"d":[],"e":false},"n":{"w":"fin","s":"n","c":{"i":{"w":"finite","s":"ite","c":{},"d":[42],"e":true},"a":{"w":"final","s":"al","c":{"l":{"w":"finally","s":"ly","c":{},"d":[43,43,127],"e":true}},"d":[43,45,45,167],"e":true},"d":{"w":"find","s":"d","c":{"s":{"w":"finds","s":"s","c":{},"d":[45,45],"e":true},"i":{"w":"finding","s":"ing","c":{},"d":[127],"e":true}},"d":[117,118,142,150],"e":true}},"d":[],"e":false},"e":{"w":"field","s":"eld","c":{"t":{"w":"fieldtypedescription","s":"typedescription","c":{"t":{"w":"fieldtypedescriptiont","s":"t","c":{"h":{"w":"fieldtypedescriptionthreads","s":"hreads","c":{},"d":[55,56],"e":true},"y":{"w":"fieldtypedescriptiontype","s":"ype","c":{},"d":[66],"e":true}},"d":[],"e":false},"m":{"w":"fieldtypedescriptionm","s":"m","c":{"a":{"w":"fieldtypedescriptionma","s":"a","c":{"t":{"w":"fieldtypedescriptionmatch_cnt","s":"tch_cnt","c":{},"d":[57],"e":true},"x":{"w":"fieldtypedescriptionmax_retry","s":"x_retry","c":{},"d":[111],"e":true}},"d":[],"e":false},"o":{"w":"fieldtypedescriptionmode","s":"ode","c":{},"d":[73],"e":true}},"d":[],"e":false},"l":{"w":"fieldtypedescriptionl","s":"l","c":{"o":{"w":"fieldtypedescriptionlogging_level","s":"ogging_level","c":{},"d":[63],"e":true},"i":{"w":"fieldtypedescriptionlink_config","s":"ink_config","c":{},"d":[97],"e":true}},"d":[],"e":false},"c":{"w":"fieldtypedescriptionc","s":"c","c":{"u":{"w":"fieldtypedescriptioncurve","s":"urve","c":{},"d":[64],"e":true},"s":{"w":"fieldtypedescriptioncsv_null_rep","s":"sv_null_rep","c":{},"d":[68],"e":true},"e":{"w":"fieldtypedescriptioncertificate_path","s":"ertificate_path","c":{},"d":[112],"e":true}},"d":[],"e":false},"k":{"w":"fieldtypedescriptionkey","s":"key","c":{"s":{"w":"fieldtypedescriptionkeys_unique","s":"s_unique","c":{},"d":[65],"e":true}},"d":[106],"e":true},"b":{"w":"fieldtypedescriptionb","s":"b","c":{"u":{"w":"fieldtypedescriptionbucket_size","s":"ucket_size","c":{},"d":[67,72],"e":true},"o":{"w":"fieldtypedescriptionbob_sub_sampling","s":"ob_sub_sampling","c":{},"d":[85],"e":true}},"d":[],"e":false},"p":{"w":"fieldtypedescriptionp","s":"p","c":{"r":{"w":"fieldtypedescriptionprotocol","s":"rotocol","c":{"_":{"w":"fieldtypedescriptionprotocol_config","s":"_config","c":{},"d":[70],"e":true}},"d":[69],"e":true},"s":{"w":"fieldtypedescriptionpsi_type","s":"si_type","c":{},"d":[84,87],"e":true},"a":{"w":"fieldtypedescriptionpa","s":"a","c":{"t":{"w":"fieldtypedescriptionpath","s":"th","c":{},"d":[86,88],"e":true},"r":{"w":"fieldtypedescriptionpartiesrepeated","s":"rtiesrepeated","c":{},"d":[101],"e":true}},"d":[],"e":false},"o":{"w":"fieldtypedescriptionport","s":"ort","c":{"s":{"w":"fieldtypedescriptionportsrepeated","s":"srepeated","c":{},"d":[100],"e":true},"_":{"w":"fieldtypedescriptionport_name","s":"_name","c":{},"d":[104],"e":true}},"d":[],"e":false}},"d":[],"e":false},"e":{"w":"fieldtypedescriptionenabled","s":"enabled","c":{},"d":[71],"e":true},"o":{"w":"fieldtypedescriptionoriginal_count","s":"original_count","c":{},"d":[89],"e":true},"n":{"w":"fieldtypedescriptionname","s":"name","c":{},"d":[102,103],"e":true},"s":{"w":"fieldtypedescriptionsf_psi_config_mapmap","s":"sf_psi_config_mapmap","c":{},"d":[105],"e":true},"i":{"w":"fieldtypedescriptionid","s":"id","c":{},"d":[109,110],"e":true}},"d":[55,55,56,56,57,57,63,63,64,64,65,65,66,66,67,67,68,68,69,69,70,70,71,71,72,72,73,73,84,84,85,85,86,86,87,87,88,88,89,89,97,97,100,100,101,101,102,102,103,103,104,104,105,105,106,106,109,109,110,110,111,111,112,112],"e":true},"s":{"w":"fields","s":"s","c":{},"d":[86,86,86,86,86,86,86,86,86,86,88,88,88,88,88,147],"e":true}},"d":[42,55,55,56,56,57,57,59,59,59,59,63,63,64,64,65,65,66,66,67,67,68,68,69,69,70,70,71,71,72,72,73,73,80,80,80,80,84,84,85,85,86,86,87,87,88,88,89,89,93,93,93,93,97,97,100,100,101,101,102,102,103,103,104,104,105,105,106,106,109,109,109,110,110,111,111,112,112,114,114,114,114,143],"e":true},"r":{"w":"first","s":"rst","c":{},"d":[44,45,45,56,56,56,56,56,56,56,56,56,56,79,79,79,79,79,111,111,111,111,111,131,141,141,162],"e":true},"t":{"w":"fit","s":"t","c":{},"d":[48,48,48,48,48,48,48,48,48,48,56,56,56,56,56,67,67,67,67,67,72,72,72,72,72],"e":true}},"d":[],"e":false},"l":{"w":"fl","s":"l","c":{"a":{"w":"fla","s":"a","c":{"k":{"w":"flakiness","s":"kiness","c":{},"d":[18,18],"e":true},"w":{"w":"flaw","s":"w","c":{},"d":[49],"e":true}},"d":[],"e":false},"o":{"w":"flo","s":"o","c":{"o":{"w":"floor","s":"or","c":{},"d":[48,48,48,48,48],"e":true},"a":{"w":"floatfloatfloatfloat","s":"atfloatfloatfloat","c":{},"d":[59,59,80,80,93,93,114,114],"e":true}},"d":[],"e":false},"y":{"w":"flying","s":"ying","c":{},"d":[109],"e":true}},"d":[],"e":false},"a":{"w":"fa","s":"a","c":{"i":{"w":"fail","s":"il","c":{"u":{"w":"failure","s":"ure","c":{"u":{"w":"failureunsupportedsupported","s":"unsupportedsupported","c":{"s":{"w":"failureunsupportedsupportedsupport","s":"support","c":{},"d":[22,22],"e":true}},"d":[22],"e":true},"s":{"w":"failures","s":"s","c":{},"d":[71],"e":true}},"d":[21,21,22,22,56,56,56,56,56],"e":true},"e":{"w":"failed","s":"ed","c":{},"d":[71],"e":true},"s":{"w":"fails","s":"s","c":{},"d":[148],"e":true}},"d":[],"e":false},"r":{"w":"far","s":"r","c":{},"d":[42],"e":true},"s":{"w":"fast","s":"st","c":{"e":{"w":"faster","s":"er","c":{},"d":[42,50,50],"e":true}},"d":[50,50,50,50,50,50,50,50,50,50,76,76,76,76,76,92,92,92,92,92,92,92,92,92,92],"e":true},"n":{"w":"fan","s":"n","c":{},"d":[50,50],"e":true},"l":{"w":"false","s":"lse","c":{},"d":[65,65,65,65,65,109,109],"e":true},"q":{"w":"faq","s":"q","c":{},"d":[115,115,115,115],"e":true},"m":{"w":"famous","s":"mous","c":{},"d":[139],"e":true},"v":{"w":"favorable","s":"vorable","c":{},"d":[159],"e":true}},"d":[],"e":false},"s":{"w":"fs","s":"s","c":{},"d":[44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44],"e":true},"_":{"w":"f_","s":"_","c":{},"d":[44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44],"e":true},"v":{"w":"fv12","s":"v12","c":{},"d":[48,48],"e":true},"t":{"w":"ft","s":"t","c":{},"d":[48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48],"e":true},"h":{"w":"fhe","s":"he","c":{},"d":[48,48,48,48,48,48,48,48,48,48,48,48,48],"e":true},"c":{"w":"fc2018","s":"c2018","c":{},"d":[50,50],"e":true}},"d":[44,44,44,44,44,44,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,50,50,50,50],"e":true},"w":{"w":"w","s":"w","c":{"h":{"w":"wh","s":"h","c":{"i":{"w":"whi","s":"i","c":{"c":{"w":"which","s":"ch","c":{},"d":[1,45,55,55,55,55,55,145,145,147],"e":true},"l":{"w":"while","s":"le","c":{},"d":[56,56,56,56,56,147,147],"e":true}},"d":[],"e":false},"y":{"w":"why","s":"y","c":{},"d":[45],"e":true},"e":{"w":"whe","s":"e","c":{"t":{"w":"whether","s":"ther","c":{},"d":[45,56,56,56,56,56,56,56,56,56,70,70,70,70,70,84,84,86,86,87,87,88,88],"e":true},"r":{"w":"where","s":"re","c":{},"d":[48,49,49,55,55,55,55,55],"e":true},"n":{"w":"when","s":"n","c":{},"d":[84,84,84,84,84,87,87,87,87,87,89,89,89,89,89,109,109,109,145,147,147],"e":true}},"d":[],"e":false},"a":{"w":"what","s":"at","c":{},"d":[147,147,147,147,147,147,147,147,147,147,147,147],"e":true},"o":{"w":"who","s":"o","c":{},"d":[147],"e":true}},"d":[],"e":false},"i":{"w":"wi","s":"i","c":{"t":{"w":"with","s":"th","c":{"o":{"w":"without","s":"out","c":{},"d":[45,45,45,164],"e":true}},"d":[4,4,4,4,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,42,42,42,43,43,45,45,45,48,48,48,48,48,48,48,48,48,48,48,48,49,49,50,50,50,50,50,50,76,76,76,76,76,91,91,91,91,91,92,92,92,92,92,92,92,92,92,92,97,97,117,127,127,132,132,135,142,143,145,148,148,148,148,148,150,158,163,163,165],"e":true},"l":{"w":"will","s":"ll","c":{},"d":[39,55,55,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,109,109,109,111,111,111,111,111,117,117,142,143,145,146,147,148,149,150,150],"e":true},"d":{"w":"widely","s":"dely","c":{},"d":[42,159],"e":true},"n":{"w":"window","s":"ndow","c":{"s":{"w":"windowsing","s":"sing","c":{},"d":[48,48,48,48,48,48,48],"e":true}},"d":[109],"e":true},"s":{"w":"wis","s":"s","c":{"e":{"w":"wise","s":"e","c":{"l":{"w":"wisely","s":"ly","c":{},"d":[109],"e":true}},"d":[48,48,48,48,48,48],"e":true},"h":{"w":"wish","s":"h","c":{},"d":[127,147],"e":true}},"d":[],"e":false}},"d":[],"e":false},"e":{"w":"we","s":"e","c":{"l":{"w":"wel","s":"l","c":{"c":{"w":"welcome","s":"come","c":{},"d":[22],"e":true},"l":{"w":"well","s":"l","c":{},"d":[139,142],"e":true}},"d":[],"e":false},"a":{"w":"weaken","s":"aken","c":{},"d":[45],"e":true},"i":{"w":"wei","s":"i","c":{},"d":[50,50],"e":true},"n":{"w":"weng","s":"ng","c":{},"d":[50,50],"e":true}},"d":[22,22,25,38,39,43,43,43,43,44,45,45,45,45,56,115,117,118,118,118,118,119,120,122,123,127,127,127,129,137,139,139,139,142,142,145,145,145,146,147,147,147,148,148,150,151,152,155,157,161,167],"e":true},"a":{"w":"wa","s":"a","c":{"r":{"w":"war","s":"r","c":{"p":{"w":"warps","s":"ps","c":{},"d":[22,22,22,22,22,22,22,22,22,22],"e":true},"n":{"w":"warn","s":"n","c":{"i":{"w":"warning","s":"ing","c":{},"d":[55,55,55,55,55,56,56,56,56,56,167],"e":true}},"d":[63,63],"e":true}},"d":[],"e":false},"n":{"w":"wan","s":"n","c":{"t":{"w":"want","s":"t","c":{},"d":[43,45,127,139],"e":true},"g":{"w":"wang","s":"g","c":{},"d":[50,50,50,50],"e":true}},"d":[],"e":false},"y":{"w":"way","s":"y","c":{},"d":[44,45,45,167],"e":true},"i":{"w":"wait","s":"it","c":{"_":{"w":"wait_timeout_ms","s":"_timeout_ms","c":{},"d":[109],"e":true}},"d":[109,109,109,109],"e":true}},"d":[50,50],"e":true},"w":{"w":"www","s":"ww","c":{},"d":[28,28,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,31,31,31,31,31,31,31,31,31,31,31,31,50,50,50,50,50,50,91,91,91,91,91,91],"e":true},"r":{"w":"wr","s":"r","c":{"a":{"w":"wrap","s":"ap","c":{"s":{"w":"wraps","s":"s","c":{},"d":[48],"e":true},"p":{"w":"wrapper","s":"per","c":{},"d":[139],"e":true}},"d":[],"e":false},"i":{"w":"writ","s":"it","c":{"e":{"w":"write","s":"e","c":{},"d":[55,55,55,55,55,56,56,56,56,56],"e":true},"t":{"w":"written","s":"ten","c":{},"d":[55,55,55,55,55],"e":true}},"d":[],"e":false}},"d":[],"e":false},"o":{"w":"wo","s":"o","c":{"l":{"w":"wolverine","s":"lverine","c":{},"d":[50,50],"e":true},"u":{"w":"would","s":"uld","c":{},"d":[56,56,56,56,56,71,78,78,78,78,78,142],"e":true},"r":{"w":"wor","s":"r","c":{"l":{"w":"world","s":"ld","c":{},"d":[109,109,109,109,109],"e":true},"k":{"w":"work","s":"k","c":{"i":{"w":"working","s":"ing","c":{},"d":[115],"e":true}},"d":[109,109],"e":true}},"d":[],"e":false},"n":{"w":"wondershaper","s":"ndershaper","c":{},"d":[166,166],"e":true}},"d":[],"e":false}},"d":[],"e":false},"n":{"w":"n","s":"n","c":{"1":{"w":"n1","s":"1","c":{},"d":[42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47],"e":true},"2":{"w":"n2","s":"2","c":{},"d":[42,42,42,42,42,42,42,42,42,42,47,47,47,47,47,47,47,47,47,47],"e":true},"o":{"w":"no","s":"o","c":{"t":{"w":"not","s":"t","c":{"e":{"w":"note","s":"e","c":{"s":{"w":"notes","s":"s","c":{},"d":[59,59,80,80,93,93,114,114],"e":true}},"d":[3,3,43,43,45,45,56,118,120,122,127,127],"e":true},"i":{"w":"notice","s":"ice","c":{"d":{"w":"noticed","s":"d","c":{},"d":[92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92],"e":true}},"d":[92,92,92,92,92,92,92,92,92,92,92,92,92,92,92],"e":true}},"d":[22,22,43,45,48,48,48,48,48,49,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,64,64,64,64,64,65,65,65,65,65,67,67,67,67,67,67,67,67,67,67,68,68,68,68,68,70,70,70,70,70,72,72,72,72,72,72,72,72,72,72,73,73,73,73,73,89,89,89,89,89,127,127,127,139,142,142,142,143,145,147,147,147,159],"e":true},"i":{"w":"noise","s":"ise","c":{"s":{"w":"noises","s":"s","c":{},"d":[45],"e":true},"d":{"w":"noised","s":"d","c":{},"d":[45],"e":true}},"d":[],"e":false},"n":{"w":"non","s":"n","c":{"c":{"w":"nonce","s":"ce","c":{"_":{"w":"nonce_byte_count","s":"_byte_count","c":{},"d":[56,56,56,56,56],"e":true}},"d":[56,56,56,56,56],"e":true},"e":{"w":"none","s":"e","c":{},"d":[57,57,63,63,64,64,66,66,69,69,69,69,70,70,71,71,72,72,73,73,73,73,73,73,75,75,76,76,77,77,77,77,77,77,77,77,77,77,77,77,78,78,79,79,89,89,89,89,91,91,92,92,92,92,92,92,97,97,105,105,106,106,106,106,110,110,110,110],"e":true}},"d":[45,45,50,50,50,50],"e":true},"w":{"w":"now","s":"w","c":{},"d":[49,109],"e":true},"v":{"w":"nov","s":"v","c":{"e":{"w":"november","s":"ember","c":{},"d":[50,50,50,50,50,50],"e":true}},"d":[50,50],"e":true}},"d":[56,56,56,56,56,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92],"e":true},"e":{"w":"ne","s":"e","c":{"w":{"w":"new","s":"w","c":{},"d":[3,3,3,49,50,50,91,91,91,91,91],"e":true},"e":{"w":"need","s":"ed","c":{"e":{"w":"needed","s":"ed","c":{},"d":[48,48,48,48,55,55,55,55,55,84,84,84,84,84,87,87,87,87,87],"e":true},"_":{"w":"need_sort","s":"_sort","c":{},"d":[88,88,88,88,88],"e":true}},"d":[37,109,118,118,118,120,122,130,151],"e":true},"c":{"w":"necessary","s":"cessary","c":{},"d":[43,127],"e":true},"g":{"w":"negative","s":"gative","c":{},"d":[59,59,59,59,59,59,59,59,59,59,59,59,80,80,80,80,80,80,80,80,80,80,80,80,93,93,93,93,93,93,93,93,93,93,93,93,114,114,114,114,114,114,114,114,114,114,114,114],"e":true},"t":{"w":"network","s":"twork","c":{},"d":[71,97,97,97,97,97,123,147,155],"e":true},"x":{"w":"next","s":"xt","c":{},"d":[118],"e":true}},"d":[],"e":false},"u":{"w":"nu","s":"u","c":{"l":{"w":"null","s":"ll","c":{"_":{"w":"null_rep","s":"_rep","c":{},"d":[4,4],"e":true}},"d":[68,68,68,68,68,68,68],"e":true},"m":{"w":"number","s":"mber","c":{"s":{"w":"numbers","s":"s","c":{"e":{"w":"numbersealpir","s":"ealpir","c":{},"d":[136],"e":true}},"d":[59,59,59,59,59,59,59,59,80,80,80,80,80,80,80,80,93,93,93,93,93,93,93,93,114,114,114,114,114,114,114,114],"e":true},"p":{"w":"numberpsitypecode","s":"psitypecode","c":{"e":{"w":"numberpsitypecodeecdh","s":"ecdh","c":{},"d":[159],"e":true}},"d":[159,159],"e":true}},"d":[42,48,48,48,48,48,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,67,67,67,67,67,72,72,72,72,72,75,75,76,76,77,77,78,78,79,79,91,91,92,92,103,103,136,136,136,136,145,159,159],"e":true}},"d":[],"e":false},"i":{"w":"ni","s":"i","c":{"n":{"w":"ninja","s":"nja","c":{},"d":[37,37],"e":true},"v":{"w":"niv","s":"v","c":{},"d":[50,50],"e":true},"c":{"w":"nicolas","s":"colas","c":{},"d":[50,50],"e":true}},"d":[44,44],"e":true},"a":{"w":"na","s":"a","c":{"s":{"w":"nasm","s":"sm","c":{},"d":[37,37],"e":true},"m":{"w":"name","s":"me","c":{"n":{"w":"namenumberdescription","s":"numberdescription","c":{"i":{"w":"namenumberdescriptioni","s":"i","c":{"o":{"w":"namenumberdescriptionio_type_unspecified0noneio_type_file_csv1local","s":"o_type_unspecified0noneio_type_file_csv1local","c":{},"d":[75],"e":true},"n":{"w":"namenumberdescriptioninvalid_psi_type0noneecdh_psi_2pc1noticed","s":"nvalid_psi_type0noneecdh_psi_2pc1noticed","c":{},"d":[92],"e":true}},"d":[],"e":false},"p":{"w":"namenumberdescriptionprotocol_unspecified0noneprotocol_ecdh1","s":"protocol_unspecified0noneprotocol_ecdh1","c":{},"d":[76],"e":true},"a":{"w":"namenumberdescriptionadvanced_join_type_unspecified0noneadvanced_join_type_inner_join1noneadvanced_join_type_left_join2noneadvanced_join_type_right_join3noneadvanced_join_type_full_join4noneadvanced_join_type_difference5none","s":"advanced_join_type_unspecified0noneadvanced_join_type_inner_join1noneadvanced_join_type_left_join2noneadvanced_join_type_right_join3noneadvanced_join_type_full_join4noneadvanced_join_type_difference5none","c":{},"d":[77],"e":true},"r":{"w":"namenumberdescriptionrole_unspecified0nonerole_receiver1receiver","s":"role_unspecified0nonerole_receiver1receiver","c":{},"d":[78],"e":true},"m":{"w":"namenumberdescriptionmode_unspecified0nonemode_offline_gen_cache1servers","s":"mode_unspecified0nonemode_offline_gen_cache1servers","c":{},"d":[79],"e":true},"c":{"w":"namenumberdescriptioncurve_invalid_type0nonecurve_255191daniel","s":"curve_invalid_type0nonecurve_255191daniel","c":{},"d":[91],"e":true}},"d":[75,75,76,76,77,77,78,78,79,79,91,91,92,92],"e":true},"d":{"w":"named","s":"d","c":{},"d":[103,103,103,103,103,117,150],"e":true},"l":{"w":"namelocationdescription","s":"locationdescription","c":{"r":{"w":"namelocationdescriptionreceiver","s":"receiver","c":{},"d":[130],"e":true}},"d":[130,130],"e":true}},"d":[75,75,76,76,77,77,78,78,79,79,91,91,92,92,102,102,102,102,102,102,103,103,103,103,103,103,103,103,103,104,104,130,130],"e":true},"t":{"w":"national","s":"tional","c":{},"d":[91,91,91,91,91],"e":true}},"d":[],"e":false},"_":{"w":"n_","s":"_","c":{"1":{"w":"n_1","s":"1","c":{},"d":[42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47],"e":true},"2":{"w":"n_2","s":"2","c":{},"d":[42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47],"e":true}},"d":[],"e":false},"s":{"w":"ns","s":"s","c":{},"d":[48,48,48,48,48],"e":true},"r":{"w":"nr","s":"r","c":{},"d":[48,48,48,48,48,48,48,48,48,48,48,48,48,48,48],"e":true}},"d":[42,42,42,42,42,42,42,42,42,42,44,44,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,50,50,50,50,50,50,50,50,50,50,92,92,92,92,92,92,92,92,92,92],"e":true},"b":{"w":"b","s":"b","c":{"u":{"w":"bu","s":"u","c":{"g":{"w":"bug","s":"g","c":{"f":{"w":"bugfix","s":"fix","c":{},"d":[3,3,3,3,6,6,6,6,7,7,11,11,11,11,14,14,18,18,18,18,18,18,19,19,20,20,20,20],"e":true}},"d":[3,3,3],"e":true},"i":{"w":"buil","s":"il","c":{"d":{"w":"build","s":"d","c":{"i":{"w":"building","s":"ing","c":{},"d":[26,26,38,150],"e":true}},"d":[7,7,22,22,48,117,132,163],"e":true},"t":{"w":"built","s":"t","c":{},"d":[47],"e":true}},"d":[],"e":false},"c":{"w":"bucket","s":"cket","c":{"i":{"w":"bucketized","s":"ized","c":{},"d":[8,8,56,56,56,56,56,139,139],"e":true},"s":{"w":"buckets","s":"s","c":{},"d":[56,56,56,56,56,67,67,67,67,67,72,72,72,72,72,145,145,145],"e":true},"_":{"w":"bucket_","s":"_","c":{"s":{"w":"bucket_size","s":"size","c":{},"d":[67,67,67,67,67,67,67,67,67,72,72,72,72,72,72,72,72,72,84,84,84,84,84],"e":true},"n":{"w":"bucket_num","s":"num","c":{},"d":[145,145,145,145,145,145,145,145,145],"e":true}},"d":[],"e":false},"p":{"w":"bucketpsiconfig","s":"psiconfig","c":{"p":{"w":"bucketpsiconfigplease","s":"please","c":{},"d":[97,97,97],"e":true}},"d":[82,82,82,82,82,94,97,97,97,97],"e":true}},"d":[56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,67,67,67,67,67,67,67,67,67,67,72,72,72,72,72,72,72,72,72,72,84,84,84,84,84,84,127,145,145,145,145,145,145,147,147],"e":true},"f":{"w":"buffer","s":"ffer","c":{"s":{"w":"buffers","s":"s","c":{},"d":[51],"e":true}},"d":[18,18,19,19,165,165],"e":true},"t":{"w":"but","s":"t","c":{},"d":[42,42,49,145],"e":true},"n":{"w":"bundle","s":"ndle","c":{"s":{"w":"bundles","s":"s","c":{"3":{"w":"bundles3queryparamsps_low_degreeany","s":"3queryparamsps_low_degreeany","c":{},"d":[48,48],"e":true}},"d":[48,48,48,48,48,48,48,48,48,48,48,48],"e":true}},"d":[48,48,48,48,48,48,48,48,48,48,48,48],"e":true},"s":{"w":"busy","s":"sy","c":{},"d":[109,109],"e":true}},"d":[],"e":false},"e":{"w":"be","s":"e","c":{"h":{"w":"behavior","s":"havior","c":{},"d":[20,20],"e":true},"n":{"w":"benchmark","s":"nchmark","c":{},"d":[40,115,115,115,115,115,115,115,115,116,123,127,127,149,155,157,164,165,165],"e":true},"r":{"w":"ber","s":"r","c":{"0":{"w":"ber06","s":"06","c":{},"d":[42,42,42,42,42,42,42,42,42],"e":true},"n":{"w":"bern","s":"n","c":{"s":{"w":"bernstein","s":"stein","c":{},"d":[50,50,91,91,91,91,91],"e":true},"a":{"w":"bernardo","s":"ardo","c":{},"d":[50,50],"e":true},"o":{"w":"bernoulli_distribution","s":"oulli_distribution","c":{},"d":[85,85,85,85,85],"e":true}},"d":[],"e":false}},"d":[],"e":false},"t":{"w":"bet","s":"t","c":{"w":{"w":"between","s":"ween","c":{},"d":[42,47,48,48,48,48,48,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111],"e":true},"a":{"w":"beta","s":"a","c":{"h":{"w":"betah","s":"h","c":{},"d":[42,42,42,42,42,42,42,42,43,43,43,43],"e":true}},"d":[42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48],"e":true}},"d":[],"e":false},"g":{"w":"begin","s":"gin","c":{"n":{"w":"beginning","s":"ning","c":{},"d":[43],"e":true},"s":{"w":"begins","s":"s","c":{},"d":[109],"e":true}},"d":[109,109],"e":true},"l":{"w":"below","s":"low","c":{},"d":[45],"e":true},"c":{"w":"because","s":"cause","c":{},"d":[127],"e":true}},"d":[4,4,4,4,4,4,47,48,48,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,67,67,67,67,67,70,70,70,70,70,72,72,72,72,72,73,73,73,73,73,103,103,103,103,103,103,103,103,103,103,109,109,111,111,111,111,111,127,139,140,141,141,141,141,141,141,142,142,143,145,147,159,159,167],"e":true},"a":{"w":"ba","s":"a","c":{"t":{"w":"batch","s":"tch","c":{"_":{"w":"batch_size","s":"_size","c":{},"d":[5,5,5,64,64,64],"e":true},"i":{"w":"batching","s":"ing","c":{},"d":[48,48,48,48,48],"e":true},"e":{"w":"batched","s":"ed","c":{},"d":[50,50,76,76,76,76,76,92,92,92,92,92],"e":true}},"d":[55,55,55,55,55],"e":true},"z":{"w":"bazel","s":"zel","c":{"i":{"w":"bazelisk","s":"isk","c":{"r":{"w":"bazeliskrc","s":"rc","c":{},"d":[37,37],"e":true}},"d":[37],"e":true}},"d":[37,37,37,38,117,117,132,150,163],"e":true},"c":{"w":"back","s":"ck","c":{"e":{"w":"backes","s":"es","c":{},"d":[50,50],"e":true}},"d":[39,42,45,45],"e":true},"s":{"w":"bas","s":"s","c":{"e":{"w":"base","s":"e","c":{"d":{"w":"based","s":"d","c":{},"d":[41,41,41,41,41,41,41,41,42,42,42,43,44,44,47,48,49,50,50,91,91,91,91,91,92,92,92,92,92,92,92,92,92,92,159],"e":true},"s":{"w":"bases","s":"s","c":{},"d":[45,92,92,92,92,92],"e":true}},"d":[],"e":false},"i":{"w":"basic","s":"ic","c":{},"d":[47,101,101,102],"e":true}},"d":[],"e":false},"l":{"w":"bal","s":"l","c":{"a":{"w":"balance","s":"ance","c":{},"d":[42],"e":true},"d":{"w":"baldi","s":"di","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"r":{"w":"bar","s":"r","c":{"k":{"w":"bark","s":"k","c":{},"d":[44,44,44,44,44,159],"e":true},"o":{"w":"baronio","s":"onio","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"d":{"w":"bad","s":"d","c":{},"d":[147],"e":true},"n":{"w":"bandwidth","s":"ndwidth","c":{"p":{"w":"bandwidthphase2","s":"phase2","c":{},"d":[166,166,166],"e":true}},"d":[159,166,166,166,166],"e":true}},"d":[],"e":false},"c":{"w":"bc","s":"c","c":{"2":{"w":"bc22","s":"22","c":{},"d":[6,6,9,9],"e":true},"g":{"w":"bcgi","s":"gi","c":{},"d":[49,49],"e":true}},"d":[],"e":false},"i":{"w":"bi","s":"i","c":{"n":{"w":"bin","s":"n","c":{"a":{"w":"binar","s":"ar","c":{"i":{"w":"binaries","s":"ies","c":{},"d":[22,22],"e":true},"y":{"w":"binary","s":"y","c":{},"d":[22,22,84,84,84,84,84,132,132,163,163],"e":true}},"d":[],"e":false},"d":{"w":"binding","s":"ding","c":{"s":{"w":"bindings","s":"s","c":{},"d":[22,22,22,22,22],"e":true},"w":{"w":"bindingwith","s":"with","c":{},"d":[22,22,22],"e":true}},"d":[22,22],"e":true},"i":{"w":"bini","s":"i","c":{"b":{"w":"binibin_i","s":"bin_i","c":{"b":{"w":"binibin_ibini","s":"bini","c":{},"d":[44,44,44,44],"e":true}},"d":[44,44,44],"e":true}},"d":[44,44,44],"e":true},"_":{"w":"bin_i","s":"_i","c":{},"d":[44],"e":true},"s":{"w":"bins","s":"s","c":{},"d":[48,48,48,48,48,48],"e":true}},"d":[44,44,44,44,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,117,117,150],"e":true},"t":{"w":"bit","s":"t","c":{"s":{"w":"bits","s":"s","c":{},"d":[44,48,48,48,48,48],"e":true}},"d":[59,59,80,80,93,93,114,114],"e":true},"l":{"w":"billion","s":"llion","c":{},"d":[127],"e":true}},"d":[44],"e":true},"o":{"w":"bo","s":"o","c":{"b":{"w":"bob","s":"b","c":{"_":{"w":"bob_sub_sampling","s":"_sub_sampling","c":{},"d":[85,85,85,85],"e":true}},"d":[42,42,42,42,42,42,42,42,42,42,42,42,43,43,43,43,43,43,43,43,43,43,43,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,85,85,109,109,109,155],"e":true},"t":{"w":"bot","s":"t","c":{"h":{"w":"both","s":"h","c":{},"d":[43,45,73,73,73,73,73,77,77,147,147,147,148,148],"e":true},"e":{"w":"botelho","s":"elho","c":{},"d":[50,50],"e":true},"t":{"w":"bottleneck","s":"tleneck","c":{},"d":[159,159],"e":true}},"d":[],"e":false},"y":{"w":"boyle","s":"yle","c":{},"d":[50,50,50,50,50,50,50,50,50,50],"e":true},"o":{"w":"bool","s":"ol","c":{"e":{"w":"boolean","s":"ean","c":{},"d":[50,50],"e":true},"d":{"w":"booldo","s":"do","c":{},"d":[55,55,55,56,56,56,111,111,111],"e":true},"m":{"w":"boolmust","s":"must","c":{},"d":[55,55,55],"e":true},"w":{"w":"boolwhether","s":"whether","c":{},"d":[56,56,56,56,56,56,84,84,84,86,86,86,87,87,87,88,88,88],"e":true},"b":{"w":"boolboolbooleanboolean","s":"boolbooleanboolean","c":{},"d":[59,59,80,80,93,93,114,114],"e":true},"k":{"w":"boolkeys","s":"keys","c":{},"d":[65,65,65],"e":true},"r":{"w":"boolreveal","s":"reveal","c":{},"d":[69,69,69],"e":true},"i":{"w":"boolit","s":"it","c":{},"d":[70,70,70,73,73,73],"e":true},"c":{"w":"boolcheck","s":"check","c":{},"d":[70,70,70],"e":true},"n":{"w":"boolnone","s":"none","c":{"f":{"w":"boolnonefolder","s":"folder","c":{},"d":[71,71],"e":true},"c":{"w":"boolnoneclient_get_result","s":"client_get_result","c":{},"d":[73,73],"e":true},"d":{"w":"boolnonedisable_alignment","s":"disable_alignment","c":{},"d":[73,73],"e":true}},"d":[71,72,72,72,73,73],"e":true}},"d":[55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,65,65,65,65,69,69,69,69,70,70,70,70,70,70,70,70,71,71,71,71,72,72,72,72,73,73,73,73,73,73,73,73,73,73,73,73,84,84,84,84,86,86,86,86,87,87,87,87,88,88,88,88,109,109,111,111,111,111],"e":true}},"d":[],"e":false},"y":{"w":"by","s":"y","c":{"b":{"w":"byb","s":"b","c":{},"d":[45,45,45,45,45,45,45,45],"e":true},"_":{"w":"by_","s":"_","c":{},"d":[45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45],"e":true},"t":{"w":"bytes","s":"tes","c":{"m":{"w":"bytesmay","s":"may","c":{},"d":[59,59,80,80,93,93,114,114],"e":true}},"d":[56,56,56,56,56,59,59,59,59,59,59,59,59,59,59,80,80,80,80,80,80,80,80,80,80,93,93,93,93,93,93,93,93,93,93,114,114,114,114,114,114,114,114,114,114],"e":true}},"d":[45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,55,55,55,55,55,56,56,56,56,56,88,88,88,88,88,102,102,102,102,102,102,102,102,102,102,118,139,147,165,166],"e":true},"b":{"w":"bb","s":"b","c":{"b":{"w":"bbb","s":"b","c":{},"d":[45,45,45,45],"e":true},"c":{"w":"bbcd","s":"cd","c":{},"d":[47,47],"e":true}},"d":[45,45,45],"e":true},"l":{"w":"bl","s":"l","c":{"i":{"w":"blind","s":"ind","c":{},"d":[47,47,47,47],"e":true},"a":{"w":"blazing","s":"azing","c":{},"d":[50,50,76,76,92,92,92,92,92],"e":true},"o":{"w":"blo","s":"o","c":{"c":{"w":"block","s":"ck","c":{},"d":[109],"e":true},"b":{"w":"blob","s":"b","c":{},"d":[142,142],"e":true}},"d":[],"e":false}},"d":[],"e":false},"f":{"w":"bfv","s":"fv","c":{},"d":[48],"e":true},"r":{"w":"br","s":"r","c":{"o":{"w":"bro","s":"o","c":{"a":{"w":"broadcast","s":"adcast","c":{"_":{"w":"broadcast_result","s":"_result","c":{},"d":[69,69,69,84,84,84,84,84,87,87,87,87,87,147,147,147,147,147,147,147,147,147,147,147,147,147,147],"e":true}},"d":[84,84,84,84,84,87,87,87,87,87],"e":true},"u":{"w":"brought","s":"ught","c":{},"d":[139],"e":true}},"d":[],"e":false},"p":{"w":"brpc","s":"pc","c":{"_":{"w":"brpc_channel_","s":"_channel_","c":{"p":{"w":"brpc_channel_protocol","s":"protocol","c":{},"d":[109],"e":true},"c":{"w":"brpc_channel_connection_type","s":"connection_type","c":{},"d":[109],"e":true}},"d":[],"e":false}},"d":[109,109,111,111,111,111,111],"e":true}},"d":[],"e":false}},"d":[42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,44,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,50,50,50,50,92,92,92,92,92],"e":true},"c":{"w":"c","s":"c","c":{"h":{"w":"ch","s":"h","c":{"a":{"w":"cha","s":"a","c":{"n":{"w":"chan","s":"n","c":{"g":{"w":"change","s":"ge","c":{"s":{"w":"changes","s":"s","c":{},"d":[3,3,3],"e":true},"d":{"w":"changed","s":"d","c":{},"d":[109],"e":true}},"d":[],"e":false},"n":{"w":"channel","s":"nel","c":{},"d":[109,109,109,109,109,109],"e":true}},"d":[],"e":false},"r":{"w":"charlie","s":"rlie","c":{},"d":[43,43,43,43,43,43,43,43,43,43,43],"e":true},"l":{"w":"challis","s":"llis","c":{},"d":[48,48,48,48,48],"e":true},"i":{"w":"chain","s":"in","c":{},"d":[112,112,112,112,112],"e":true}},"d":[],"e":false},"e":{"w":"che","s":"e","c":{"c":{"w":"check","s":"ck","c":{"_":{"w":"check_","s":"_","c":{"d":{"w":"check_duplicates","s":"duplicates","c":{},"d":[20,20],"e":true},"h":{"w":"check_hash_digest","s":"hash_digest","c":{},"d":[70,70,70,70,70],"e":true}},"d":[],"e":false},"p":{"w":"checkpoint","s":"point","c":{"s":{"w":"checkpoints","s":"s","c":{},"d":[148,148],"e":true}},"d":[20,20,71,71,71,71,71,71],"e":true}},"d":[14,14,20,20,20,20,25,28,29,31,32,33,37,56,70,70,86,86,86,86,86,94,94,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,129,130,130,133,134,137,139,142,142,144,159,160,160,161],"e":true},"n":{"w":"chen","s":"n","c":{},"d":[50,50,50,50],"e":true}},"d":[],"e":false},"o":{"w":"cho","s":"o","c":{"s":{"w":"chosen","s":"sen","c":{},"d":[42],"e":true},"o":{"w":"choose","s":"ose","c":{},"d":[48,48,48,48,48,109,142],"e":true}},"d":[],"e":false},"l":{"w":"chlr18","s":"lr18","c":{},"d":[48,48],"e":true},"i":{"w":"chinese","s":"inese","c":{},"d":[91,91,91,91,91],"e":true},"u":{"w":"chunk","s":"unk","c":{"s":{"w":"chunks","s":"s","c":{},"d":[109],"e":true},"_":{"w":"chunk_parallel_send_size","s":"_parallel_send_size","c":{},"d":[109,109],"e":true},"e":{"w":"chunked","s":"ed","c":{},"d":[109],"e":true}},"d":[109],"e":true}},"d":[],"e":false},"o":{"w":"co","s":"o","c":{"n":{"w":"con","s":"n","c":{"f":{"w":"conf","s":"f","c":{"i":{"w":"config","s":"ig","c":{"u":{"w":"configuration","s":"uration","c":{"s":{"w":"configurations","s":"s","c":{},"d":[123,155,155],"e":true}},"d":[29,29,29,29,29,29,29,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,66,71,84,87,94,94,94,94,109,130,130,134,134,139,139,142,142,160,160,160,160],"e":true},"s":{"w":"configs","s":"s","c":{},"d":[64,67,70,70,70,70,70,70,70,70,70,72,97,97,109,109,130,133,134,139,144,160],"e":true},"c":{"w":"configconfig","s":"config","c":{},"d":[130,130,130,130,130,130],"e":true},"i":{"w":"configinput","s":"input","c":{},"d":[130,130,130,130,130,130],"e":true}},"d":[3,3,6,6,11,11,14,14,55,55,55,55,55,55,55,55,55,55,56,73,73,73,109,109,109,117,119,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,133,133,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,142,142,142,147,147,148,148,148,148,150,152],"e":true},"e":{"w":"conference","s":"erence","c":{},"d":[50,50,50,50,50,50],"e":true}},"d":[],"e":false},"d":{"w":"condition","s":"dition","c":{"s":{"w":"conditions","s":"s","c":{},"d":[127],"e":true}},"d":[18,18,19,19],"e":true},"c":{"w":"conc","s":"c","c":{"i":{"w":"concise","s":"ise","c":{},"d":[45],"e":true},"r":{"w":"concretely","s":"retely","c":{},"d":[49],"e":true}},"d":[],"e":false},"s":{"w":"cons","s":"s","c":{"i":{"w":"consi","s":"i","c":{"s":{"w":"consists","s":"sts","c":{},"d":[49],"e":true},"d":{"w":"consider","s":"der","c":{"a":{"w":"consideration","s":"ation","c":{},"d":[127],"e":true},"e":{"w":"considered","s":"ed","c":{},"d":[159],"e":true}},"d":[],"e":false}},"d":[],"e":false},"t":{"w":"constructions","s":"tructions","c":{},"d":[50,50],"e":true},"o":{"w":"console","s":"ole","c":{},"d":[55,55,55,55,55,56,56,56,56,56],"e":true}},"d":[],"e":false},"g":{"w":"cong","s":"g","c":{},"d":[50,50],"e":true},"t":{"w":"cont","s":"t","c":{"i":{"w":"continuously","s":"inuously","c":{},"d":[50,50,76,76,76,76,76],"e":true},"a":{"w":"conta","s":"a","c":{"i":{"w":"contain","s":"in","c":{"i":{"w":"containing","s":"ing","c":{},"d":[55,55,55,55,55,56,56,56,56,56],"e":true},"e":{"w":"containers","s":"ers","c":{},"d":[123],"e":true},"s":{"w":"contains","s":"s","c":{},"d":[130,130,130,130,130,130,130,130,130,130,145],"e":true}},"d":[59,59,59,59,77,77,80,80,80,80,93,93,93,93,114,114,114,114],"e":true},"c":{"w":"contact","s":"ct","c":{},"d":[127],"e":true}},"d":[],"e":false},"e":{"w":"conte","s":"e","c":{"x":{"w":"contextdescproto","s":"xtdescproto","c":{"c":{"w":"contextdescprotoconfigs","s":"configs","c":{},"d":[97,97,97],"e":true}},"d":[95,95,95,95,95,97,97,97,97,147,147,148],"e":true},"n":{"w":"content","s":"nt","c":{},"d":[139],"e":true}},"d":[],"e":false}},"d":[],"e":false},"v":{"w":"convolute","s":"volute","c":{},"d":[50,50],"e":true},"n":{"w":"connect","s":"nect","c":{"_":{"w":"connect_retry_","s":"_retry_","c":{"t":{"w":"connect_retry_times","s":"times","c":{},"d":[109,109,109,109,109],"e":true},"i":{"w":"connect_retry_interval_ms","s":"interval_ms","c":{},"d":[109,109,109,109,109],"e":true}},"d":[],"e":false},"i":{"w":"connection","s":"ion","c":{},"d":[109],"e":true}},"d":[109,109,109,109],"e":true}},"d":[],"e":false},"u":{"w":"cou","s":"u","c":{"l":{"w":"could","s":"ld","c":{},"d":[22,22,22,22,22,22,22,132,139,140,147,147,147,147,163,166],"e":true},"n":{"w":"count","s":"nt","c":{"e":{"w":"countering","s":"ering","c":{},"d":[50,50],"e":true}},"d":[48,48,48,48,48,89,89,89,89,89,89,89,89,89,89,111,111,111,111,111],"e":true},"t":{"w":"couteau","s":"teau","c":{},"d":[50,50,50,50,50,50,50,50,50,50,50,50],"e":true}},"d":[],"e":false},"m":{"w":"com","s":"m","c":{"p":{"w":"comp","s":"p","c":{"o":{"w":"component","s":"onent","c":{},"d":[22,22,22,22,22,29,29,29,29,29,29,29,48,48,48,48,48,48],"e":true},"_":{"w":"comp_list","s":"_list","c":{},"d":[29,29,29,29],"e":true},"i":{"w":"compile","s":"ile","c":{},"d":[36,139],"e":true},"u":{"w":"comput","s":"ut","c":{"a":{"w":"computation","s":"ation","c":{"a":{"w":"computational","s":"al","c":{},"d":[49],"e":true}},"d":[42,45,47,50,50,50,50,50,50,50,50,56,56,56,56,56,147],"e":true},"i":{"w":"computing","s":"ing","c":{},"d":[42,42,42,42,42,42,42,42,47,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,159],"e":true},"e":{"w":"compute","s":"e","c":{"s":{"w":"computes","s":"s","c":{},"d":[47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,49,49],"e":true},"r":{"w":"computer","s":"r","c":{},"d":[50,50,50,50],"e":true}},"d":[],"e":false}},"d":[],"e":false},"a":{"w":"compares","s":"ares","c":{},"d":[42,42,43,43,44,44,47,47,47,47,49,49],"e":true},"l":{"w":"comple","s":"le","c":{"x":{"w":"complex","s":"x","c":{"i":{"w":"complexity","s":"ity","c":{},"d":[48],"e":true}},"d":[127],"e":true},"t":{"w":"completed","s":"ted","c":{},"d":[127],"e":true}},"d":[],"e":false},"r":{"w":"compress","s":"ress","c":{"i":{"w":"compressing","s":"ing","c":{},"d":[50,50],"e":true}},"d":[56,56,56,56,56,56,56,56,56,56],"e":true}},"d":[],"e":false},"m":{"w":"comm","s":"m","c":{"u":{"w":"communi","s":"uni","c":{"c":{"w":"communication","s":"cation","c":{"s":{"w":"communications","s":"s","c":{},"d":[50,50,50,50],"e":true}},"d":[42,42,47,48,49,49,50,50,50,50,55,55,55,55,55,92,92,92,92,92,109,109,109,109,109,139,139],"e":true},"t":{"w":"communities","s":"ties","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"e":{"w":"commerce","s":"erce","c":{},"d":[50,50],"e":true},"a":{"w":"command","s":"and","c":{},"d":[56,56,131,131,162,162],"e":true}},"d":[],"e":false},"b":{"w":"combined","s":"bined","c":{},"d":[117,150],"e":true}},"d":[25,25,50,50,50,50,50,50,56,56,129,129,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,137,137,142,142,142,161],"e":true},"s":{"w":"cost","s":"st","c":{"e":{"w":"costello","s":"ello","c":{},"d":[50,50],"e":true},"l":{"w":"costly","s":"ly","c":{},"d":[145],"e":true}},"d":[42,42,47,56,56,56,56,56],"e":true},"r":{"w":"corre","s":"rre","c":{"s":{"w":"corresponding","s":"sponding","c":{},"d":[45,45,104,104,104,104,104,104,118,127,127,145],"e":true},"l":{"w":"correlat","s":"lat","c":{"i":{"w":"correlation","s":"ion","c":{},"d":[49,50,50,50,50],"e":true},"e":{"w":"correlated","s":"ed","c":{},"d":[50,50,127],"e":true}},"d":[],"e":false}},"d":[],"e":false},"e":{"w":"coe","s":"e","c":{"f":{"w":"coeff","s":"ff","c":{"c":{"w":"coeffcients","s":"cients","c":{},"d":[48,48,48,48,48],"e":true},"_":{"w":"coeff_modulus_bits","s":"_modulus_bits","c":{},"d":[48,48,48,48,48],"e":true}},"d":[],"e":false},"d":{"w":"coeds","s":"ds","c":{},"d":[49],"e":true}},"d":[],"e":false},"l":{"w":"col","s":"l","c":{"l":{"w":"collect","s":"lect","c":{"i":{"w":"collection","s":"ion","c":{},"d":[48,48,48,48],"e":true}},"d":[146],"e":true},"s":{"w":"cols","s":"s","c":{},"d":[56,56,56,56,56],"e":true},"u":{"w":"column","s":"umn","c":{},"d":[141,141,141,141,141,141],"e":true}},"d":[56,56,56,56,56,56,56,56,56,56],"e":true},"d":{"w":"code","s":"de","c":{"s":{"w":"codes","s":"s","c":{"h":{"w":"codeshttp_codesrepeated","s":"http_codesrepeated","c":{},"d":[111,111],"e":true},"a":{"w":"codesaggressive_retry","s":"aggressive_retry","c":{},"d":[111,111],"e":true}},"d":[49,49,50,50,50,50,50,50,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111],"e":true}},"d":[49,49,115,139,165,165],"e":true},"v":{"w":"covers","s":"vers","c":{},"d":[51],"e":true},"p":{"w":"copy","s":"py","c":{},"d":[118,142],"e":true}},"d":[],"e":false},"s":{"w":"csv","s":"sv","c":{"_":{"w":"csv_null_rep","s":"_null_rep","c":{},"d":[68,68,68,68],"e":true}},"d":[4,4,5,5,14,14,22,22,22,22,22,22,22,22,22,22,22,22,22,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,68,68,68,68,68,75,75,75,75,75,86,86,86,86,86,88,88,88,88,88,130,130,130,130,130,130,130,130,130,130,140,140,141,142,143,143],"e":true},"a":{"w":"ca","s":"a","c":{"n":{"w":"can","s":"n","c":{"n":{"w":"cannot","s":"not","c":{},"d":[42,42],"e":true},"d":{"w":"candidate","s":"didate","c":{},"d":[42],"e":true}},"d":[4,4,4,4,4,4,36,48,48,71,84,84,84,84,84,87,87,87,87,87,89,89,89,89,89,127,127,142,144,145,145,145,147],"e":true},"l":{"w":"cal","s":"l","c":{"l":{"w":"call","s":"l","c":{"e":{"w":"called","s":"ed","c":{},"d":[49,147,147,147,147],"e":true}},"d":[22,22,22,22,22],"e":true},"c":{"w":"calculat","s":"culat","c":{"e":{"w":"calculates","s":"es","c":{},"d":[43,43,43,43,43,43,43,43,43,43,43,43,45,45],"e":true},"i":{"w":"calculating","s":"ing","c":{},"d":[45],"e":true}},"d":[],"e":false},"i":{"w":"calibrated","s":"ibrated","c":{},"d":[45],"e":true}},"d":[],"e":false},"r":{"w":"car","s":"r","c":{"e":{"w":"carefully","s":"efully","c":{},"d":[42,139],"e":true},"d":{"w":"cardinarlity","s":"dinarlity","c":{},"d":[92,92,92,92,92],"e":true},"r":{"w":"carried","s":"ried","c":{},"d":[102,102,102,102,102],"e":true}},"d":[],"e":false},"p":{"w":"cap","s":"p","c":{"t":{"w":"capture","s":"ture","c":{},"d":[159],"e":true},"a":{"w":"capabilities","s":"abilities","c":{},"d":[159],"e":true}},"d":[43,43,43,43,43,43,43,43,45,45,45,45,45,45,45,45,49,49,49,49,49,49,49,49],"e":true},"s":{"w":"case","s":"se","c":{},"d":[44,109],"e":true},"c":{"w":"cache","s":"che","c":{"_":{"w":"cache_path","s":"_path","c":{},"d":[73,73,73,73,73],"e":true}},"d":[79,79,79,79,79,79,79,79,79,79,92,92,92,92,92,92,92,92,92,92],"e":true},"_":{"w":"ca_file_path","s":"_file_path","c":{},"d":[112,112,112,148,148,148],"e":true}},"d":[76,76,76,76,76,112,112,112,112,112,112,112,112,112,112,148,148],"e":true},"l":{"w":"cl","s":"l","c":{"e":{"w":"cleanup","s":"eanup","c":{},"d":[5,5],"e":true},"o":{"w":"cloud","s":"oud","c":{},"d":[25,129,137,161],"e":true},"i":{"w":"cli","s":"i","c":{"e":{"w":"client","s":"ent","c":{"s":{"w":"clients","s":"s","c":{},"d":[73,73,73,73,73,73,73,73,73,73,78,78,78,78,78,79,79,79,79,79],"e":true},"_":{"w":"client_","s":"_","c":{"g":{"w":"client_get_result","s":"get_result","c":{},"d":[73,73,73,73,73,73,73,73],"e":true},"s":{"w":"client_ssl_opts","s":"ssl_opts","c":{},"d":[109,148,148,148],"e":true}},"d":[],"e":false}},"d":[47,102,102,102,102,102,109,109,134,134,134,134,134,134,134,145,145,145],"e":true}},"d":[56,56,56,56,56,56,56,56,139,139,139,139],"e":true},"r":{"w":"clr17","s":"r17","c":{},"d":[48,48],"e":true},"u":{"w":"cluster","s":"uster","c":{"d":{"w":"clusterdefine","s":"define","c":{},"d":[95,95,95,95,95,101],"e":true}},"d":[103,103,103,103,103],"e":true}},"d":[],"e":false},"m":{"w":"cm","s":"m","c":{"d":{"w":"cmd","s":"d","c":{},"d":[18,18],"e":true},"a":{"w":"cmake","s":"ake","c":{},"d":[37,37],"e":true},"g":{"w":"cmgd","s":"gd","c":{},"d":[48,48,48,48],"e":true}},"d":[],"e":false},"i":{"w":"ci","s":"i","c":{"r":{"w":"circuit","s":"rcuit","c":{"s":{"w":"circuits","s":"s","c":{},"d":[50,50],"e":true}},"d":[45,45,50,50],"e":true},"p":{"w":"ciphertexts","s":"phertexts","c":{},"d":[48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48],"e":true},"t":{"w":"cited","s":"ted","c":{},"d":[50,50],"e":true}},"d":[22,22,22,22,22,22],"e":true},"n":{"w":"cn","s":"n","c":{},"d":[25,25,28,28,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,31,31,31,31,31,31,31,31,31,31,31,31,129,129,137,137,161],"e":true},"r":{"w":"cr","s":"r","c":{"e":{"w":"create","s":"eate","c":{},"d":[39],"e":true},"y":{"w":"crypto","s":"ypto","c":{"2":{"w":"crypto202","s":"202","c":{"1":{"w":"crypto2021","s":"1","c":{},"d":[50,50],"e":true},"2":{"w":"crypto2022","s":"2","c":{},"d":[50,50],"e":true},"3":{"w":"crypto2023","s":"3","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"l":{"w":"cryptol","s":"l","c":{"i":{"w":"cryptolib","s":"ib","c":{},"d":[42,42],"e":true},"o":{"w":"cryptology","s":"ogy","c":{},"d":[50,50,50,50],"e":true}},"d":[],"e":false},"g":{"w":"cryptograph","s":"graph","c":{"y":{"w":"cryptography","s":"y","c":{},"d":[50,50,50,50,84,84,84,84,84,87,87,87,87,87,91,91,91,91,91,91],"e":true},"i":{"w":"cryptographic","s":"ic","c":{},"d":[50,50,76,76,76,76,76],"e":true}},"d":[],"e":false},"s":{"w":"cryptosystem","s":"system","c":{},"d":[91,91,91,91,91],"e":true}},"d":[42,42,42,42,42,42,42,50,50,50,165,165,165,165,165,165,165],"e":true},"r":{"w":"crr21","s":"r21","c":{},"d":[49,49],"e":true},"i":{"w":"cri","s":"i","c":{"s":{"w":"cristofaro","s":"stofaro","c":{},"d":[50,50],"e":true},"t":{"w":"critical","s":"tical","c":{},"d":[63,63],"e":true}},"d":[],"e":false},"u":{"w":"cruz","s":"uz","c":{},"d":[50,50],"e":true}},"d":[25,25,129,129,137,137,161],"e":true},"u":{"w":"cu","s":"u","c":{"r":{"w":"cur","s":"r","c":{"v":{"w":"curve","s":"ve","c":{"2":{"w":"curve25519","s":"25519","c":{},"d":[42,42,42,42,42,50,50,91,91,91,91,91,91,91,159,159,159,165,165,165,165,165,165],"e":true},"s":{"w":"curves","s":"s","c":{},"d":[42,159],"e":true},"t":{"w":"curvetype","s":"type","c":{"n":{"w":"curvetypenone","s":"none","c":{"b":{"w":"curvetypenonebatch_size","s":"batch_size","c":{},"d":[64,64],"e":true}},"d":[64],"e":true},"o":{"w":"curvetypeoptional","s":"optional","c":{},"d":[84,84,84,87,87,87],"e":true}},"d":[64,64,64,64,82,82,82,82,82,84,84,84,87,87,87],"e":true},"_":{"w":"curve_","s":"_","c":{"2":{"w":"curve_25519","s":"25519","c":{"1":{"w":"curve_255191daniel","s":"1daniel","c":{},"d":[91],"e":true},"_":{"w":"curve_25519_elligator2","s":"_elligator2","c":{"5":{"w":"curve_25519_elligator25curve25519","s":"5curve25519","c":{},"d":[91],"e":true}},"d":[91,91],"e":true}},"d":[91,91],"e":true},"t":{"w":"curve_type","s":"type","c":{},"d":[84,84,84,84,84,87,87,87,87,87],"e":true},"i":{"w":"curve_invalid_type","s":"invalid_type","c":{"0":{"w":"curve_invalid_type0none","s":"0none","c":{"c":{"w":"curve_invalid_type0nonecurve_255191daniel","s":"curve_255191daniel","c":{},"d":[91],"e":true}},"d":[91],"e":true}},"d":[91,91],"e":true},"f":{"w":"curve_fourq","s":"fourq","c":{"2":{"w":"curve_fourq2fourq","s":"2fourq","c":{},"d":[91],"e":true}},"d":[91,91],"e":true},"s":{"w":"curve_s","s":"s","c":{"m":{"w":"curve_sm2","s":"m2","c":{"3":{"w":"curve_sm23sm2","s":"3sm2","c":{},"d":[91],"e":true}},"d":[91,91],"e":true},"e":{"w":"curve_secp256k1","s":"ecp256k1","c":{"4":{"w":"curve_secp256k14parameters","s":"4parameters","c":{},"d":[91],"e":true}},"d":[91,91],"e":true}},"d":[],"e":false}},"d":[],"e":false}},"d":[42,42,50,50,64,64,64,64,84,84,84,84,84,87,87,87,87,87,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91],"e":true},"r":{"w":"currently","s":"rently","c":{},"d":[45,56,56,56,56,56],"e":true}},"d":[],"e":false},"c":{"w":"cuckoo","s":"ckoo","c":{"h":{"w":"cuckoohash","s":"hash","c":{},"d":[44,44,44,44,48,48,48,48,48,48,48],"e":true},"t":{"w":"cuckootable","s":"table","c":{},"d":[48,48,48,48,48,48,48,48,48,48,48,48],"e":true}},"d":[48,48,48,48,48,48,48,48,48,48,48,48,48],"e":true}},"d":[],"e":false},"p":{"w":"cpu","s":"pu","c":{},"d":[42,42,42,42,42,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,165,166],"e":true},"f":{"w":"cfrg","s":"frg","c":{},"d":[47,47,50,50,50],"e":true},"d":{"w":"cdot","s":"dot","c":{},"d":[49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49],"e":true},"c":{"w":"ccs","s":"cs","c":{},"d":[50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50],"e":true},"e":{"w":"certificate","s":"ertificate","c":{"_":{"w":"certificate_path","s":"_path","c":{},"d":[112,112,112,112,148,148,148],"e":true}},"d":[112,112,112,112,112,112,112,112,112,112,112,112,148,148],"e":true}},"d":[22,22,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,48,48,48,48,48,48,48,48,48,48,48,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,50,50,50,50,50,50,50,50,59,59,76,76,76,76,76,80,80,92,92,92,92,92,93,93,114,114],"e":true},"d":{"w":"d","s":"d","c":{"e":{"w":"de","s":"e","c":{"l":{"w":"del","s":"l","c":{"e":{"w":"delete","s":"ete","c":{"d":{"w":"deleted","s":"d","c":{},"d":[29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29],"e":true}},"d":[3,3,4,4],"e":true},"t":{"w":"delta","s":"ta","c":{},"d":[49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49],"e":true}},"d":[],"e":false},"b":{"w":"debug","s":"bug","c":{"o":{"w":"debugoptions","s":"options","c":{"l":{"w":"debugoptionslogging","s":"logging","c":{},"d":[70,70,70,73,73,73],"e":true}},"d":[61,61,61,61,61,70,70,70,73,73,73],"e":true},"_":{"w":"debug_options","s":"_options","c":{},"d":[70,70,70,70,70,73,73,73,73,73],"e":true}},"d":[17,17,55,55,55,55,55,56,56,56,56,56,63,63],"e":true},"v":{"w":"develop","s":"velop","c":{"i":{"w":"developing","s":"ing","c":{},"d":[22],"e":true},"m":{"w":"development","s":"ment","c":{},"d":[136],"e":true}},"d":[],"e":false},"p":{"w":"dep","s":"p","c":{"r":{"w":"deprecated","s":"recated","c":{},"d":[22,22,22,22,22,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,115,115,115,115],"e":true},"t":{"w":"depth","s":"th","c":{},"d":[112,112,112,112,112],"e":true}},"d":[],"e":false},"s":{"w":"des","s":"s","c":{"i":{"w":"desi","s":"i","c":{"g":{"w":"design","s":"gn","c":{"s":{"w":"designs","s":"s","c":{},"d":[40],"e":true},"e":{"w":"designed","s":"ed","c":{},"d":[159],"e":true}},"d":[],"e":false},"r":{"w":"desired","s":"red","c":{},"d":[48,48,48,48],"e":true}},"d":[],"e":false},"c":{"w":"descri","s":"cri","c":{"b":{"w":"describ","s":"b","c":{"i":{"w":"describing","s":"ing","c":{},"d":[55,55,55,55,55,56,56,56,56,56,56,56,56,56,56],"e":true},"e":{"w":"describe","s":"e","c":{"s":{"w":"describes","s":"s","c":{},"d":[109,109,109,109,109],"e":true},"d":{"w":"described","s":"d","c":{},"d":[127],"e":true}},"d":[],"e":false}},"d":[],"e":false},"p":{"w":"description","s":"ption","c":{},"d":[55,55,56,56,57,57,63,63,64,64,65,65,66,66,67,67,68,68,69,69,70,70,71,71,72,72,73,73,75,75,76,76,77,77,78,78,79,79,84,84,85,85,86,86,87,87,88,88,89,89,91,91,92,92,97,97,100,100,101,101,102,102,103,103,104,104,105,105,106,106,109,109,109,109,109,109,109,110,110,111,111,112,112,130,130],"e":true}},"d":[],"e":false}},"d":[],"e":false},"c":{"w":"dec","s":"c","c":{"i":{"w":"decisional","s":"isional","c":{},"d":[42],"e":true},"r":{"w":"decrypt","s":"rypt","c":{"s":{"w":"decrypts","s":"s","c":{},"d":[48,48,48,48],"e":true}},"d":[48,48,48,48,48],"e":true},"o":{"w":"deco","s":"o","c":{"d":{"w":"decod","s":"d","c":{"e":{"w":"decode","s":"e","c":{},"d":[49,49],"e":true},"i":{"w":"decoding","s":"ing","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"m":{"w":"decompositions","s":"mpositions","c":{},"d":[50,50,91,91,91,91,91],"e":true}},"d":[],"e":false}},"d":[],"e":false},"n":{"w":"denote","s":"note","c":{"d":{"w":"denoted","s":"d","c":{},"d":[48,48,48,48],"e":true}},"d":[43,43,45],"e":true},"f":{"w":"def","s":"f","c":{"a":{"w":"default","s":"ault","c":{"s":{"w":"defaults","s":"s","c":{},"d":[103,103,103,103,103,103,103,103,103,103],"e":true}},"d":[45,55,55,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,63,63,64,64,64,64,64,65,65,65,65,65,67,67,67,67,67,68,68,68,68,68,72,72,72,72,72,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,112,112,112,112,112,118,147,147,147,157,157],"e":true},"i":{"w":"define","s":"ine","c":{"s":{"w":"defines","s":"s","c":{},"d":[49,49],"e":true},"d":{"w":"defined","s":"d","c":{},"d":[91,91,91,91,91],"e":true}},"d":[],"e":false}},"d":[],"e":false},"t":{"w":"det","s":"t","c":{"a":{"w":"details","s":"ails","c":{},"d":[45,56,130,139,142,159,160],"e":true},"e":{"w":"determine","s":"ermine","c":{},"d":[48,48,48,48,48,70,70,70,70,70],"e":true}},"d":[],"e":false},"a":{"w":"deafult","s":"afult","c":{},"d":[63,63,63,63,63],"e":true},"m":{"w":"demo","s":"mo","c":{},"d":[133,144],"e":true},"g":{"w":"degree","s":"gree","c":{},"d":[145],"e":true}},"d":[],"e":false},"o":{"w":"do","s":"o","c":{"n":{"w":"don","s":"n","c":{"e":{"w":"done","s":"e","c":{},"d":[4,4,4,4],"e":true},"n":{"w":"donna","s":"na","c":{"4":{"w":"donna4c40","s":"4c40","c":{},"d":[165,165,165],"e":true}},"d":[165,165],"e":true}},"d":[],"e":false},"c":{"w":"doc","s":"c","c":{"k":{"w":"docker","s":"ker","c":{"n":{"w":"dockernot","s":"not","c":{},"d":[22,22,22],"e":true},"h":{"w":"dockerhub","s":"hub","c":{},"d":[25,25,129,129,137,137,161,161],"e":true},"s":{"w":"dockers","s":"s","c":{},"d":[155],"e":true}},"d":[6,6,11,11,22,22,22,22,25,36,123,129,137,161,165],"e":true},"s":{"w":"docs","s":"s","c":{},"d":[28,28,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,31,31,31,31,31,31,31,31,31,31,31,31],"e":true},"u":{"w":"document","s":"ument","c":{},"d":[116,149],"e":true}},"d":[],"e":false},"w":{"w":"download","s":"wnload","c":{},"d":[6,6,12,12],"e":true},"i":{"w":"doi","s":"i","c":{"n":{"w":"doing","s":"ng","c":{},"d":[109],"e":true}},"d":[50,50,50,50,50,50,76,76,76,76,76],"e":true},"u":{"w":"double","s":"uble","c":{"d":{"w":"doubled","s":"d","c":{"o":{"w":"doubledoubledoublefloat","s":"oubledoublefloat","c":{},"d":[59,59,59,80,80,80,93,93,93,114,114,114],"e":true},"p":{"w":"doubledp","s":"p","c":{},"d":[85,85,85],"e":true}},"d":[],"e":false},"b":{"w":"doublebob","s":"bob","c":{},"d":[85,85,85],"e":true}},"d":[59,59,80,80,85,85,85,85,85,85,85,85,93,93,114,114],"e":true},"m":{"w":"domain","s":"main","c":{},"d":[103,103,103,103,103],"e":true},"e":{"w":"does","s":"es","c":{"n":{"w":"doesn","s":"n","c":{},"d":[147,147],"e":true}},"d":[109,127,145],"e":true}},"d":[22,22,22,22,22,55,55,56,56,111,111,127],"e":true},"r":{"w":"dr","s":"r","c":{"o":{"w":"drop","s":"op","c":{},"d":[4,4],"e":true},"a":{"w":"draft","s":"aft","c":{},"d":[47,47,50,50,50],"e":true}},"d":[],"e":false},"i":{"w":"di","s":"i","c":{"r":{"w":"dir","s":"r","c":{"e":{"w":"direct","s":"ect","c":{"l":{"w":"directly","s":"ly","c":{},"d":[6,6,11,11,118],"e":true},"o":{"w":"directory","s":"ory","c":{},"d":[117,150],"e":true}},"d":[],"e":false}},"d":[5,5],"e":true},"s":{"w":"dis","s":"s","c":{"a":{"w":"disabl","s":"abl","c":{"e":{"w":"disable_alignment","s":"e_alignment","c":{},"d":[20,20,70,70,70,70,70,73,73,73,147,147,147],"e":true},"i":{"w":"disabling","s":"ing","c":{},"d":[48,48,48,48,48],"e":true}},"d":[],"e":false},"t":{"w":"dist","s":"t","c":{"i":{"w":"distinguish","s":"inguish","c":{},"d":[42,42],"e":true},"r":{"w":"distributed","s":"ributed","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"k":{"w":"disk","s":"k","c":{},"d":[71,71],"e":true},"p":{"w":"displayed","s":"played","c":{},"d":[127],"e":true},"c":{"w":"discuss","s":"cuss","c":{},"d":[139],"e":true}},"d":[],"e":false},"f":{"w":"diff","s":"ff","c":{"e":{"w":"differen","s":"eren","c":{"c":{"w":"difference","s":"ce","c":{},"d":[20,20,70,70,77,77,77,77,77,77,77,77,147,147],"e":true},"t":{"w":"different","s":"t","c":{"i":{"w":"differentially","s":"ially","c":{},"d":[41,41,45,45,45,45,50,50,92,92,92,92,92,92,92],"e":true}},"d":[118,120,120,122,122,123,127,150,151,151,152,155],"e":true}},"d":[],"e":false},"i":{"w":"diffie","s":"ie","c":{},"d":[42,42,42,50,50,91,91,91,91,91],"e":true}},"d":[],"e":false},"m":{"w":"dimensional","s":"mensional","c":{},"d":[50,50,91,91,91,91,91],"e":true},"g":{"w":"digest","s":"gest","c":{},"d":[70,70,70,70,70],"e":true}},"d":[],"e":false},"u":{"w":"du","s":"u","c":{"p":{"w":"duplicate","s":"plicate","c":{"d":{"w":"duplicated","s":"d","c":{},"d":[22,22,22,22,22],"e":true},"s":{"w":"duplicates","s":"s","c":{"_":{"w":"duplicates_check","s":"_check","c":{},"d":[77,77],"e":true}},"d":[147,147],"e":true}},"d":[20,20,20,20,77,77,77,86,86,86,86,86],"e":true},"e":{"w":"due","s":"e","c":{},"d":[42,49,71],"e":true},"m":{"w":"dummy","s":"mmy","c":{},"d":[118,151],"e":true},"r":{"w":"during","s":"ring","c":{},"d":[127],"e":true}},"d":[],"e":false},"p":{"w":"dp","s":"p","c":{"_":{"w":"dp_psi","s":"_psi","c":{"_":{"w":"dp_psi_2pc","s":"_2pc","c":{"1":{"w":"dp_psi_2pc12differentially","s":"12differentially","c":{},"d":[92],"e":true}},"d":[92,92],"e":true}},"d":[22,22,22,22,22],"e":true},"p":{"w":"dppsi","s":"psi","c":{"p":{"w":"dppsiparams","s":"params","c":{"o":{"w":"dppsiparamsoptional","s":"optional","c":{},"d":[84,84,84,87,87,87],"e":true}},"d":[82,82,82,82,82,84,84,84,87,87,87],"e":true},"_":{"w":"dppsi_params","s":"_params","c":{},"d":[84,84,84,84,84,87,87,87,87,87],"e":true}},"d":[],"e":false}},"d":[41,41,41,41,41,45,45,45,45,45,45,45,45,45,45,45,84,84,84,84,84,85,85,85,87,87,87,87,87,159,159,159,159,159,159],"e":true},"h":{"w":"dh","s":"h","c":{},"d":[42,42,165,165],"e":true},"a":{"w":"da","s":"a","c":{"t":{"w":"data","s":"ta","c":{"s":{"w":"dataset","s":"set","c":{"s":{"w":"datasets","s":"s","c":{},"d":[127],"e":true}},"d":[45,45,56,56,56,56,56,78,78,78,78,78,78,78,78,78,78],"e":true}},"d":[43,43,43,49,49,49,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,86,86,86,86,86,89,89,89,89,89,109,118,118,118,118,119,120,122,127,127,127,127,127,127,127,127,145,145,145,151,151,152,164],"e":true},"n":{"w":"daniel","s":"niel","c":{},"d":[50,50,91,91],"e":true},"i":{"w":"dai","s":"i","c":{},"d":[50,50],"e":true}},"d":[50,50],"e":true},"b":{"w":"db","s":"b","c":{"_":{"w":"db_file","s":"_file","c":{},"d":[56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,143,143],"e":true}},"d":[56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,140,140,142,143,143,143,145,145,145],"e":true},"d":{"w":"ddh","s":"dh","c":{},"d":[92,92,92,92,92],"e":true}},"d":[49,50,50,50,50,50,50,50,50,50,50,50,50],"e":true},"l":{"w":"l","s":"l","c":{"e":{"w":"le","s":"e","c":{"g":{"w":"lega","s":"ga","c":{"c":{"w":"legacy","s":"cy","c":{"_":{"w":"legacy_psi_config","s":"_psi_config","c":{},"d":[97,97,97,97,97,160,160],"e":true}},"d":[4,4],"e":true},"l":{"w":"legal","s":"l","c":{},"d":[22,22,22,22,22],"e":true}},"d":[],"e":false},"f":{"w":"left","s":"ft","c":{"a":{"w":"leftarrow","s":"arrow","c":{},"d":[49,49,49,49,49,49,49,49],"e":true},"_":{"w":"left_side","s":"_side","c":{},"d":[70,70,70,73,73,73],"e":true}},"d":[20,20,70,70,70,70,70,70,77,77,77,77,77,77,147],"e":true},"a":{"w":"lea","s":"a","c":{"k":{"w":"leak","s":"k","c":{"a":{"w":"leakage","s":"age","c":{},"d":[43],"e":true},"s":{"w":"leaks","s":"s","c":{},"d":[43],"e":true},"k":{"w":"leakkkrt_psi_npc6iterative","s":"kkrt_psi_npc6iterative","c":{},"d":[92,92],"e":true},"e":{"w":"leakecdh_oprf_ub_psi_2pc_gen_cache7noticed","s":"ecdh_oprf_ub_psi_2pc_gen_cache7noticed","c":{},"d":[92,92],"e":true}},"d":[92,92,92,92,92,92,92,92,92,92,92,159],"e":true},"r":{"w":"learns","s":"rns","c":{},"d":[45],"e":true}},"d":[],"e":false},"s":{"w":"less","s":"ss","c":{},"d":[44],"e":true},"n":{"w":"length","s":"ngth","c":{"s":{"w":"lengths","s":"s","c":{},"d":[127],"e":true}},"d":[59,59,59,59,59,59,59,59,59,59,59,59,80,80,80,80,80,80,80,80,80,80,80,80,93,93,93,93,93,93,93,93,93,93,93,93,114,114,114,114,114,114,114,114,114,114,114,114,118,127],"e":true},"v":{"w":"level","s":"vel","c":{},"d":[63,70,70,70,70,70,70,73,73,73,73,73],"e":true}},"d":[],"e":false},"o":{"w":"lo","s":"o","c":{"g":{"w":"log","s":"g","c":{"g":{"w":"logg","s":"g","c":{"e":{"w":"logger","s":"er","c":{},"d":[17,17,63],"e":true},"i":{"w":"logging","s":"ing","c":{"_":{"w":"logging_level","s":"_level","c":{},"d":[63,63,63,63],"e":true}},"d":[63,70,70,73,73],"e":true}},"d":[],"e":false},"_":{"w":"log_","s":"_","c":{"l":{"w":"log_level","s":"level","c":{},"d":[55,55,55,55,55,56,56,56,56,56],"e":true},"f":{"w":"log_file","s":"file","c":{},"d":[55,55,55,56,56,56],"e":true}},"d":[],"e":false}},"d":[48,48,48,48,48,48,48,48,48,48,55,55,56,56],"e":true},"o":{"w":"look","s":"ok","c":{"s":{"w":"looks","s":"s","c":{},"d":[141],"e":true}},"d":[39,147],"e":true},"n":{"w":"long","s":"ng","c":{"a":{"w":"longa","s":"a","c":{},"d":[50,50],"e":true},"e":{"w":"longer","s":"er","c":{},"d":[92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92],"e":true}},"d":[44,59,59,59,59,59,59,59,59,59,59,59,59,80,80,80,80,80,80,80,80,80,80,80,80,93,93,93,93,93,93,93,93,93,93,93,93,109,109,114,114,114,114,114,114,114,114,114,114,114,114],"e":true},"a":{"w":"load","s":"ad","c":{},"d":[56,56,56,56,56,164],"e":true},"w":{"w":"low","s":"w","c":{"_":{"w":"low_comm_mode","s":"_comm_mode","c":{},"d":[72,72,72,72,72],"e":true}},"d":[92,92,92,92,92],"e":true},"c":{"w":"loca","s":"ca","c":{"l":{"w":"local","s":"l","c":{},"d":[75,75,103,103,103,103,103,103,103,103,103,103],"e":true},"t":{"w":"location","s":"tion","c":{},"d":[130,130],"e":true}},"d":[],"e":false}},"d":[],"e":false},"i":{"w":"li","s":"i","c":{"b":{"w":"lib","s":"b","c":{"r":{"w":"library","s":"rary","c":{},"d":[22,22,22,22,22,22,22,22,22,22,22,48,48,48,139],"e":true},"s":{"w":"libsoidum","s":"soidum","c":{},"d":[42,42,42,42,42,42],"e":true}},"d":[],"e":false},"k":{"w":"like","s":"ke","c":{"l":{"w":"likely","s":"ly","c":{},"d":[59,59,59,59,80,80,80,80,93,93,93,93,114,114,114,114],"e":true}},"d":[42,139,139,141],"e":true},"s":{"w":"lis","s":"s","c":{"t":{"w":"list","s":"t","c":{"e":{"w":"listed","s":"ed","c":{},"d":[45],"e":true}},"d":[49,102,102,104,104,104,104,104],"e":true},"a":{"w":"lisa","s":"a","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"n":{"w":"lin","s":"n","c":{"e":{"w":"line","s":"e","c":{"a":{"w":"linear","s":"ar","c":{},"d":[49],"e":true}},"d":[55,55,55,55,55,56,56,141,141],"e":true},"k":{"w":"link","s":"k","c":{"_":{"w":"link_config","s":"_config","c":{},"d":[97,97,97,97,97,97,97,97,97],"e":true}},"d":[97,97,97,97,97,97,97,109,109,139,139],"e":true}},"d":[],"e":false},"e":{"w":"lie","s":"e","c":{},"d":[50,50],"e":true},"u":{"w":"liu","s":"u","c":{},"d":[50,50],"e":true},"m":{"w":"limit","s":"mit","c":{"e":{"w":"limited","s":"ed","c":{},"d":[67,67,67,67,67,72,72,72,72,72,109,147,165,166],"e":true}},"d":[109],"e":true}},"d":[],"e":false},"a":{"w":"la","s":"a","c":{"t":{"w":"late","s":"te","c":{"s":{"w":"latest","s":"st","c":{},"d":[22,22,22,22,22,22,48,71],"e":true},"r":{"w":"later","s":"r","c":{},"d":[136,136,136,136,136],"e":true}},"d":[],"e":false},"r":{"w":"large","s":"rge","c":{"r":{"w":"larger","s":"r","c":{},"d":[44,48,67,67,67,67,67,72,72,72,72,72,78,78,78,78,78,127],"e":true}},"d":[92,92,92,92,92,145],"e":true},"b":{"w":"label","s":"bel","c":{"e":{"w":"labeled","s":"ed","c":{},"d":[48,48,48,48,48,48,48,48,50,50,50,50,56,56,56,56,56],"e":true},"s":{"w":"labels","s":"s","c":{},"d":[48,48,48,48,48,48,48,48,48,48,48,48,48,48,141,141],"e":true}},"d":[48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,56,56,56,56,56,56,56,56,56,56,118,127,127],"e":true},"i":{"w":"laine","s":"ine","c":{},"d":[50,50,50,50,50,50],"e":true},"u":{"w":"launch","s":"unch","c":{"c":{"w":"launchconfig","s":"config","c":{"n":{"w":"launchconfignone","s":"none","c":{},"d":[106,106,106],"e":true}},"d":[95,95,95,95,95,106,106,106,106,130,134,142,160],"e":true}},"d":[51,51,51,51,130,130,130,134,134,134,142,142,142,160,160,160],"e":true},"y":{"w":"layer","s":"yer","c":{},"d":[139,139],"e":true},"n":{"w":"lan","s":"n","c":{"o":{"w":"lanoffline0","s":"offline0","c":{},"d":[166,166],"e":true}},"d":[166,166],"e":true}},"d":[],"e":false},"l":{"w":"lld","s":"ld","c":{},"d":[37,37],"e":true},"p":{"w":"lpn","s":"pn","c":{},"d":[49,49,50,50,50,50],"e":true},"d":{"w":"ldpc","s":"dpc","c":{},"d":[49,50,50],"e":true},"n":{"w":"lncs","s":"ncs","c":{},"d":[50,50,50,50,50,50],"e":true}},"d":[49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,50,50,50,50,50,50,50,50],"e":true},"u":{"w":"u","s":"u","c":{"b":{"w":"ub","s":"b","c":{"p":{"w":"ubpsiconfig","s":"psiconfig","c":{"p":{"w":"ubpsiconfigplease","s":"please","c":{},"d":[97,97,97],"e":true}},"d":[61,61,61,61,61,61,61,61,61,61,73,73,73,73,73,73,94,97,97,97,97],"e":true},"_":{"w":"ub_psi_config","s":"_psi_config","c":{},"d":[97,97,97,97,97],"e":true}},"d":[4,4,4,4,18,18],"e":true},"p":{"w":"up","s":"p","c":{"g":{"w":"upgrade","s":"grade","c":{},"d":[6,6,6,6,10,10,12,12,13,13],"e":true},"o":{"w":"upon","s":"on","c":{},"d":[47,56,56,56,56,56],"e":true},"d":{"w":"update","s":"date","c":{"s":{"w":"updates","s":"s","c":{},"d":[48,48,48,48],"e":true}},"d":[146],"e":true},"s":{"w":"upstream","s":"stream","c":{},"d":[166],"e":true}},"d":[45,147],"e":true},"r":{"w":"uri","s":"ri","c":{},"d":[6,6,12,12],"e":true},"u":{"w":"uuid","s":"uid","c":{},"d":[14,14,109,109,109,109,109],"e":true},"s":{"w":"us","s":"s","c":{"e":{"w":"use","s":"e","c":{"r":{"w":"user","s":"r","c":{"s":{"w":"users","s":"s","c":{},"d":[146],"e":true}},"d":[22,22,22,22,22,45],"e":true},"d":{"w":"used","s":"d","c":{},"d":[42,48,48,48,48,48,48,48,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,84,84,84,84,84,84,84,84,84,84,87,87,87,87,87,91,143,159],"e":true},"s":{"w":"uses","s":"s","c":{},"d":[48,48,48,48,48,48,48,149],"e":true},"l":{"w":"uselog_file","s":"log_file","c":{},"d":[55,55,56,56],"e":true}},"d":[14,14,22,36,37,38,43,44,45,45,45,48,48,48,48,48,49,49,50,50,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,59,59,59,59,64,64,64,64,64,65,65,65,65,65,67,67,67,67,67,67,67,67,67,67,68,68,68,68,68,72,72,72,72,72,72,72,72,72,72,76,76,76,76,76,77,77,77,77,80,80,80,80,93,93,93,93,112,112,112,112,112,114,114,114,114,115,117,118,119,120,122,123,132,139,139,142,148,148,150,152,155,163,166],"e":true},"i":{"w":"using","s":"ing","c":{},"d":[22,31,31,31,31,31,42,42,42,42,42,42,42,42,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,48,50,50,167],"e":true},"a":{"w":"usa","s":"a","c":{},"d":[76,76,76,76,76],"e":true}},"d":[127],"e":true},"n":{"w":"un","s":"n","c":{"s":{"w":"unsupported","s":"supported","c":{},"d":[22,22,22,22],"e":true},"b":{"w":"unb","s":"b","c":{"a":{"w":"unbalanced","s":"alanced","c":{},"d":[41,41,47,48,48,48,50,50,73,78,78,78,78,78,78,78,78,78,78,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92],"e":true},"l":{"w":"unblinds","s":"linds","c":{},"d":[47,47,47,47],"e":true}},"d":[],"e":false},"d":{"w":"under","s":"der","c":{"s":{"w":"understanding","s":"standing","c":{},"d":[127],"e":true}},"d":[45,118,123,127,127,136,151,155],"e":true},"i":{"w":"uni","s":"i","c":{"c":{"w":"unicode","s":"code","c":{},"d":[59,59,80,80,93,93,114,114],"e":true},"q":{"w":"unique","s":"que","c":{},"d":[65,65,65,65,65,103,103,103,103,103],"e":true},"t":{"w":"unit","s":"t","c":{},"d":[157,157],"e":true}},"d":[],"e":false},"e":{"w":"unexpectedly","s":"expectedly","c":{},"d":[71],"e":true},"p":{"w":"unpacked","s":"packed","c":{},"d":[109],"e":true},"t":{"w":"until","s":"til","c":{},"d":[109],"e":true},"l":{"w":"unless","s":"less","c":{},"d":[147,147],"e":true}},"d":[],"e":false},"t":{"w":"ut","s":"t","c":{"i":{"w":"utilizing","s":"ilizing","c":{},"d":[45],"e":true},"f":{"w":"utf","s":"f","c":{},"d":[59,59,80,80,93,93,114,114],"e":true}},"d":[],"e":false},"i":{"w":"uint","s":"int","c":{"3":{"w":"uint32","s":"32","c":{"n":{"w":"uint32number","s":"number","c":{},"d":[55,55,55,56,56,56,56,56,56],"e":true},"m":{"w":"uint32m","s":"m","c":{"u":{"w":"uint32must","s":"ust","c":{},"d":[55,55,55],"e":true},"a":{"w":"uint32max","s":"ax","c":{},"d":[111,111,111],"e":true}},"d":[],"e":false},"t":{"w":"uint32t","s":"t","c":{"h":{"w":"uint32the","s":"he","c":{},"d":[55,55,55,111,111,111,111,111,111],"e":true},"i":{"w":"uint32time","s":"ime","c":{},"d":[111,111,111],"e":true}},"d":[],"e":false},"u":{"w":"uint32uses","s":"uses","c":{},"d":[59,59,80,80,93,93,114,114],"e":true},"i":{"w":"uint32intint","s":"intint","c":{},"d":[59,59,59,59,80,80,80,80,93,93,93,93,114,114,114,114],"e":true},"s":{"w":"uint32specified","s":"specified","c":{},"d":[84,84,84,87,87,87],"e":true},"o":{"w":"uint32optional","s":"optional","c":{},"d":[84,84,84],"e":true},"c":{"w":"uint32connect","s":"connect","c":{},"d":[109,109,109,109,109,109],"e":true},"r":{"w":"uint32retry","s":"retry","c":{},"d":[111,111,111,111,111,111],"e":true}},"d":[55,55,55,55,55,55,55,55,55,55,55,55,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,59,59,80,80,84,84,84,84,84,84,84,84,87,87,87,87,93,93,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,109,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,114,114],"e":true},"6":{"w":"uint64","s":"64","c":{"u":{"w":"uint64uses","s":"uses","c":{},"d":[59,59,80,80,93,93,114,114],"e":true},"l":{"w":"uint64longint","s":"longint","c":{},"d":[59,59,59,59,80,80,80,80,93,93,93,93,114,114,114,114],"e":true},"i":{"w":"uint64if","s":"if","c":{},"d":[64,64,64],"e":true},"s":{"w":"uint64since","s":"since","c":{},"d":[67,67,67,72,72,72],"e":true},"r":{"w":"uint64recv","s":"recv","c":{},"d":[109,109,109],"e":true}},"d":[59,59,64,64,64,64,67,67,67,67,72,72,72,72,80,80,93,93,109,109,109,109,114,114],"e":true}},"d":[],"e":false}},"d":[],"e":false},"j":{"w":"j","s":"j","c":{"o":{"w":"jo","s":"o","c":{"i":{"w":"join","s":"in","c":{"s":{"w":"joins","s":"s","c":{},"d":[70],"e":true}},"d":[4,4,4,4,20,20,20,20,20,20,21,21,22,22,22,22,22,31,31,31,31,31,31,70,70,70,70,70,70,70,70,73,73,77,77,77,77,77,77,77,77,77,147],"e":true},"b":{"w":"job","s":"b","c":{},"d":[109],"e":true}},"d":[],"e":false},"s":{"w":"json","s":"son","c":{},"d":[6,6,11,11,55,55,55,55,55,56,56,56,56,56,118,118,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,143,143,143,143,143,143,143,143,143,145],"e":true},"l":{"w":"jl10","s":"l10","c":{},"d":[47,47],"e":true},"a":{"w":"ja","s":"a","c":{"r":{"w":"jarecki","s":"recki","c":{},"d":[50,50],"e":true},"v":{"w":"java","s":"va","c":{},"d":[59,59,80,80,93,93,114,114],"e":true}},"d":[],"e":false},"u":{"w":"ju","s":"u","c":{"n":{"w":"junfeng","s":"nfeng","c":{},"d":[56,75],"e":true},"s":{"w":"just","s":"st","c":{},"d":[148],"e":true}},"d":[],"e":false}},"d":[48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,50,50,50,50,50,50,91,91,91,91,91],"e":true},"e":{"w":"e","s":"e","c":{"n":{"w":"en","s":"n","c":{"h":{"w":"enhanc","s":"hanc","c":{"e":{"w":"enhancement","s":"ement","c":{},"d":[4,4],"e":true},"i":{"w":"enhancing","s":"ing","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"t":{"w":"entr","s":"tr","c":{"y":{"w":"entrypoint","s":"ypoint","c":{},"d":[6,6,11,11],"e":true},"i":{"w":"entries","s":"ies","c":{},"d":[127],"e":true}},"d":[],"e":false},"c":{"w":"enc","s":"c","c":{"r":{"w":"encrypt","s":"rypt","c":{"s":{"w":"encrypts","s":"s","c":{},"d":[45,45,45,45,45,45],"e":true},"i":{"w":"encryption","s":"ion","c":{},"d":[48,48,50,50,50,50,50,50,50,50],"e":true}},"d":[45,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48],"e":true},"o":{"w":"encod","s":"od","c":{"e":{"w":"encode","s":"e","c":{"d":{"w":"encoded","s":"d","c":{},"d":[59,59,80,80,93,93,114,114],"e":true}},"d":[49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,59,59,59,59,80,80,80,80,93,93,93,93,114,114,114,114],"e":true},"i":{"w":"encoding","s":"ing","c":{},"d":[59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114,114],"e":true}},"d":[],"e":false}},"d":[],"e":false},"d":{"w":"end","s":"d","c":{"p":{"w":"endpoint","s":"point","c":{"s":{"w":"endpoints","s":"s","c":{"r":{"w":"endpointsrepeated","s":"repeated","c":{},"d":[104,104,104],"e":true}},"d":[104,104],"e":true}},"d":[101,101,101,101,101,104,104],"e":true}},"d":[45,109,109],"e":true},"s":{"w":"ensures","s":"sures","c":{},"d":[45],"e":true},"u":{"w":"enums","s":"ums","c":{},"d":[61,61,82,82],"e":true},"a":{"w":"enabl","s":"abl","c":{"i":{"w":"enabling","s":"ing","c":{},"d":[71],"e":true},"e":{"w":"enable","s":"e","c":{"d":{"w":"enabled","s":"d","c":{},"d":[71,71,71,71,148,148,148,148,148],"e":true},"_":{"w":"enable_ssl","s":"_ssl","c":{},"d":[109,109,109,148,148,148],"e":true}},"d":[148,148],"e":true}},"d":[],"e":false},"v":{"w":"environment","s":"vironment","c":{},"d":[159],"e":true},"o":{"w":"enough","s":"ough","c":{},"d":[166],"e":true}},"d":[28,28,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,31,31,31,31,31,31,31,31,31,31,31,31],"e":true},"x":{"w":"ex","s":"x","c":{"p":{"w":"exp","s":"p","c":{"e":{"w":"expe","s":"e","c":{"r":{"w":"experiment","s":"riment","c":{"a":{"w":"experimental","s":"al","c":{"_":{"w":"experimental_","s":"_","c":{"e":{"w":"experimental_enable_bucketize","s":"enable_bucketize","c":{},"d":[55,55,55,55,55,56,56,56,56,56,56,56,56,56,56],"e":true},"b":{"w":"experimental_bucket_","s":"bucket_","c":{"c":{"w":"experimental_bucket_cnt","s":"cnt","c":{},"d":[55,55,55,55,55,56,56,56,56,56,145],"e":true},"f":{"w":"experimental_bucket_folder","s":"folder","c":{},"d":[56,56,56,56,56,56,56,56,56,56,56,56,56,56,56],"e":true},"g":{"w":"experimental_bucket_group_cnt","s":"group_cnt","c":{},"d":[56,56,56,56,56],"e":true}},"d":[],"e":false},"d":{"w":"experimental_db_generating_process_num","s":"db_generating_process_num","c":{},"d":[56,56,56,56,56],"e":true}},"d":[],"e":false}},"d":[5,5,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,139,139],"e":true},"s":{"w":"experiments","s":"s","c":{},"d":[166],"e":true}},"d":[],"e":false},"n":{"w":"expensive","s":"nsive","c":{},"d":[45],"e":true}},"d":[],"e":false},"o":{"w":"expo","s":"o","c":{"s":{"w":"expose","s":"se","c":{"d":{"w":"exposed","s":"d","c":{},"d":[102,102,102,102,102],"e":true}},"d":[15,15,16,16,18,18],"e":true},"n":{"w":"exponentiat","s":"nentiat","c":{"i":{"w":"exponentiations","s":"ions","c":{},"d":[42],"e":true},"e":{"w":"exponentiates","s":"es","c":{},"d":[42,42,42,42,42,42,42,42,47,47,47,47,47,47,47,47],"e":true}},"d":[],"e":false}},"d":[],"e":false},"a":{"w":"expand","s":"and","c":{},"d":[49,50,50,50,50],"e":true}},"d":[],"e":false},"i":{"w":"exists","s":"ists","c":{},"d":[20,20],"e":true},"t":{"w":"ext","s":"t","c":{"e":{"w":"extension","s":"ension","c":{},"d":[44,50,50,50,50,50,50],"e":true},"r":{"w":"extra","s":"ra","c":{},"d":[71,139],"e":true}},"d":[],"e":false},"e":{"w":"execut","s":"ecut","c":{"i":{"w":"executions","s":"ions","c":{},"d":[45],"e":true},"a":{"w":"executable","s":"able","c":{},"d":[117,150],"e":true}},"d":[],"e":false},"c":{"w":"exce","s":"ce","c":{"p":{"w":"except","s":"pt","c":{"i":{"w":"exception","s":"ion","c":{},"d":[109,109],"e":true}},"d":[73,73,73,73,73],"e":true},"e":{"w":"exceed","s":"ed","c":{},"d":[109],"e":true}},"d":[],"e":false},"a":{"w":"exa","s":"a","c":{"m":{"w":"examp","s":"mp","c":{"l":{"w":"example","s":"le","c":{"s":{"w":"examples","s":"s","c":{},"d":[102,102,102,102,102,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,142,142,142,144,144],"e":true}},"d":[109,134,148,148,148],"e":true},"p":{"w":"exampple","s":"ple","c":{},"d":[117],"e":true}},"d":[],"e":false},"c":{"w":"exact","s":"ct","c":{},"d":[139,139],"e":true}},"d":[],"e":false}},"d":[],"e":false},"c":{"w":"ec","s":"c","c":{"d":{"w":"ecdh","s":"dh","c":{"_":{"w":"ecdh_","s":"_","c":{"o":{"w":"ecdh_oprf","s":"oprf","c":{"_":{"w":"ecdh_oprf_ub","s":"_ub","c":{"c":{"w":"ecdh_oprf_ubcsv","s":"csv","c":{},"d":[22,22],"e":true},"_":{"w":"ecdh_oprf_ub_psi_2pc_","s":"_psi_2pc_","c":{"t":{"w":"ecdh_oprf_ub_psi_2pc_transfer_cache","s":"transfer_cache","c":{"8":{"w":"ecdh_oprf_ub_psi_2pc_transfer_cache8noticed","s":"8noticed","c":{},"d":[92,92,92],"e":true}},"d":[92,92],"e":true},"o":{"w":"ecdh_oprf_ub_psi_2pc_o","s":"o","c":{"f":{"w":"ecdh_oprf_ub_psi_2pc_offline","s":"ffline","c":{"9":{"w":"ecdh_oprf_ub_psi_2pc_offline9noticed","s":"9noticed","c":{},"d":[92,92,92],"e":true}},"d":[92,92],"e":true},"n":{"w":"ecdh_oprf_ub_psi_2pc_online","s":"nline","c":{"1":{"w":"ecdh_oprf_ub_psi_2pc_online10noticed","s":"10noticed","c":{},"d":[92,92,92],"e":true}},"d":[92,92],"e":true}},"d":[],"e":false},"s":{"w":"ecdh_oprf_ub_psi_2pc_shuffle_online","s":"shuffle_online","c":{"1":{"w":"ecdh_oprf_ub_psi_2pc_shuffle_online11noticed","s":"11noticed","c":{},"d":[92,92,92],"e":true}},"d":[92,92],"e":true},"g":{"w":"ecdh_oprf_ub_psi_2pc_gen_cache","s":"gen_cache","c":{"7":{"w":"ecdh_oprf_ub_psi_2pc_gen_cache7noticed","s":"7noticed","c":{},"d":[92],"e":true}},"d":[92,92],"e":true}},"d":[],"e":false}},"d":[22,22,22,22,22,22,22,22],"e":true}},"d":[84,84,84,84,84],"e":true},"c":{"w":"ecdh_c","s":"c","c":{"o":{"w":"ecdh_config","s":"onfig","c":{},"d":[69,69,69,69,69],"e":true},"l":{"w":"ecdh_client_o","s":"lient_o","c":{"f":{"w":"ecdh_client_offline","s":"ffline","c":{},"d":[134,134,134,134,134,134,134,134],"e":true},"n":{"w":"ecdh_client_online","s":"nline","c":{},"d":[134,134,134,134,134,134,134,134],"e":true}},"d":[],"e":false}},"d":[],"e":false},"s":{"w":"ecdh_se","s":"se","c":{"c":{"w":"ecdh_secret_key_path","s":"cret_key_path","c":{},"d":[84,84,84,84,84],"e":true},"r":{"w":"ecdh_server_o","s":"rver_o","c":{"f":{"w":"ecdh_server_offline","s":"ffline","c":{},"d":[134,134,134,134,134,134,134,134],"e":true},"n":{"w":"ecdh_server_online","s":"nline","c":{},"d":[134,134,134,134,134,134,134,134],"e":true}},"d":[],"e":false}},"d":[],"e":false},"p":{"w":"ecdh_psi_","s":"psi_","c":{"2":{"w":"ecdh_psi_2pc","s":"2pc","c":{"1":{"w":"ecdh_psi_2pc1noticed","s":"1noticed","c":{},"d":[92],"e":true}},"d":[92,92],"e":true},"3":{"w":"ecdh_psi_3pc","s":"3pc","c":{"4":{"w":"ecdh_psi_3pc4multi","s":"4multi","c":{},"d":[92],"e":true}},"d":[92,92],"e":true},"n":{"w":"ecdh_psi_npc","s":"npc","c":{"5":{"w":"ecdh_psi_npc5iterative","s":"5iterative","c":{},"d":[92,92,92],"e":true}},"d":[92,92],"e":true}},"d":[],"e":false}},"d":[],"e":false},"c":{"w":"ecdhconfig","s":"config","c":{"f":{"w":"ecdhconfigfor","s":"for","c":{},"d":[69,69,69],"e":true}},"d":[61,61,61,61,61,69,69,69],"e":true}},"d":[5,5,17,17,21,21,22,22,22,22,41,41,41,41,43,43,45,47,48,48,48,48,48,48,64,69,69,69,69,69,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,159,159,159,159,159,159,159,159,159,159],"e":true},"c":{"w":"ecc","s":"c","c":{},"d":[91,91,91,91,91,159],"e":true}},"d":[42,42,42,42,42],"e":true},"l":{"w":"el","s":"l","c":{"l":{"w":"elli","s":"li","c":{"g":{"w":"elligator2","s":"gator2","c":{},"d":[18,18,91,91,91,91,91],"e":true},"p":{"w":"elliptic","s":"ptic","c":{},"d":[42,42,42,84,84,84,84,84,87,87,87,87,87,91,91,91,91,91,91,91,91,91,91,91],"e":true}},"d":[],"e":false},"e":{"w":"ele","s":"e","c":{"m":{"w":"element","s":"ment","c":{},"d":[42,42,42,42,42,42,42,42,43,43,43,43,43,43,43,43,45,47,47,47,47,47,47,47,47,47,47,47,47,145],"e":true},"t":{"w":"elette","s":"tte","c":{},"d":[50,50],"e":true},"c":{"w":"electronic","s":"ctronic","c":{},"d":[50,50,50,50],"e":true}},"d":[],"e":false}},"d":[],"e":false},"a":{"w":"ea","s":"a","c":{"s":{"w":"easy","s":"sy","c":{},"d":[33,33,142],"e":true},"c":{"w":"each","s":"ch","c":{},"d":[42,42,42,42,42,42,42,42,44,44,44,44,44,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,67,67,67,67,67,72,72,72,72,72,103,103,145,145,145,166],"e":true},"r":{"w":"early","s":"rly","c":{},"d":[70,70,70,70,70],"e":true}},"d":[],"e":false},"f":{"w":"efficien","s":"fficien","c":{"c":{"w":"efficiency","s":"cy","c":{},"d":[45],"e":true},"t":{"w":"efficient","s":"t","c":{"l":{"w":"efficiently","s":"ly","c":{},"d":[59,59,59,59,80,80,80,80,93,93,93,93,114,114,114,114],"e":true}},"d":[48,49,49,49,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,59,59,59,59,76,76,76,76,76,76,76,80,80,80,80,91,91,91,91,91,92,92,92,92,92,93,93,93,93,114,114,114,114],"e":true}},"d":[],"e":false},"p":{"w":"ep","s":"p","c":{"s":{"w":"epsilon","s":"silon","c":{},"d":[45,45,45,45,45,45,45,85,85,85,85,85,85,85,85,85,85],"e":true},"r":{"w":"eprint","s":"rint","c":{},"d":[50,50,50,50,50,50,50,50,50,50,76,76,76,76,76,76,76,76,76,76,76,76,92,92,92,92,92,92,92,92,92,92,92,92],"e":true}},"d":[],"e":false},"v":{"w":"ev","s":"v","c":{"a":{"w":"eva","s":"a","c":{"l":{"w":"evaluat","s":"luat","c":{"e":{"w":"evaluate","s":"e","c":{"s":{"w":"evaluates","s":"s","c":{},"d":[48,48,48,48,48,48,48,48],"e":true},"d":{"w":"evaluated","s":"d","c":{},"d":[48,48,48,48],"e":true}},"d":[48,48,48,48,48],"e":true},"i":{"w":"evaluations","s":"ions","c":{},"d":[49],"e":true}},"d":[],"e":false},"n":{"w":"evans","s":"ns","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"e":{"w":"event","s":"ent","c":{},"d":[109,109],"e":true}},"d":[],"e":false},"s":{"w":"essentially","s":"ssentially","c":{},"d":[48,48,48,48,48],"e":true},"r":{"w":"err","s":"rr","c":{"o":{"w":"error","s":"or","c":{"c":{"w":"errorcorrecting","s":"correcting","c":{},"d":[49],"e":true},"_":{"w":"error_codes","s":"_codes","c":{"r":{"w":"error_codesrepeated","s":"repeated","c":{},"d":[111],"e":true}},"d":[111,111],"e":true}},"d":[55,55,55,55,55,56,56,56,56,56,111,111,111,111,111,111,111,111,111,111,142],"e":true}},"d":[63,63],"e":true},"d":{"w":"eds","s":"ds","c":{},"d":[50,50,50,50,50,50],"e":true},"u":{"w":"eurocrypt2021","s":"urocrypt2021","c":{},"d":[50,50],"e":true},"i":{"w":"eight","s":"ight","c":{},"d":[59,59,59,59,80,80,80,80,93,93,93,93,114,114,114,114],"e":true},"q":{"w":"equal","s":"qual","c":{},"d":[70,70,70,70,70],"e":true},"t":{"w":"etc","s":"tc","c":{},"d":[75],"e":true},"m":{"w":"empty","s":"mpty","c":{},"d":[111,111,111,111,111,111,111,111,111,111,112,112,112,112,112],"e":true}},"d":[45,47,47,47,47,49,49,50,50,50,50,50,50,50,50,50,50,70,71,167],"e":true},"g":{"w":"g","s":"g","c":{"r":{"w":"gr","s":"r","c":{"o":{"w":"group","s":"oup","c":{"s":{"w":"groups","s":"s","c":{},"d":[42,42,42,47,50,50],"e":true},"r":{"w":"groupreferencecryptolib","s":"referencecryptolib","c":{"c":{"w":"groupreferencecryptolibcurve25519","s":"curve25519","c":{},"d":[42],"e":true}},"d":[42,42],"e":true}},"d":[5,5,42,42,42,42,42,42,56,56,56,56,56,56,56,56,56,56],"e":true},"e":{"w":"greater","s":"eater","c":{},"d":[59,59,59,59,80,80,80,80,93,93,93,93,109,114,114,114,114],"e":true},"p":{"w":"grpc","s":"pc","c":{},"d":[103,103,103,103,103],"e":true}},"d":[],"e":false},"u":{"w":"guidelines","s":"uidelines","c":{},"d":[28,28],"e":true},"c":{"w":"gc","s":"c","c":{"c":{"w":"gcc","s":"c","c":{},"d":[37,37],"e":true}},"d":[42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42],"e":true},"o":{"w":"go","s":"o","c":{"l":{"w":"golang","s":"lang","c":{},"d":[37,37],"e":true},"o":{"w":"good","s":"od","c":{},"d":[42,48,48,48,48,48,49,127],"e":true},"i":{"w":"going","s":"ing","c":{},"d":[139],"e":true}},"d":[],"e":false},"i":{"w":"gi","s":"i","c":{"t":{"w":"github","s":"thub","c":{},"d":[39,39,50,50,50,50,50,50,56,56,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,142,142,142],"e":true},"v":{"w":"give","s":"ve","c":{"s":{"w":"gives","s":"s","c":{},"d":[49],"e":true},"n":{"w":"given","s":"n","c":{},"d":[56,56,56,56,56,109],"e":true}},"d":[],"e":false},"l":{"w":"gilboa","s":"lboa","c":{},"d":[50,50,50,50,50,50,50,50,50,50],"e":true}},"d":[],"e":false},"e":{"w":"ge","s":"e","c":{"t":{"w":"get","s":"t","c":{"s":{"w":"gets","s":"s","c":{},"d":[42,42,43,43,44,44,44,44,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,47,47,47,47,47,47,47,47,49,49,49,49,167],"e":true}},"d":[39,48,48,48,48,48,48,48,48,48,48,48,84,84,84,84,84,87,87,87,87,87,89,89,89,89,89,89,89,89,89,89,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,139,147],"e":true},"n":{"w":"gen","s":"n","c":{"e":{"w":"gene","s":"e","c":{"r":{"w":"genera","s":"ra","c":{"l":{"w":"general","s":"l","c":{},"d":[42],"e":true},"t":{"w":"generat","s":"t","c":{"o":{"w":"generator","s":"or","c":{"s":{"w":"generators","s":"s","c":{},"d":[49,50,50,50,50],"e":true}},"d":[42,42],"e":true},"i":{"w":"generati","s":"i","c":{"o":{"w":"generation","s":"on","c":{},"d":[49],"e":true},"n":{"w":"generating","s":"ng","c":{},"d":[56,56,56,56,56,143],"e":true}},"d":[],"e":false},"e":{"w":"generate","s":"e","c":{"s":{"w":"generates","s":"s","c":{},"d":[143,143],"e":true},"d":{"w":"generated","s":"d","c":{},"d":[143],"e":true},"_":{"w":"generate_psi","s":"_psi","c":{},"d":[151,151],"e":true}},"d":[79,79,79,79,79,92,92,92,92,92,118,145,151],"e":true}},"d":[],"e":false}},"d":[],"e":false},"n":{"w":"genenerate","s":"nerate","c":{},"d":[56,56,56,56,56],"e":true}},"d":[],"e":false},"o":{"w":"genomes","s":"omes","c":{},"d":[50,50],"e":true},"_":{"w":"gen_db_only","s":"_db_only","c":{},"d":[56,56,56,56,56],"e":true}},"d":[],"e":false},"o":{"w":"geoffroy","s":"offroy","c":{},"d":[50,50,50,50],"e":true}},"d":[],"e":false},"a":{"w":"ga","s":"a","c":{"b":{"w":"gab","s":"b","c":{},"d":[42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42],"e":true},"m":{"w":"gam","s":"m","c":{"m":{"w":"gamma","s":"ma","c":{},"d":[43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43],"e":true},"a":{"w":"gama","s":"a","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"s":{"w":"gas","s":"s","c":{"t":{"w":"gasti","s":"ti","c":{},"d":[50,50],"e":true},"c":{"w":"gascón","s":"cón","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"t":{"w":"gattaca","s":"ttaca","c":{},"d":[50,50],"e":true}},"d":[42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42],"e":true},"b":{"w":"gb","s":"b","c":{"t":{"w":"gbt","s":"t","c":{},"d":[42,42,91,91,91,91,91],"e":true}},"d":[42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42],"e":true}},"d":[42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,45,50,50,50,50,50,50,50,50,50,50,70,71],"e":true},"m":{"w":"m","s":"m","c":{"o":{"w":"mo","s":"o","c":{"d":{"w":"mod","s":"d","c":{"e":{"w":"mode","s":"e","c":{"r":{"w":"moder","s":"r","c":{"e":{"w":"moderequired","s":"equired","c":{},"d":[73,73,73],"e":true},"r":{"w":"moderr22_lowcomm_psi_2pc14nonerr22_malicious_psi_2pc15none","s":"r22_lowcomm_psi_2pc14nonerr22_malicious_psi_2pc15none","c":{},"d":[92,92],"e":true}},"d":[],"e":false},"s":{"w":"modes","s":"s","c":{},"d":[73,73,73,73,73],"e":true},"_":{"w":"mode_","s":"_","c":{"o":{"w":"mode_o","s":"o","c":{"f":{"w":"mode_offline","s":"ffline","c":{"3":{"w":"mode_offline3run","s":"3run","c":{},"d":[79,79,79],"e":true},"_":{"w":"mode_offline_","s":"_","c":{"g":{"w":"mode_offline_gen_cache","s":"gen_cache","c":{"1":{"w":"mode_offline_gen_cache1servers","s":"1servers","c":{},"d":[79],"e":true}},"d":[73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,79,79],"e":true},"t":{"w":"mode_offline_transfer_cache","s":"transfer_cache","c":{"2":{"w":"mode_offline_transfer_cache2servers","s":"2servers","c":{},"d":[79,79,79],"e":true}},"d":[79,79],"e":true}},"d":[],"e":false}},"d":[73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,79,79],"e":true},"n":{"w":"mode_online","s":"nline","c":{"4":{"w":"mode_online4run","s":"4run","c":{},"d":[79,79,79],"e":true}},"d":[73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,79,79],"e":true}},"d":[],"e":false},"f":{"w":"mode_full","s":"full","c":{"5":{"w":"mode_full5run","s":"5run","c":{},"d":[79,79,79],"e":true}},"d":[73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,73,79,79],"e":true},"u":{"w":"mode_unspecified","s":"unspecified","c":{"0":{"w":"mode_unspecified0none","s":"0none","c":{"m":{"w":"mode_unspecified0nonemode_offline_gen_cache1servers","s":"mode_offline_gen_cache1servers","c":{},"d":[79],"e":true}},"d":[79],"e":true}},"d":[79,79],"e":true}},"d":[],"e":false},"l":{"w":"model","s":"l","c":{"p":{"w":"modelparty","s":"party","c":{},"d":[159,159,159],"e":true},"s":{"w":"models","s":"s","c":{},"d":[159],"e":true}},"d":[159,159,159,159,159,159,167],"e":true}},"d":[5,5,6,6,11,11,56,56,56,56,56,61,61,61,61,61,73,73,73,73,73,73,73,92,92,92,92,92,92,92,92,92,92,92,92,92,127,127],"e":true},"i":{"w":"modif","s":"if","c":{"y":{"w":"modify","s":"y","c":{},"d":[17,17,18,18,19,19],"e":true},"i":{"w":"modified","s":"ied","c":{},"d":[20,20],"e":true}},"d":[],"e":false},"u":{"w":"module","s":"ule","c":{},"d":[42],"e":true}},"d":[],"e":false},"r":{"w":"more","s":"re","c":{"n":{"w":"moreno","s":"no","c":{},"d":[50,50],"e":true}},"d":[40,42,42,45,50,50,59,59,59,59,59,59,59,59,75,76,76,76,76,76,80,80,80,80,80,80,80,80,93,93,93,93,93,93,93,93,109,114,114,114,114,114,114,114,114,127,133,144,147],"e":true},"s":{"w":"most","s":"st","c":{},"d":[49],"e":true},"m":{"w":"moment","s":"ment","c":{},"d":[136,147],"e":true}},"d":[],"e":false},"a":{"w":"ma","s":"a","c":{"i":{"w":"main","s":"in","c":{},"d":[6,6,11,11,28,28,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,31,31,31,31,31,31,31,31,31,31,31,31,117,117,117,117,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,142,142,142,142,142,150,150,150,150],"e":true},"c":{"w":"mac","s":"c","c":{"o":{"w":"macos","s":"os","c":{},"d":[7,7],"e":true},"h":{"w":"machine","s":"hine","c":{},"d":[123,155],"e":true}},"d":[],"e":false},"l":{"w":"mal","s":"l","c":{"i":{"w":"malicious","s":"icious","c":{},"d":[18,18,41,41,48,48,50,50,159,159,159,159,159,159,159,159,167],"e":true},"k":{"w":"malkin","s":"kin","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"n":{"w":"man","s":"n","c":{"y":{"w":"many","s":"y","c":{},"d":[47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48],"e":true},"n":{"w":"mannan","s":"nan","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"t":{"w":"mat","s":"t","c":{"h":{"w":"math","s":"h","c":{"c":{"w":"mathcal","s":"cal","c":{},"d":[48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48],"e":true},"b":{"w":"mathbb","s":"bb","c":{},"d":[48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48],"e":true},"r":{"w":"mathrm","s":"rm","c":{},"d":[49,49,49,49,49,49,49,49],"e":true}},"d":[],"e":false},"c":{"w":"match","s":"ch","c":{"i":{"w":"matching","s":"ing","c":{},"d":[48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48],"e":true},"m":{"w":"matchmaking","s":"making","c":{},"d":[50,50,76,76,76,76,76],"e":true},"_":{"w":"match_cnt","s":"_cnt","c":{},"d":[57,57,57,57],"e":true}},"d":[147],"e":true},"t":{"w":"matt","s":"t","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"x":{"w":"max","s":"x","c":{"_":{"w":"max_","s":"_","c":{"i":{"w":"max_items_per_bin","s":"items_per_bin","c":{"h":{"w":"max_items_per_binhow","s":"how","c":{},"d":[48,48,48],"e":true}},"d":[48,48,48,48,48,48,48],"e":true},"r":{"w":"max_retry","s":"retry","c":{"_":{"w":"max_retry_interval_ms","s":"_interval_ms","c":{},"d":[111,111,111],"e":true}},"d":[111,111,111,111],"e":true}},"d":[],"e":false},"i":{"w":"maximum","s":"imum","c":{},"d":[111,111,111,111,111,112,112,112,112,112],"e":true}},"d":[109,109,109,111,111],"e":true},"k":{"w":"make","s":"ke","c":{"s":{"w":"makes","s":"s","c":{},"d":[49],"e":true}},"d":[56,56,56,56,56,130,130,130,130,130,130,130,130,130,130,141,142,143],"e":true},"r":{"w":"mar","s":"r","c":{"i":{"w":"mariana","s":"iana","c":{},"d":[50,50],"e":true}},"d":[50,50],"e":true},"y":{"w":"may","s":"y","c":{},"d":[67,67,67,67,67,67,67,67,67,67,72,72,72,72,72,72,72,72,72,72,109,147,159,167],"e":true},"p":{"w":"map","s":"p","c":{},"d":[105,105,105],"e":true},"d":{"w":"made","s":"de","c":{},"d":[111,111,111,111,111],"e":true}},"d":[],"e":false},"i":{"w":"mi","s":"i","c":{"g":{"w":"migrate","s":"grate","c":{},"d":[21,21],"e":true},"r":{"w":"mirrors","s":"rrors","c":{},"d":[25,129,137,161],"e":true},"n":{"w":"min","s":"n","c":{"u":{"w":"minute","s":"ute","c":{"s":{"w":"minutes","s":"s","c":{},"d":[157,157],"e":true}},"d":[44],"e":true},"i":{"w":"mini","s":"i","c":{},"d":[159,159,159,159],"e":true}},"d":[],"e":false},"c":{"w":"mic","s":"c","c":{"r":{"w":"microsoft","s":"rosoft","c":{},"d":[48,48,48,48,48,48,48,50,50,50,50,50,50,50,56,56,142,142,142],"e":true},"h":{"w":"michael","s":"hael","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"l":{"w":"millisecond","s":"llisecond","c":{"s":{"w":"milliseconds","s":"s","c":{},"d":[109,109,109,109,109],"e":true}},"d":[127,127],"e":true}},"d":[],"e":false},"u":{"w":"mu","s":"u","c":{"l":{"w":"multi","s":"lti","c":{"p":{"w":"multipl","s":"pl","c":{"e":{"w":"multiple","s":"e","c":{},"d":[22,45,45,48,48,48,48,48,159],"e":true},"i":{"w":"multiplication","s":"ication","c":{},"d":[42],"e":true}},"d":[],"e":false}},"d":[92,92,165,165,166],"e":true},"c":{"w":"much","s":"ch","c":{},"d":[47,48,78,78,78,78,78,78,78,78,78,78],"e":true},"s":{"w":"must","s":"st","c":{},"d":[55,55,55,55,56,56,56,56,56,59,59,80,80,93,93,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,114,114,140,141,141,141,141,141,141,142,147,147,147,148,148,159],"e":true}},"d":[],"e":false},"e":{"w":"me","s":"e","c":{"t":{"w":"methods","s":"thods","c":{},"d":[22],"e":true},"a":{"w":"mea","s":"a","c":{"8":{"w":"mea86","s":"86","c":{},"d":[42,42,76,76,76,76,76],"e":true},"d":{"w":"meadows","s":"dows","c":{},"d":[42,50,50,76,76,76,76,76],"e":true},"n":{"w":"mean","s":"n","c":{"t":{"w":"meantime","s":"time","c":{},"d":[45,45],"e":true},"s":{"w":"means","s":"s","c":{},"d":[48,48,48,48,48,111,111,111,111,111],"e":true},"i":{"w":"meaningless","s":"ingless","c":{},"d":[147],"e":true}},"d":[],"e":false},"s":{"w":"measure","s":"sure","c":{"d":{"w":"measured","s":"d","c":{},"d":[127,157],"e":true}},"d":[118,123,127,151,155],"e":true}},"d":[],"e":false},"c":{"w":"mechanism","s":"chanism","c":{},"d":[45,45],"e":true},"r":{"w":"mersenne","s":"rsenne","c":{},"d":[50,50,91,91,91,91,91],"e":true},"i":{"w":"meiklejohn","s":"iklejohn","c":{},"d":[50,50],"e":true},"s":{"w":"mes","s":"s","c":{"s":{"w":"message","s":"sage","c":{"s":{"w":"messages","s":"s","c":{},"d":[53,53,61,61,82,82,95,95,95,95,95,95,109,109],"e":true}},"d":[51,109],"e":true},"h":{"w":"mesh","s":"h","c":{},"d":[109,109,109,109,109,109,109,109,109,109],"e":true}},"d":[],"e":false},"m":{"w":"memory","s":"mory","c":{"p":{"w":"memorypsiconfig","s":"psiconfig","c":{},"d":[82,82,82,82,82],"e":true}},"d":[56,56,56,56,56,56,56,56,56,56,67,67,67,67,67,67,67,67,67,67,72,72,72,72,72,72,72,72,72,72,87],"e":true}},"d":[],"e":false},"p":{"w":"mpc","s":"pc","c":{},"d":[45,159],"e":true},"s":{"w":"ms","s":"s","c":{},"d":[127,127,127],"e":true},"t":{"w":"mtls","s":"tls","c":{},"d":[148],"e":true}},"d":[44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,48,48,48,48,48,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,50,50,50,50,50,50,50,50,50,50,50,50,157,157,157],"e":true},"y":{"w":"y","s":"y","c":{"a":{"w":"ya","s":"a","c":{"c":{"w":"yacl","s":"cl","c":{},"d":[6,6,10,10,13,13,49,49,97,97,97,97,97,97,97,139,139],"e":true},"n":{"w":"yang","s":"ng","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"o":{"w":"you","s":"ou","c":{"r":{"w":"your","s":"r","c":{},"d":[43,45,59,59,59,59,80,80,80,80,93,93,93,93,114,114,114,114],"e":true}},"d":[22,22,22,22,22,22,22,36,37,39,56,56,56,56,56,67,67,67,67,67,67,67,67,67,67,72,72,72,72,72,72,72,72,72,72,117,127,127,127,127,127,130,132,139,139,139,139,140,142,143,144,145,147,147,147,147,147,148,148,148,148,150,159,163],"e":true},"i":{"w":"yi","s":"i","c":{"y":{"w":"yiy_i","s":"y_i","c":{"y":{"w":"yiy_iyi","s":"yi","c":{},"d":[42,42,42,42,47,47,47,47,47,47],"e":true}},"d":[42,42,42,47,47,47],"e":true}},"d":[42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47],"e":true},"_":{"w":"y_","s":"_","c":{"i":{"w":"y_i","s":"i","c":{},"d":[42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47],"e":true}},"d":[45,45,45,45,45,45,45,45,45,45,45,45,45],"e":true},"y":{"w":"yy","s":"y","c":{"y":{"w":"yyy","s":"y","c":{},"d":[45,45,45],"e":true}},"d":[45,45,45],"e":true},"b":{"w":"yb","s":"b","c":{"y":{"w":"yby","s":"y","c":{},"d":[45,45,45,45,45,45,45,45,45,45,45,45,45,45],"e":true}},"d":[45,45,45,45,45,45,45,45,45,45],"e":true},"x":{"w":"yx","s":"x","c":{},"d":[49,49,49,49,49,49,49,49,49,49,49],"e":true},"u":{"w":"yuval","s":"uval","c":{},"d":[50,50],"e":true}},"d":[42,42,42,42,42,42,42,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,47,47,47,47,47,47,47,47,47,47,47,47,47,47,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,50,50,50,50,50,50,50,50],"e":true},"x":{"w":"x","s":"x","c":{"z":{"w":"xz","s":"z","c":{},"d":[6,6,12,12],"e":true},"x":{"w":"xx","s":"x","c":{"d":{"w":"xxd","s":"d","c":{},"d":[37,37],"e":true},"x":{"w":"xxx","s":"x","c":{},"d":[45,45,45,145],"e":true}},"d":[45,45,45],"e":true},"i":{"w":"xi","s":"i","c":{"x":{"w":"xix_i","s":"x_i","c":{"x":{"w":"xix_ixi","s":"xi","c":{},"d":[42,42,42,42,47,47,47,47,47,47],"e":true}},"d":[42,42,42,47,47,47],"e":true}},"d":[42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47],"e":true},"_":{"w":"x_i","s":"_i","c":{},"d":[42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47],"e":true},"a":{"w":"xa","s":"a","c":{"y":{"w":"xay","s":"y","c":{},"d":[45,45,45,45,45,45],"e":true},"x":{"w":"xax","s":"x","c":{},"d":[45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45],"e":true},"b":{"w":"xab","s":"b","c":{"x":{"w":"xabx","s":"x","c":{},"d":[45,45,45,45,45,45,45],"e":true}},"d":[45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45],"e":true}},"d":[45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45],"e":true},"e":{"w":"xeon","s":"eon","c":{},"d":[45,45,45,45,45,165,165,165,165,165,165,165,165,165,165,166],"e":true},"u":{"w":"xu","s":"u","c":{},"d":[50,50],"e":true}},"d":[42,42,42,42,42,42,42,42,42,42,42,42,42,42,43,43,43,43,43,43,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,50,50,50,50,50,50],"e":true},"h":{"w":"h","s":"h","c":{"0":{"w":"h0","s":"0","c":{},"d":[48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48],"e":true},"1":{"w":"h1","s":"1","c":{},"d":[44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48],"e":true},"2":{"w":"h2","s":"2","c":{},"d":[44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48],"e":true},"3":{"w":"h3","s":"3","c":{},"d":[44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,48,48,48,48,48,48],"e":true},"a":{"w":"ha","s":"a","c":{"s":{"w":"has","s":"s","c":{"h":{"w":"hash","s":"h","c":{"_":{"w":"hash_","s":"_","c":{"t":{"w":"hash_to_curve","s":"to_curve","c":{},"d":[18,18,91,91,91,91,91],"e":true},"f":{"w":"hash_func_count","s":"func_count","c":{"c":{"w":"hash_func_countcuckoo","s":"cuckoo","c":{},"d":[48],"e":true}},"d":[48,48,48,48,48,48,48,48,48,48,48,48],"e":true}},"d":[],"e":false},"e":{"w":"hashed","s":"ed","c":{},"d":[45,45],"e":true},"i":{"w":"hashing","s":"ing","c":{"t":{"w":"hashingtable_sizepositive","s":"table_sizepositive","c":{},"d":[48,48],"e":true}},"d":[48,48,48,48,48,48,48,48,48,48,48,48,48,48],"e":true}},"d":[42,42,42,42,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,70,70,70,70,70,84,84,84,84,84],"e":true}},"d":[43,45,45,47,48,48,48,48,48,48,48,48,48,48,48,48,56,56,56,56,56,145,145,145],"e":true},"v":{"w":"have","s":"ve","c":{},"d":[22,25,59,59,59,59,80,80,80,80,93,93,93,93,103,103,103,103,103,114,114,114,114,127,129,137,142,147,147,147,148,161],"e":true},"n":{"w":"han","s":"n","c":{"g":{"w":"hangzhou","s":"gzhou","c":{},"d":[25,25,129,129,137,137,161],"e":true},"d":{"w":"handbook","s":"dbook","c":{},"d":[32,32,33,33],"e":true}},"d":[],"e":false},"r":{"w":"hardness","s":"rdness","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"t":{"w":"ht","s":"t","c":{"t":{"w":"http","s":"tp","c":{"s":{"w":"https","s":"s","c":{},"d":[28,28,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,31,31,31,31,31,31,31,31,31,31,31,31,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,56,56,76,76,76,76,76,76,76,76,76,76,76,76,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,134,142,142,142],"e":true},"_":{"w":"http_","s":"_","c":{"m":{"w":"http_max_payload_size","s":"max_payload_size","c":{},"d":[109],"e":true},"t":{"w":"http_timeout_ms","s":"timeout_ms","c":{},"d":[109],"e":true},"c":{"w":"http_codes","s":"codes","c":{"r":{"w":"http_codesrepeated","s":"repeated","c":{},"d":[111],"e":true}},"d":[111,111],"e":true}},"d":[],"e":false}},"d":[50,50,50,50,50,50,91,91,91,91,91,91,103,103,103,103,103,103,103,103,103,103,109,109,109,111,111,111,111,111,111,111,111,111,111],"e":true},"m":{"w":"html","s":"ml","c":{},"d":[50,50,50],"e":true}},"d":[],"e":false},"o":{"w":"ho","s":"o","c":{"n":{"w":"honest","s":"nest","c":{"2":{"w":"honest2p","s":"2p","c":{"1":{"w":"honest2p1","s":"1","c":{"e":{"w":"honest2p1ecdh","s":"ecdh","c":{},"d":[159,159],"e":true}},"d":[159],"e":true},"2":{"w":"honest2p2","s":"2","c":{"p":{"w":"honest2p2pcg_psisemi","s":"pcg_psisemi","c":{},"d":[159,159],"e":true}},"d":[159],"e":true},"3":{"w":"honest2p3","s":"3","c":{"m":{"w":"honest2p3mini","s":"mini","c":{},"d":[159,159],"e":true}},"d":[159],"e":true}},"d":[159,159,159,159,159,159],"e":true}},"d":[41,41,41,41,41,41,41,41,42,42,44,47,49,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,159,167],"e":true},"g":{"w":"hogg","s":"gg","c":{},"d":[42,50,50],"e":true},"w":{"w":"how","s":"w","c":{"e":{"w":"however","s":"ever","c":{},"d":[45,71,127,147],"e":true}},"d":[48,48,48,48,48,48,148,148,148,148],"e":true},"m":{"w":"homomorphic","s":"momorphic","c":{"a":{"w":"homomorphically","s":"ally","c":{},"d":[48,48,48,48,48,48,48,48,48,48,48,48,48],"e":true}},"d":[48,50,50,50,50,50,50,50,50],"e":true},"s":{"w":"host","s":"st","c":{},"d":[67,67,67,67,67,72,72,72,72,72,110,110,110],"e":true},"u":{"w":"hours","s":"urs","c":{},"d":[157,157],"e":true}},"d":[],"e":false},"f":{"w":"hfh99","s":"fh99","c":{},"d":[41,41,41,42,42],"e":true},"u":{"w":"hu","s":"u","c":{"b":{"w":"huberman","s":"berman","c":{},"d":[42,50,50],"e":true},"m":{"w":"human","s":"man","c":{},"d":[50,50],"e":true},"a":{"w":"huang","s":"ang","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"e":{"w":"he","s":"e","c":{"l":{"w":"hellman","s":"llman","c":{},"d":[42,42,42,50,50,91,91,91,91,91],"e":true},"i":{"w":"heidelberg","s":"idelberg","c":{},"d":[50,50],"e":true},"a":{"w":"header","s":"ader","c":{"s":{"w":"headers","s":"s","c":{},"d":[56,56,56,56,56,141,141,141,141],"e":true}},"d":[55,55,55,55,55],"e":true},"r":{"w":"here","s":"re","c":{},"d":[118,127,127,127,130,134,142,142,144,144,147,147,157],"e":true}},"d":[45],"e":true},"_":{"w":"h_","s":"_","c":{"0":{"w":"h_0","s":"0","c":{},"d":[48,48,48,48,48,48,48,48,48,48],"e":true},"1":{"w":"h_1","s":"1","c":{},"d":[44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48],"e":true},"2":{"w":"h_2","s":"2","c":{},"d":[44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48],"e":true},"3":{"w":"h_3","s":"3","c":{},"d":[44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44],"e":true}},"d":[],"e":false},"n":{"w":"hn","s":"n","c":{},"d":[49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49],"e":true},"i":{"w":"highly","s":"ighly","c":{},"d":[127],"e":true}},"d":[42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,50,50,50,50,157,157,157],"e":true},"v":{"w":"v","s":"v","c":{"0":{"w":"v0","s":"0","c":{},"d":[29,29,29,29,29,29,29,29],"e":true},"1":{"w":"v1","s":"1","c":{},"d":[22,22,22,22,22,29,29,29,29,29,29,29,51,51,51,51,94,94,115,115,115,115,158,160,160],"e":true},"2":{"w":"v2","s":"2","c":{},"d":[18,18,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,29,29,29,29,29,29,29,42,42,42,42,42,42,42,50,50,50,51,51,51,51,91,91,91,91,91,91,94,94,94,94,97,97,97,97,97,97,97,97,97,97,97,97,97,97,115,115,115,115,115,115,115,115,115,148,149,149,155,157],"e":true},"o":{"w":"vo","s":"o","c":{"l":{"w":"vol","s":"l","c":{"e":{"w":"vole","s":"e","c":{},"d":[18,18,41,41,49,49,49,49,49,50,50,50,50,50,50],"e":true}},"d":[50,50,50,50],"e":true},"p":{"w":"voprf","s":"prf","c":{},"d":[47,47,47,50,50,50],"e":true}},"d":[],"e":false},"e":{"w":"ve","s":"e","c":{"r":{"w":"ver","s":"r","c":{"s":{"w":"version","s":"sion","c":{},"d":[37,141,141,143,149],"e":true},"l":{"w":"verlag","s":"lag","c":{},"d":[50,50,50,50],"e":true},"c":{"w":"vercauteren","s":"cauteren","c":{},"d":[50,50],"e":true},"y":{"w":"very","s":"y","c":{},"d":[109,147],"e":true},"i":{"w":"verif","s":"if","c":{"i":{"w":"verification","s":"ication","c":{"c":{"w":"verificationca_file_path","s":"ca_file_path","c":{},"d":[112,112],"e":true}},"d":[112,112,112,112,112,112,112,112],"e":true},"y":{"w":"verify","s":"y","c":{"_":{"w":"verify_depth","s":"_depth","c":{},"d":[112,112,112,148,148,148],"e":true}},"d":[112,112,112,112,112],"e":true}},"d":[],"e":false}},"d":[],"e":false},"c":{"w":"vec","s":"c","c":{"t":{"w":"vector","s":"tor","c":{},"d":[49,50,50,50,50,50,50],"e":true}},"d":[49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49],"e":true}},"d":[],"e":false},"a":{"w":"va","s":"a","c":{"l":{"w":"val","s":"l","c":{"u":{"w":"value","s":"ue","c":{"s":{"w":"values","s":"s","c":{},"d":[44,44,59,59,59,59,59,59,59,59,80,80,80,80,80,80,80,80,93,93,93,93,93,93,93,93,114,114,114,114,114,114,114,114,141,141,147,147],"e":true}},"d":[45,45,49,49,53,53,53,59,59,59,59,61,61,61,64,64,64,64,64,65,65,65,65,65,67,67,67,67,67,68,68,68,68,68,72,72,72,72,72,80,80,80,80,82,82,82,93,93,93,93,95,95,95,106,106,106,109,114,114,114,114,141,141,141,141,141,141,147,147,147,147,147,147,147],"e":true},"i":{"w":"valid","s":"id","c":{},"d":[56,56,56,56,56,73,73,73,73,73],"e":true}},"d":[],"e":false},"r":{"w":"varia","s":"ria","c":{"n":{"w":"variant","s":"nt","c":{},"d":[45],"e":true},"b":{"w":"variable","s":"ble","c":{},"d":[59,59,59,59,59,59,59,59,59,59,59,59,80,80,80,80,80,80,80,80,80,80,80,80,93,93,93,93,93,93,93,93,93,93,93,93,114,114,114,114,114,114,114,114,114,114,114,114],"e":true}},"d":[],"e":false}},"d":[],"e":false}},"d":[49,49,50,50],"e":true},"k":{"w":"k","s":"k","c":{"e":{"w":"ke","s":"e","c":{"y":{"w":"key","s":"y","c":{"s":{"w":"keys","s":"s","c":{"u":{"w":"keysunsupportedsupported","s":"unsupportedsupported","c":{"r":{"w":"keysunsupportedsupportedrelease","s":"release","c":{},"d":[22,22],"e":true}},"d":[22],"e":true},"_":{"w":"keys_unique","s":"_unique","c":{},"d":[65,65,65,65],"e":true},"r":{"w":"keysrepeated","s":"repeated","c":{},"d":[70,70,70,73,73,73],"e":true}},"d":[22,22,65,65,70,70,70,70,70,70,70,70,70,73,73,73,73,73,73,73,77,77,77,130,130,130,130,130,130,130,130,130,130,141,141],"e":true},"w":{"w":"keyword","s":"word","c":{},"d":[48,48,136,136],"e":true}},"d":[20,20,20,20,42,42,42,42,42,42,42,42,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,49,49,49,50,50,84,84,84,84,84,106,106,106,106,112,112,112,112,112,141,141,141,141,141,141,148,148],"e":true},"l":{"w":"kelong","s":"long","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"k":{"w":"kkrt","s":"krt","c":{"1":{"w":"kkrt16","s":"16","c":{},"d":[41,41,41,44,44,44,44,167,167,167],"e":true},"c":{"w":"kkrtconfig","s":"config","c":{"f":{"w":"kkrtconfigfor","s":"for","c":{},"d":[69,69,69],"e":true}},"d":[61,61,61,61,61,69,69,69],"e":true},"_":{"w":"kkrt_","s":"_","c":{"c":{"w":"kkrt_config","s":"config","c":{},"d":[69,69,69,69,69],"e":true},"p":{"w":"kkrt_psi_","s":"psi_","c":{"2":{"w":"kkrt_psi_2pc","s":"2pc","c":{"2":{"w":"kkrt_psi_2pc2noticed","s":"2noticed","c":{},"d":[92],"e":true}},"d":[92,92],"e":true},"n":{"w":"kkrt_psi_npc","s":"npc","c":{"6":{"w":"kkrt_psi_npc6iterative","s":"6iterative","c":{},"d":[92],"e":true}},"d":[92,92],"e":true}},"d":[],"e":false}},"d":[],"e":false},"s":{"w":"kkrtsemi","s":"semi","c":{},"d":[159,159,159],"e":true}},"d":[21,21,22,22,22,22,22,22,22,22,22,22,67,69,69,69,69,69,92,92,92,92,92,159,159,159,159,159],"e":true},"n":{"w":"know","s":"now","c":{"n":{"w":"known","s":"n","c":{},"d":[43],"e":true},"l":{"w":"knowledge","s":"ledge","c":{},"d":[50,50],"e":true},"s":{"w":"knows","s":"s","c":{},"d":[145],"e":true}},"d":[145,145],"e":true},"i":{"w":"ki","s":"i","c":{"m":{"w":"kim","s":"m","c":{},"d":[50,50],"e":true}},"d":[44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44],"e":true},"_":{"w":"k_i","s":"_i","c":{},"d":[44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44],"e":true},"a":{"w":"ka","s":"a","c":{"p":{"w":"kappa","s":"ppa","c":{"r":{"w":"kappar","s":"r","c":{},"d":[49,49,49,49],"e":true}},"d":[49,49,49,49],"e":true},"t":{"w":"katz","s":"tz","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"o":{"w":"ko","s":"o","c":{"h":{"w":"kohl","s":"hl","c":{},"d":[50,50,50,50,50,50,50,50],"e":true},"l":{"w":"kolesnikov","s":"lesnikov","c":{},"d":[50,50],"e":true}},"d":[],"e":false},"u":{"w":"kumaresan","s":"umaresan","c":{},"d":[50,50],"e":true}},"d":[44,44,44,44,44,44,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,50,50,50,50,50,50,50,50],"e":true},"q":{"w":"q","s":"q","c":{"u":{"w":"qu","s":"u","c":{"i":{"w":"qui","s":"i","c":{"c":{"w":"quick","s":"ck","c":{"s":{"w":"quickstart","s":"start","c":{},"d":[31,31,115,115,115,115,115,115,115,115,115,115,115,115],"e":true}},"d":[135,158],"e":true},"t":{"w":"quite","s":"te","c":{},"d":[127],"e":true}},"d":[],"e":false},"e":{"w":"que","s":"e","c":{"r":{"w":"quer","s":"r","c":{"y":{"w":"query","s":"y","c":{"p":{"w":"queryparams","s":"params","c":{},"d":[48,48,48,48,48,48],"e":true},"_":{"w":"query_","s":"_","c":{"p":{"w":"query_powers","s":"powers","c":{"h":{"w":"query_powershow","s":"how","c":{},"d":[48],"e":true}},"d":[48,48],"e":true},"f":{"w":"query_file","s":"file","c":{},"d":[55,55,55,55,55],"e":true},"b":{"w":"query_batch_size","s":"batch_size","c":{},"d":[55,55,55,55,55],"e":true},"r":{"w":"query_rows","s":"rows","c":{"_":{"w":"query_rows_per_bucket","s":"_per_bucket","c":{},"d":[145,145,145,145,145,145],"e":true}},"d":[145,145,145,145,145,145],"e":true}},"d":[],"e":false},"i":{"w":"querying","s":"ing","c":{},"d":[145],"e":true}},"d":[48,48,48,48,48,48,48,48,48,48,48,48,55,55,55,55,55,55,55,55,55,55,127,145,145],"e":true},"i":{"w":"queries","s":"ies","c":{},"d":[143],"e":true}},"d":[],"e":false},"s":{"w":"questions","s":"stions","c":{},"d":[115,115,115,115,146],"e":true}},"d":[],"e":false}},"d":[],"e":false}},"d":[50,50,91,91,91,91,91],"e":true},"_":{"w":"_","s":"_","c":{"t":{"w":"_t","s":"t","c":{"f":{"w":"_tft","s":"ft","c":{},"d":[48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48],"e":true}},"d":[48,48,48,48,48,48,48,48],"e":true},"b":{"w":"_bits","s":"bits","c":{},"d":[48,48,48,48,48],"e":true}},"d":[42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,142,142,142],"e":true},"z":{"w":"z","s":"z","c":{"i":{"w":"zi","s":"i","c":{},"d":[43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43],"e":true},"_":{"w":"z_i","s":"_i","c":{},"d":[43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43],"e":true},"e":{"w":"zero","s":"ero","c":{},"d":[48,48,48,48,48,50,50],"e":true},"o":{"w":"zohner","s":"ohner","c":{},"d":[50,50],"e":true}},"d":[43,43,43,43,43,43,43,43,50,50],"e":true}},"d":[],"e":false},"isArray":false},"type":{"type":"Radix","node":{"w":"","s":"","c":{"f":{"w":"fragment","s":"fragment","c":{},"d":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167],"e":true}},"d":[],"e":false},"isArray":false},"symbol.domain":{"type":"Radix","node":{"w":"","s":"","c":{},"d":[],"e":false},"isArray":false},"symbol.name":{"type":"Radix","node":{"w":"","s":"","c":{},"d":[],"e":false},"isArray":false},"symbol.module":{"type":"Radix","node":{"w":"","s":"","c":{},"d":[],"e":false},"isArray":false}},"vectorIndexes":{},"searchableProperties":["url","title","content","type","symbol.domain","symbol.name","symbol.module"],"searchablePropertiesWithTypes":{"url":"string","title":"string","content":"string","type":"string","symbol.domain":"string","symbol.name":"string","symbol.module":"string"},"frequencies":{"url":{"1":{"psi":0.2,"main":0.1,"en":0.1,"welcome":0.1,"to":0.1,"secretflow":0.1,"library":0.1,"s":0.1,"documentation":0.1},"2":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"whatsnew":0.16666666666666666,"release":0.16666666666666666,"notes":0.16666666666666666},"3":{"psi":0.2,"main":0.2,"en":0.2,"whatsnew":0.2,"release":0.2},"4":{"5":0.14285714285714285,"psi":0.14285714285714285,"main":0.14285714285714285,"en":0.14285714285714285,"whatsnew":0.14285714285714285,"v0":0.14285714285714285,"0beta":0.14285714285714285},"5":{"4":0.14285714285714285,"psi":0.14285714285714285,"main":0.14285714285714285,"en":0.14285714285714285,"whatsnew":0.14285714285714285,"v0":0.14285714285714285,"2beta":0.14285714285714285},"6":{"4":0.14285714285714285,"psi":0.14285714285714285,"main":0.14285714285714285,"en":0.14285714285714285,"whatsnew":0.14285714285714285,"v0":0.14285714285714285,"0beta":0.14285714285714285},"7":{"0":0.125,"4":0.125,"psi":0.125,"main":0.125,"en":0.125,"whatsnew":0.125,"v0":0.125,"dev240801":0.125},"8":{"0":0.125,"4":0.125,"psi":0.125,"main":0.125,"en":0.125,"whatsnew":0.125,"v0":0.125,"dev240731":0.125},"9":{"0":0.125,"4":0.125,"psi":0.125,"main":0.125,"en":0.125,"whatsnew":0.125,"v0":0.125,"dev240521":0.125},"10":{"0":0.125,"4":0.125,"psi":0.125,"main":0.125,"en":0.125,"whatsnew":0.125,"v0":0.125,"dev240517":0.125},"11":{"0":0.125,"4":0.125,"psi":0.125,"main":0.125,"en":0.125,"whatsnew":0.125,"v0":0.125,"dev240514":0.125},"12":{"0":0.125,"4":0.125,"psi":0.125,"main":0.125,"en":0.125,"whatsnew":0.125,"v0":0.125,"dev240401":0.125},"13":{"0":0.125,"4":0.125,"psi":0.125,"main":0.125,"en":0.125,"whatsnew":0.125,"v0":0.125,"dev240329":0.125},"14":{"3":0.14285714285714285,"psi":0.14285714285714285,"main":0.14285714285714285,"en":0.14285714285714285,"whatsnew":0.14285714285714285,"v0":0.14285714285714285,"0beta":0.14285714285714285},"15":{"0":0.125,"3":0.125,"psi":0.125,"main":0.125,"en":0.125,"whatsnew":0.125,"v0":0.125,"dev240304":0.125},"16":{"0":0.125,"3":0.125,"psi":0.125,"main":0.125,"en":0.125,"whatsnew":0.125,"v0":0.125,"dev240222":0.125},"17":{"0":0.125,"3":0.125,"psi":0.125,"main":0.125,"en":0.125,"whatsnew":0.125,"v0":0.125,"dev240219":0.125},"18":{"0":0.125,"2":0.125,"psi":0.125,"main":0.125,"en":0.125,"whatsnew":0.125,"v0":0.125,"dev240123":0.125},"19":{"0":0.125,"2":0.125,"psi":0.125,"main":0.125,"en":0.125,"whatsnew":0.125,"v0":0.125,"dev231228":0.125},"20":{"0":0.125,"2":0.125,"psi":0.125,"main":0.125,"en":0.125,"whatsnew":0.125,"v0":0.125,"dev231221":0.125},"21":{"1":0.14285714285714285,"psi":0.14285714285714285,"main":0.14285714285714285,"en":0.14285714285714285,"whatsnew":0.14285714285714285,"v0":0.14285714285714285,"0beta":0.14285714285714285},"22":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"getting_started":0.16666666666666666,"getting":0.16666666666666666,"started":0.16666666666666666},"23":{"psi":0.2,"main":0.2,"en":0.2,"getting_started":0.2,"installation":0.2},"24":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"getting_started":0.16666666666666666,"c":0.16666666666666666,"binaries":0.16666666666666666},"25":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"getting_started":0.16666666666666666,"release":0.16666666666666666,"docker":0.16666666666666666},"26":{"psi":0.14285714285714285,"main":0.14285714285714285,"en":0.14285714285714285,"getting_started":0.14285714285714285,"building":0.14285714285714285,"from":0.14285714285714285,"source":0.14285714285714285},"27":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"getting_started":0.16666666666666666,"python":0.16666666666666666,"packages":0.16666666666666666},"28":{"psi":0.2,"main":0.2,"en":0.2,"getting_started":0.2,"id1":0.2},"29":{"psi":0.2,"main":0.2,"en":0.2,"getting_started":0.2,"id2":0.2},"30":{"psi":0.2,"main":0.2,"en":0.2,"getting_started":0.2,"applications":0.2},"31":{"psi":0.2,"main":0.2,"en":0.2,"getting_started":0.2,"id3":0.2},"32":{"psi":0.2,"main":0.2,"en":0.2,"getting_started":0.2,"id4":0.2},"33":{"psi":0.2857142857142857,"main":0.14285714285714285,"en":0.14285714285714285,"getting_started":0.14285714285714285,"deprecated":0.14285714285714285,"easy":0.14285714285714285},"34":{"psi":0.2,"main":0.2,"en":0.2,"getting_started":0.2,"building":0.2},"35":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"getting_started":0.16666666666666666,"system":0.16666666666666666,"setup":0.16666666666666666},"36":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"getting_started":0.16666666666666666,"dev":0.16666666666666666,"docker":0.16666666666666666},"37":{"psi":0.2,"main":0.2,"en":0.2,"getting_started":0.2,"linux":0.2},"38":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"getting_started":0.16666666666666666,"build":0.16666666666666666,"unittest":0.16666666666666666},"39":{"psi":0.14285714285714285,"main":0.14285714285714285,"en":0.14285714285714285,"getting_started":0.14285714285714285,"reporting":0.14285714285714285,"an":0.14285714285714285,"issue":0.14285714285714285},"40":{"psi":0.2,"main":0.2,"en":0.2,"development":0.4},"41":{"psi":0.25,"main":0.125,"en":0.125,"development":0.125,"psi_protocol_intro":0.125,"protocols":0.125,"introduction":0.125},"42":{"psi":0.2857142857142857,"main":0.14285714285714285,"en":0.14285714285714285,"development":0.14285714285714285,"psi_protocol_intro":0.14285714285714285,"ecdh":0.14285714285714285},"43":{"psi":0.25,"main":0.125,"en":0.125,"development":0.125,"psi_protocol_intro":0.125,"ecdh":0.125,"3p":0.125},"44":{"psi":0.2857142857142857,"main":0.14285714285714285,"en":0.14285714285714285,"development":0.14285714285714285,"psi_protocol_intro":0.14285714285714285,"kkrt16":0.14285714285714285},"45":{"psi":0.25,"main":0.125,"en":0.125,"development":0.125,"psi_protocol_intro":0.125,"differentially":0.125,"private":0.125},"46":{"psi":0.2857142857142857,"main":0.14285714285714285,"en":0.14285714285714285,"development":0.14285714285714285,"psi_protocol_intro":0.14285714285714285,"unbalanced":0.14285714285714285},"47":{"psi":0.2222222222222222,"main":0.1111111111111111,"en":0.1111111111111111,"development":0.1111111111111111,"psi_protocol_intro":0.1111111111111111,"ecdh":0.1111111111111111,"oprf":0.1111111111111111,"based":0.1111111111111111},"48":{"psi":0.2857142857142857,"main":0.14285714285714285,"en":0.14285714285714285,"development":0.14285714285714285,"psi_protocol_intro":0.14285714285714285,"labeled":0.14285714285714285},"49":{"psi":0.2222222222222222,"main":0.1111111111111111,"en":0.1111111111111111,"development":0.1111111111111111,"psi_protocol_intro":0.1111111111111111,"rr22":0.1111111111111111,"blazing":0.1111111111111111,"fast":0.1111111111111111},"50":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"development":0.16666666666666666,"psi_protocol_intro":0.16666666666666666,"reference":0.16666666666666666},"51":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.3333333333333333,"api":0.16666666666666666},"52":{"psi":0.14285714285714285,"main":0.14285714285714285,"en":0.14285714285714285,"reference":0.14285714285714285,"pir_config":0.14285714285714285,"pir":0.14285714285714285,"configuration":0.14285714285714285},"53":{"psi":0.125,"main":0.125,"en":0.125,"reference":0.125,"pir_config":0.125,"table":0.125,"of":0.125,"contents":0.125},"54":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"pir_config":0.16666666666666666,"messages":0.16666666666666666},"55":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"pir_config":0.16666666666666666,"apsireceiverconfig":0.16666666666666666},"56":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"pir_config":0.16666666666666666,"apsisenderconfig":0.16666666666666666},"57":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"pir_config":0.16666666666666666,"pirresultreport":0.16666666666666666},"58":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"pir_config":0.16666666666666666,"enums":0.16666666666666666},"59":{"psi":0.125,"main":0.125,"en":0.125,"reference":0.125,"pir_config":0.125,"scalar":0.125,"value":0.125,"types":0.125},"60":{"psi":0.25,"main":0.125,"en":0.125,"reference":0.125,"psi_v2_config":0.125,"v2":0.125,"configuration":0.125},"61":{"psi":0.125,"main":0.125,"en":0.125,"reference":0.125,"psi_v2_config":0.125,"table":0.125,"of":0.125,"contents":0.125},"62":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"psi_v2_config":0.16666666666666666,"messages":0.16666666666666666},"63":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"psi_v2_config":0.16666666666666666,"debugoptions":0.16666666666666666},"64":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"psi_v2_config":0.16666666666666666,"ecdhconfig":0.16666666666666666},"65":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"psi_v2_config":0.16666666666666666,"inputattr":0.16666666666666666},"66":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"psi_v2_config":0.16666666666666666,"ioconfig":0.16666666666666666},"67":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"psi_v2_config":0.16666666666666666,"kkrtconfig":0.16666666666666666},"68":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"psi_v2_config":0.16666666666666666,"outputattr":0.16666666666666666},"69":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"psi_v2_config":0.16666666666666666,"protocolconfig":0.16666666666666666},"70":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"psi_v2_config":0.16666666666666666,"psiconfig":0.16666666666666666},"71":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"psi_v2_config":0.16666666666666666,"recoveryconfig":0.16666666666666666},"72":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"psi_v2_config":0.16666666666666666,"rr22config":0.16666666666666666},"73":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"psi_v2_config":0.16666666666666666,"ubpsiconfig":0.16666666666666666},"74":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"psi_v2_config":0.16666666666666666,"enums":0.16666666666666666},"75":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"psi_v2_config":0.16666666666666666,"iotype":0.16666666666666666},"76":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"psi_v2_config":0.16666666666666666,"protocol":0.16666666666666666},"77":{"psi":0.14285714285714285,"main":0.14285714285714285,"en":0.14285714285714285,"reference":0.14285714285714285,"psi_v2_config":0.14285714285714285,"psiconfig":0.14285714285714285,"advancedjointype":0.14285714285714285},"78":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"psi_v2_config":0.16666666666666666,"role":0.16666666666666666},"79":{"psi":0.14285714285714285,"main":0.14285714285714285,"en":0.14285714285714285,"reference":0.14285714285714285,"psi_v2_config":0.14285714285714285,"ubpsiconfig":0.14285714285714285,"mode":0.14285714285714285},"80":{"psi":0.125,"main":0.125,"en":0.125,"reference":0.125,"psi_v2_config":0.125,"scalar":0.125,"value":0.125,"types":0.125},"81":{"psi":0.25,"main":0.125,"en":0.125,"reference":0.125,"psi_config":0.125,"v1":0.125,"configuration":0.125},"82":{"psi":0.125,"main":0.125,"en":0.125,"reference":0.125,"psi_config":0.125,"table":0.125,"of":0.125,"contents":0.125},"83":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"psi_config":0.16666666666666666,"messages":0.16666666666666666},"84":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"psi_config":0.16666666666666666,"bucketpsiconfig":0.16666666666666666},"85":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"psi_config":0.16666666666666666,"dppsiparams":0.16666666666666666},"86":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"psi_config":0.16666666666666666,"inputparams":0.16666666666666666},"87":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"psi_config":0.16666666666666666,"memorypsiconfig":0.16666666666666666},"88":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"psi_config":0.16666666666666666,"outputparams":0.16666666666666666},"89":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"psi_config":0.16666666666666666,"psiresultreport":0.16666666666666666},"90":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"psi_config":0.16666666666666666,"enums":0.16666666666666666},"91":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"psi_config":0.16666666666666666,"curvetype":0.16666666666666666},"92":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"psi_config":0.16666666666666666,"psitype":0.16666666666666666},"93":{"psi":0.125,"main":0.125,"en":0.125,"reference":0.125,"psi_config":0.125,"scalar":0.125,"value":0.125,"types":0.125},"94":{"psi":0.14285714285714285,"main":0.14285714285714285,"en":0.14285714285714285,"reference":0.14285714285714285,"launch_config":0.14285714285714285,"launch":0.14285714285714285,"configuration":0.14285714285714285},"95":{"psi":0.125,"main":0.125,"en":0.125,"reference":0.125,"launch_config":0.125,"table":0.125,"of":0.125,"contents":0.125},"96":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"launch_config":0.16666666666666666,"messages":0.16666666666666666},"97":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"launch_config":0.16666666666666666,"launchconfig":0.16666666666666666},"98":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"launch_config":0.16666666666666666,"enums":0.16666666666666666},"99":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"launch_config":0.16666666666666666,"id1":0.16666666666666666},"100":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"launch_config":0.16666666666666666,"allocatedports":0.16666666666666666},"101":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"launch_config":0.16666666666666666,"clusterdefine":0.16666666666666666},"102":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"launch_config":0.16666666666666666,"party":0.16666666666666666},"103":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"launch_config":0.16666666666666666,"port":0.16666666666666666},"104":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"launch_config":0.16666666666666666,"service":0.16666666666666666},"105":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"launch_config":0.16666666666666666,"taskinputconfig":0.16666666666666666},"106":{"psi":0.14285714285714285,"main":0.14285714285714285,"en":0.14285714285714285,"reference":0.14285714285714285,"launch_config":0.14285714285714285,"taskinputconfig":0.14285714285714285,"sfpsiconfigmapentry":0.14285714285714285},"107":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"launch_config":0.16666666666666666,"id2":0.16666666666666666},"108":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"launch_config":0.16666666666666666,"id3":0.16666666666666666},"109":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"launch_config":0.16666666666666666,"contextdescproto":0.16666666666666666},"110":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"launch_config":0.16666666666666666,"partyproto":0.16666666666666666},"111":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"launch_config":0.16666666666666666,"retryoptionsproto":0.16666666666666666},"112":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"launch_config":0.16666666666666666,"ssloptionsproto":0.16666666666666666},"113":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"reference":0.16666666666666666,"launch_config":0.16666666666666666,"id4":0.16666666666666666},"114":{"psi":0.125,"main":0.125,"en":0.125,"reference":0.125,"launch_config":0.125,"scalar":0.125,"value":0.125,"types":0.125},"115":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"user_guide":0.16666666666666666,"user":0.16666666666666666,"guide":0.16666666666666666},"116":{"psi":0.14285714285714285,"main":0.14285714285714285,"en":0.14285714285714285,"user_guide":0.14285714285714285,"apsi_benchmark":0.14285714285714285,"apsi":0.14285714285714285,"benchmark":0.14285714285714285},"117":{"psi":0.125,"main":0.125,"en":0.125,"user_guide":0.125,"apsi_benchmark":0.125,"building":0.125,"from":0.125,"source":0.125},"118":{"psi":0.14285714285714285,"main":0.14285714285714285,"en":0.14285714285714285,"user_guide":0.14285714285714285,"apsi_benchmark":0.14285714285714285,"generate":0.14285714285714285,"data":0.14285714285714285},"119":{"psi":0.125,"main":0.125,"en":0.125,"user_guide":0.125,"apsi_benchmark":0.125,"prepare":0.125,"config":0.125,"file":0.125},"120":{"psi":0.1111111111111111,"main":0.1111111111111111,"en":0.1111111111111111,"user_guide":0.1111111111111111,"apsi_benchmark":0.1111111111111111,"apsi":0.1111111111111111,"sender":0.1111111111111111,"setup":0.1111111111111111,"json":0.1111111111111111},"121":{"psi":0.1111111111111111,"main":0.1111111111111111,"en":0.1111111111111111,"user_guide":0.1111111111111111,"apsi_benchmark":0.1111111111111111,"apsi":0.1111111111111111,"sender":0.1111111111111111,"online":0.1111111111111111,"json":0.1111111111111111},"122":{"psi":0.125,"main":0.125,"en":0.125,"user_guide":0.125,"apsi_benchmark":0.125,"apsi":0.125,"receiver":0.125,"json":0.125},"123":{"psi":0.1111111111111111,"main":0.1111111111111111,"en":0.1111111111111111,"user_guide":0.1111111111111111,"apsi_benchmark":0.1111111111111111,"run":0.1111111111111111,"apsi":0.1111111111111111,"with":0.1111111111111111,"docker":0.1111111111111111},"124":{"psi":0.125,"main":0.125,"en":0.125,"user_guide":0.125,"apsi_benchmark":0.125,"apsi":0.125,"sender":0.125,"32c64g":0.125},"125":{"psi":0.125,"main":0.125,"en":0.125,"user_guide":0.125,"apsi_benchmark":0.125,"apsi":0.125,"receiver":0.125,"16c32g":0.125},"126":{"psi":0.1111111111111111,"main":0.1111111111111111,"en":0.1111111111111111,"user_guide":0.1111111111111111,"apsi_benchmark":0.1111111111111111,"limit":0.1111111111111111,"bandwidth":0.1111111111111111,"and":0.1111111111111111,"latency":0.1111111111111111},"127":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"user_guide":0.16666666666666666,"apsi_benchmark":0.16666666666666666,"benchmark":0.16666666666666666},"128":{"psi":0.25,"main":0.125,"en":0.125,"user_guide":0.125,"psi_v2":0.125,"v2":0.125,"quickstart":0.125},"129":{"psi":0.14285714285714285,"main":0.14285714285714285,"en":0.14285714285714285,"user_guide":0.14285714285714285,"psi_v2":0.14285714285714285,"release":0.14285714285714285,"docker":0.14285714285714285},"130":{"psi":0.1111111111111111,"main":0.1111111111111111,"en":0.1111111111111111,"user_guide":0.1111111111111111,"psi_v2":0.1111111111111111,"prepare":0.1111111111111111,"data":0.1111111111111111,"and":0.1111111111111111,"config":0.1111111111111111},"131":{"psi":0.2857142857142857,"main":0.14285714285714285,"en":0.14285714285714285,"user_guide":0.14285714285714285,"psi_v2":0.14285714285714285,"run":0.14285714285714285},"132":{"psi":0.125,"main":0.125,"en":0.125,"user_guide":0.125,"psi_v2":0.125,"building":0.125,"from":0.125,"source":0.125},"133":{"psi":0.14285714285714285,"main":0.14285714285714285,"en":0.14285714285714285,"user_guide":0.14285714285714285,"psi_v2":0.14285714285714285,"more":0.14285714285714285,"examples":0.14285714285714285},"134":{"psi":0.2857142857142857,"main":0.14285714285714285,"en":0.14285714285714285,"user_guide":0.14285714285714285,"psi_v2":0.14285714285714285,"ub":0.14285714285714285},"135":{"psi":0.14285714285714285,"main":0.14285714285714285,"en":0.14285714285714285,"user_guide":0.14285714285714285,"pir":0.2857142857142857,"quickstart":0.14285714285714285},"136":{"psi":0.14285714285714285,"main":0.14285714285714285,"en":0.14285714285714285,"user_guide":0.14285714285714285,"pir":0.14285714285714285,"supported":0.14285714285714285,"protocols":0.14285714285714285},"137":{"psi":0.14285714285714285,"main":0.14285714285714285,"en":0.14285714285714285,"user_guide":0.14285714285714285,"pir":0.14285714285714285,"release":0.14285714285714285,"docker":0.14285714285714285},"138":{"psi":0.125,"main":0.125,"en":0.125,"user_guide":0.125,"pir":0.25,"keyword":0.125,"apsi":0.125},"139":{"psi":0.14285714285714285,"main":0.14285714285714285,"en":0.14285714285714285,"user_guide":0.14285714285714285,"pir":0.14285714285714285,"before":0.14285714285714285,"start":0.14285714285714285},"140":{"psi":0.1111111111111111,"main":0.1111111111111111,"en":0.1111111111111111,"user_guide":0.1111111111111111,"pir":0.1111111111111111,"prepare":0.1111111111111111,"data":0.1111111111111111,"and":0.1111111111111111,"config":0.1111111111111111},"141":{"psi":0.14285714285714285,"main":0.14285714285714285,"en":0.14285714285714285,"user_guide":0.14285714285714285,"pir":0.14285714285714285,"csv":0.14285714285714285,"file":0.14285714285714285},"142":{"psi":0.125,"main":0.125,"en":0.125,"user_guide":0.125,"pir":0.125,"apsi":0.125,"params":0.125,"file":0.125},"143":{"psi":0.14285714285714285,"main":0.14285714285714285,"en":0.14285714285714285,"user_guide":0.14285714285714285,"pir":0.2857142857142857,"config":0.14285714285714285},"144":{"psi":0.14285714285714285,"main":0.14285714285714285,"en":0.14285714285714285,"user_guide":0.14285714285714285,"pir":0.14285714285714285,"full":0.14285714285714285,"examples":0.14285714285714285},"145":{"psi":0.14285714285714285,"main":0.14285714285714285,"en":0.14285714285714285,"user_guide":0.14285714285714285,"pir":0.14285714285714285,"bucketized":0.14285714285714285,"mode":0.14285714285714285},"146":{"psi":0.1111111111111111,"main":0.1111111111111111,"en":0.1111111111111111,"user_guide":0.1111111111111111,"faq":0.2222222222222222,"frequently":0.1111111111111111,"asked":0.1111111111111111,"questions":0.1111111111111111},"147":{"psi":0.14285714285714285,"main":0.14285714285714285,"en":0.14285714285714285,"user_guide":0.14285714285714285,"faq":0.14285714285714285,"config":0.14285714285714285,"issues":0.14285714285714285},"148":{"psi":0.14285714285714285,"main":0.14285714285714285,"en":0.14285714285714285,"user_guide":0.14285714285714285,"faq":0.14285714285714285,"feature":0.14285714285714285,"issues":0.14285714285714285},"149":{"psi":0.25,"main":0.125,"en":0.125,"user_guide":0.125,"psi_v2_benchmark":0.125,"v2":0.125,"benchmark":0.125},"150":{"psi":0.125,"main":0.125,"en":0.125,"user_guide":0.125,"psi_v2_benchmark":0.125,"building":0.125,"from":0.125,"source":0.125},"151":{"psi":0.14285714285714285,"main":0.14285714285714285,"en":0.14285714285714285,"user_guide":0.14285714285714285,"psi_v2_benchmark":0.14285714285714285,"generate":0.14285714285714285,"data":0.14285714285714285},"152":{"psi":0.125,"main":0.125,"en":0.125,"user_guide":0.125,"psi_v2_benchmark":0.125,"prepare":0.125,"config":0.125,"file":0.125},"153":{"psi":0.14285714285714285,"main":0.14285714285714285,"en":0.14285714285714285,"user_guide":0.14285714285714285,"psi_v2_benchmark":0.14285714285714285,"sender":0.14285714285714285,"config":0.14285714285714285},"154":{"psi":0.14285714285714285,"main":0.14285714285714285,"en":0.14285714285714285,"user_guide":0.14285714285714285,"psi_v2_benchmark":0.14285714285714285,"receiver":0.14285714285714285,"config":0.14285714285714285},"155":{"psi":0.2222222222222222,"main":0.1111111111111111,"en":0.1111111111111111,"user_guide":0.1111111111111111,"psi_v2_benchmark":0.1111111111111111,"run":0.1111111111111111,"with":0.1111111111111111,"docker":0.1111111111111111},"156":{"psi":0.1111111111111111,"main":0.1111111111111111,"en":0.1111111111111111,"user_guide":0.1111111111111111,"psi_v2_benchmark":0.1111111111111111,"limit":0.1111111111111111,"bandwidth":0.1111111111111111,"and":0.1111111111111111,"latency":0.1111111111111111},"157":{"psi":0.16666666666666666,"main":0.16666666666666666,"en":0.16666666666666666,"user_guide":0.16666666666666666,"psi_v2_benchmark":0.16666666666666666,"benchmark":0.16666666666666666},"158":{"psi":0.3333333333333333,"main":0.1111111111111111,"en":0.1111111111111111,"user_guide":0.1111111111111111,"v1":0.1111111111111111,"quickstart":0.1111111111111111,"deprecated":0.1111111111111111},"159":{"psi":0.2857142857142857,"main":0.14285714285714285,"en":0.14285714285714285,"user_guide":0.14285714285714285,"supported":0.14285714285714285,"protocols":0.14285714285714285},"160":{"psi":0.2222222222222222,"main":0.1111111111111111,"en":0.1111111111111111,"user_guide":0.1111111111111111,"prepare":0.1111111111111111,"data":0.1111111111111111,"and":0.1111111111111111,"config":0.1111111111111111},"161":{"psi":0.2857142857142857,"main":0.14285714285714285,"en":0.14285714285714285,"user_guide":0.14285714285714285,"release":0.14285714285714285,"docker":0.14285714285714285},"162":{"psi":0.42857142857142855,"main":0.14285714285714285,"en":0.14285714285714285,"user_guide":0.14285714285714285,"run":0.14285714285714285},"163":{"psi":0.25,"main":0.125,"en":0.125,"user_guide":0.125,"building":0.125,"from":0.125,"source":0.125},"164":{"psi":0.3333333333333333,"main":0.16666666666666666,"en":0.16666666666666666,"user_guide":0.16666666666666666,"benchmark":0.16666666666666666},"165":{"psi":0.375,"main":0.125,"en":0.125,"user_guide":0.125,"ecdh":0.125,"benchmark":0.125},"166":{"psi":0.375,"main":0.125,"en":0.125,"user_guide":0.125,"kkrt":0.125,"benchmark":0.125},"167":{"psi":0.2857142857142857,"main":0.14285714285714285,"en":0.14285714285714285,"user_guide":0.14285714285714285,"security":0.14285714285714285,"tips":0.14285714285714285}},"title":{"1":{"welcome":0.14285714285714285,"to":0.14285714285714285,"secretflow":0.14285714285714285,"psi":0.14285714285714285,"library":0.14285714285714285,"s":0.14285714285714285,"documentation":0.14285714285714285},"2":{"release":0.5,"notes":0.5},"3":{"release":0.6666666666666666,"notes":0.3333333333333333},"4":{"5":0.2,"release":0.2,"notes":0.2,"v0":0.2,"0beta":0.2},"5":{"4":0.2,"release":0.2,"notes":0.2,"v0":0.2,"2beta":0.2},"6":{"4":0.2,"release":0.2,"notes":0.2,"v0":0.2,"0beta":0.2},"7":{"0":0.16666666666666666,"4":0.16666666666666666,"release":0.16666666666666666,"notes":0.16666666666666666,"v0":0.16666666666666666,"dev240801":0.16666666666666666},"8":{"0":0.16666666666666666,"4":0.16666666666666666,"release":0.16666666666666666,"notes":0.16666666666666666,"v0":0.16666666666666666,"dev240731":0.16666666666666666},"9":{"0":0.16666666666666666,"4":0.16666666666666666,"release":0.16666666666666666,"notes":0.16666666666666666,"v0":0.16666666666666666,"dev240521":0.16666666666666666},"10":{"0":0.16666666666666666,"4":0.16666666666666666,"release":0.16666666666666666,"notes":0.16666666666666666,"v0":0.16666666666666666,"dev240517":0.16666666666666666},"11":{"0":0.16666666666666666,"4":0.16666666666666666,"release":0.16666666666666666,"notes":0.16666666666666666,"v0":0.16666666666666666,"dev240514":0.16666666666666666},"12":{"0":0.16666666666666666,"4":0.16666666666666666,"release":0.16666666666666666,"notes":0.16666666666666666,"v0":0.16666666666666666,"dev240401":0.16666666666666666},"13":{"0":0.16666666666666666,"4":0.16666666666666666,"release":0.16666666666666666,"notes":0.16666666666666666,"v0":0.16666666666666666,"dev240329":0.16666666666666666},"14":{"3":0.2,"release":0.2,"notes":0.2,"v0":0.2,"0beta":0.2},"15":{"0":0.16666666666666666,"3":0.16666666666666666,"release":0.16666666666666666,"notes":0.16666666666666666,"v0":0.16666666666666666,"dev240304":0.16666666666666666},"16":{"0":0.16666666666666666,"3":0.16666666666666666,"release":0.16666666666666666,"notes":0.16666666666666666,"v0":0.16666666666666666,"dev240222":0.16666666666666666},"17":{"0":0.16666666666666666,"3":0.16666666666666666,"release":0.16666666666666666,"notes":0.16666666666666666,"v0":0.16666666666666666,"dev240219":0.16666666666666666},"18":{"0":0.16666666666666666,"2":0.16666666666666666,"release":0.16666666666666666,"notes":0.16666666666666666,"v0":0.16666666666666666,"dev240123":0.16666666666666666},"19":{"0":0.16666666666666666,"2":0.16666666666666666,"release":0.16666666666666666,"notes":0.16666666666666666,"v0":0.16666666666666666,"dev231228":0.16666666666666666},"20":{"0":0.16666666666666666,"2":0.16666666666666666,"release":0.16666666666666666,"notes":0.16666666666666666,"v0":0.16666666666666666,"dev231221":0.16666666666666666},"21":{"1":0.2,"release":0.2,"notes":0.2,"v0":0.2,"0beta":0.2},"22":{"getting":0.5,"started":0.5},"23":{"getting":0.3333333333333333,"started":0.3333333333333333,"installation":0.3333333333333333},"24":{"getting":0.25,"started":0.25,"c":0.25,"binaries":0.25},"25":{"getting":0.25,"started":0.25,"release":0.25,"docker":0.25},"26":{"getting":0.2,"started":0.2,"building":0.2,"from":0.2,"source":0.2},"27":{"getting":0.25,"started":0.25,"python":0.25,"packages":0.25},"28":{"getting":0.3333333333333333,"started":0.3333333333333333,"spu":0.3333333333333333},"29":{"getting":0.3333333333333333,"started":0.3333333333333333,"secretflow":0.3333333333333333},"30":{"getting":0.3333333333333333,"started":0.3333333333333333,"applications":0.3333333333333333},"31":{"getting":0.3333333333333333,"started":0.3333333333333333,"scql":0.3333333333333333},"32":{"getting":0.3333333333333333,"started":0.3333333333333333,"secretpad":0.3333333333333333},"33":{"getting":0.2,"started":0.2,"deprecated":0.2,"easy":0.2,"psi":0.2},"34":{"getting":0.3333333333333333,"started":0.3333333333333333,"building":0.3333333333333333},"35":{"getting":0.25,"started":0.25,"system":0.25,"setup":0.25},"36":{"getting":0.25,"started":0.25,"dev":0.25,"docker":0.25},"37":{"getting":0.3333333333333333,"started":0.3333333333333333,"linux":0.3333333333333333},"38":{"getting":0.25,"started":0.25,"build":0.25,"unittest":0.25},"39":{"getting":0.2,"started":0.2,"reporting":0.2,"an":0.2,"issue":0.2},"40":{"development":1},"41":{"psi":0.3333333333333333,"protocols":0.3333333333333333,"introduction":0.3333333333333333},"42":{"psi":0.4,"protocols":0.2,"introduction":0.2,"ecdh":0.2},"43":{"psi":0.3333333333333333,"protocols":0.16666666666666666,"introduction":0.16666666666666666,"ecdh":0.16666666666666666,"3p":0.16666666666666666},"44":{"psi":0.4,"protocols":0.2,"introduction":0.2,"kkrt16":0.2},"45":{"psi":0.3333333333333333,"protocols":0.16666666666666666,"introduction":0.16666666666666666,"differentially":0.16666666666666666,"private":0.16666666666666666},"46":{"psi":0.4,"protocols":0.2,"introduction":0.2,"unbalanced":0.2},"47":{"psi":0.2857142857142857,"protocols":0.14285714285714285,"introduction":0.14285714285714285,"ecdh":0.14285714285714285,"oprf":0.14285714285714285,"based":0.14285714285714285},"48":{"psi":0.4,"protocols":0.2,"introduction":0.2,"labeled":0.2},"49":{"psi":0.2857142857142857,"protocols":0.14285714285714285,"introduction":0.14285714285714285,"rr22":0.14285714285714285,"blazing":0.14285714285714285,"fast":0.14285714285714285},"50":{"psi":0.25,"protocols":0.25,"introduction":0.25,"reference":0.25},"51":{"api":0.5,"reference":0.5},"52":{"pir":0.5,"configuration":0.5},"53":{"pir":0.2,"configuration":0.2,"table":0.2,"of":0.2,"contents":0.2},"54":{"pir":0.3333333333333333,"configuration":0.3333333333333333,"messages":0.3333333333333333},"55":{"pir":0.3333333333333333,"configuration":0.3333333333333333,"apsireceiverconfig":0.3333333333333333},"56":{"pir":0.3333333333333333,"configuration":0.3333333333333333,"apsisenderconfig":0.3333333333333333},"57":{"pir":0.3333333333333333,"configuration":0.3333333333333333,"pirresultreport":0.3333333333333333},"58":{"pir":0.3333333333333333,"configuration":0.3333333333333333,"enums":0.3333333333333333},"59":{"pir":0.2,"configuration":0.2,"scalar":0.2,"value":0.2,"types":0.2},"60":{"psi":0.3333333333333333,"v2":0.3333333333333333,"configuration":0.3333333333333333},"61":{"psi":0.16666666666666666,"v2":0.16666666666666666,"configuration":0.16666666666666666,"table":0.16666666666666666,"of":0.16666666666666666,"contents":0.16666666666666666},"62":{"psi":0.25,"v2":0.25,"configuration":0.25,"messages":0.25},"63":{"psi":0.25,"v2":0.25,"configuration":0.25,"debugoptions":0.25},"64":{"psi":0.25,"v2":0.25,"configuration":0.25,"ecdhconfig":0.25},"65":{"psi":0.25,"v2":0.25,"configuration":0.25,"inputattr":0.25},"66":{"psi":0.25,"v2":0.25,"configuration":0.25,"ioconfig":0.25},"67":{"psi":0.25,"v2":0.25,"configuration":0.25,"kkrtconfig":0.25},"68":{"psi":0.25,"v2":0.25,"configuration":0.25,"outputattr":0.25},"69":{"psi":0.25,"v2":0.25,"configuration":0.25,"protocolconfig":0.25},"70":{"psi":0.25,"v2":0.25,"configuration":0.25,"psiconfig":0.25},"71":{"psi":0.25,"v2":0.25,"configuration":0.25,"recoveryconfig":0.25},"72":{"psi":0.25,"v2":0.25,"configuration":0.25,"rr22config":0.25},"73":{"psi":0.25,"v2":0.25,"configuration":0.25,"ubpsiconfig":0.25},"74":{"psi":0.25,"v2":0.25,"configuration":0.25,"enums":0.25},"75":{"psi":0.25,"v2":0.25,"configuration":0.25,"iotype":0.25},"76":{"psi":0.25,"v2":0.25,"configuration":0.25,"protocol":0.25},"77":{"psi":0.2,"v2":0.2,"configuration":0.2,"psiconfig":0.2,"advancedjointype":0.2},"78":{"psi":0.25,"v2":0.25,"configuration":0.25,"role":0.25},"79":{"psi":0.2,"v2":0.2,"configuration":0.2,"ubpsiconfig":0.2,"mode":0.2},"80":{"psi":0.16666666666666666,"v2":0.16666666666666666,"configuration":0.16666666666666666,"scalar":0.16666666666666666,"value":0.16666666666666666,"types":0.16666666666666666},"81":{"psi":0.3333333333333333,"v1":0.3333333333333333,"configuration":0.3333333333333333},"82":{"psi":0.16666666666666666,"v1":0.16666666666666666,"configuration":0.16666666666666666,"table":0.16666666666666666,"of":0.16666666666666666,"contents":0.16666666666666666},"83":{"psi":0.25,"v1":0.25,"configuration":0.25,"messages":0.25},"84":{"psi":0.25,"v1":0.25,"configuration":0.25,"bucketpsiconfig":0.25},"85":{"psi":0.25,"v1":0.25,"configuration":0.25,"dppsiparams":0.25},"86":{"psi":0.25,"v1":0.25,"configuration":0.25,"inputparams":0.25},"87":{"psi":0.25,"v1":0.25,"configuration":0.25,"memorypsiconfig":0.25},"88":{"psi":0.25,"v1":0.25,"configuration":0.25,"outputparams":0.25},"89":{"psi":0.25,"v1":0.25,"configuration":0.25,"psiresultreport":0.25},"90":{"psi":0.25,"v1":0.25,"configuration":0.25,"enums":0.25},"91":{"psi":0.25,"v1":0.25,"configuration":0.25,"curvetype":0.25},"92":{"psi":0.25,"v1":0.25,"configuration":0.25,"psitype":0.25},"93":{"psi":0.16666666666666666,"v1":0.16666666666666666,"configuration":0.16666666666666666,"scalar":0.16666666666666666,"value":0.16666666666666666,"types":0.16666666666666666},"94":{"launch":0.5,"configuration":0.5},"95":{"launch":0.2,"configuration":0.2,"table":0.2,"of":0.2,"contents":0.2},"96":{"launch":0.3333333333333333,"configuration":0.3333333333333333,"messages":0.3333333333333333},"97":{"launch":0.3333333333333333,"configuration":0.3333333333333333,"launchconfig":0.3333333333333333},"98":{"launch":0.3333333333333333,"configuration":0.3333333333333333,"enums":0.3333333333333333},"99":{"launch":0.3333333333333333,"configuration":0.3333333333333333,"messages":0.3333333333333333},"100":{"launch":0.3333333333333333,"configuration":0.3333333333333333,"allocatedports":0.3333333333333333},"101":{"launch":0.3333333333333333,"configuration":0.3333333333333333,"clusterdefine":0.3333333333333333},"102":{"launch":0.3333333333333333,"configuration":0.3333333333333333,"party":0.3333333333333333},"103":{"launch":0.3333333333333333,"configuration":0.3333333333333333,"port":0.3333333333333333},"104":{"launch":0.3333333333333333,"configuration":0.3333333333333333,"service":0.3333333333333333},"105":{"launch":0.3333333333333333,"configuration":0.3333333333333333,"taskinputconfig":0.3333333333333333},"106":{"launch":0.25,"configuration":0.25,"taskinputconfig":0.25,"sfpsiconfigmapentry":0.25},"107":{"launch":0.3333333333333333,"configuration":0.3333333333333333,"enums":0.3333333333333333},"108":{"launch":0.3333333333333333,"configuration":0.3333333333333333,"messages":0.3333333333333333},"109":{"launch":0.3333333333333333,"configuration":0.3333333333333333,"contextdescproto":0.3333333333333333},"110":{"launch":0.3333333333333333,"configuration":0.3333333333333333,"partyproto":0.3333333333333333},"111":{"launch":0.3333333333333333,"configuration":0.3333333333333333,"retryoptionsproto":0.3333333333333333},"112":{"launch":0.3333333333333333,"configuration":0.3333333333333333,"ssloptionsproto":0.3333333333333333},"113":{"launch":0.3333333333333333,"configuration":0.3333333333333333,"enums":0.3333333333333333},"114":{"launch":0.2,"configuration":0.2,"scalar":0.2,"value":0.2,"types":0.2},"115":{"user":0.5,"guide":0.5},"116":{"apsi":0.5,"benchmark":0.5},"117":{"apsi":0.2,"benchmark":0.2,"building":0.2,"from":0.2,"source":0.2},"118":{"apsi":0.25,"benchmark":0.25,"generate":0.25,"data":0.25},"119":{"apsi":0.2,"benchmark":0.2,"prepare":0.2,"config":0.2,"file":0.2},"120":{"apsi":0.25,"benchmark":0.25,"apsi_sender_setup":0.25,"json":0.25},"121":{"apsi":0.25,"benchmark":0.25,"apsi_sender_online":0.25,"json":0.25},"122":{"apsi":0.25,"benchmark":0.25,"apsi_receiver":0.25,"json":0.25},"123":{"apsi":0.3333333333333333,"benchmark":0.16666666666666666,"run":0.16666666666666666,"with":0.16666666666666666,"docker":0.16666666666666666},"124":{"apsi":0.25,"benchmark":0.25,"apsi_sender":0.25,"32c64g":0.25},"125":{"apsi":0.25,"benchmark":0.25,"apsi_receiver":0.25,"16c32g":0.25},"126":{"apsi":0.16666666666666666,"benchmark":0.16666666666666666,"limit":0.16666666666666666,"bandwidth":0.16666666666666666,"and":0.16666666666666666,"latency":0.16666666666666666},"127":{"apsi":0.3333333333333333,"benchmark":0.6666666666666666},"128":{"psi":0.3333333333333333,"v2":0.3333333333333333,"quickstart":0.3333333333333333},"129":{"psi":0.2,"v2":0.2,"quickstart":0.2,"release":0.2,"docker":0.2},"130":{"psi":0.14285714285714285,"v2":0.14285714285714285,"quickstart":0.14285714285714285,"prepare":0.14285714285714285,"data":0.14285714285714285,"and":0.14285714285714285,"config":0.14285714285714285},"131":{"psi":0.4,"v2":0.2,"quickstart":0.2,"run":0.2},"132":{"psi":0.16666666666666666,"v2":0.16666666666666666,"quickstart":0.16666666666666666,"building":0.16666666666666666,"from":0.16666666666666666,"source":0.16666666666666666},"133":{"psi":0.2,"v2":0.2,"quickstart":0.2,"more":0.2,"examples":0.2},"134":{"psi":0.4,"v2":0.2,"quickstart":0.2,"ub":0.2},"135":{"pir":0.5,"quickstart":0.5},"136":{"pir":0.25,"quickstart":0.25,"supported":0.25,"protocols":0.25},"137":{"pir":0.25,"quickstart":0.25,"release":0.25,"docker":0.25},"138":{"pir":0.4,"quickstart":0.2,"keyword":0.2,"apsi":0.2},"139":{"pir":0.25,"quickstart":0.25,"before":0.25,"start":0.25},"140":{"pir":0.16666666666666666,"quickstart":0.16666666666666666,"prepare":0.16666666666666666,"data":0.16666666666666666,"and":0.16666666666666666,"config":0.16666666666666666},"141":{"pir":0.25,"quickstart":0.25,"csv":0.25,"file":0.25},"142":{"pir":0.2,"quickstart":0.2,"apsi":0.2,"params":0.2,"file":0.2},"143":{"pir":0.5,"quickstart":0.25,"config":0.25},"144":{"pir":0.25,"quickstart":0.25,"full":0.25,"examples":0.25},"145":{"pir":0.25,"quickstart":0.25,"bucketized":0.25,"mode":0.25},"146":{"frequently":0.25,"asked":0.25,"questions":0.25,"faq":0.25},"147":{"frequently":0.16666666666666666,"asked":0.16666666666666666,"questions":0.16666666666666666,"faq":0.16666666666666666,"config":0.16666666666666666,"issues":0.16666666666666666},"148":{"frequently":0.16666666666666666,"asked":0.16666666666666666,"questions":0.16666666666666666,"faq":0.16666666666666666,"feature":0.16666666666666666,"issues":0.16666666666666666},"149":{"psi":0.3333333333333333,"v2":0.3333333333333333,"benchmark":0.3333333333333333},"150":{"psi":0.16666666666666666,"v2":0.16666666666666666,"benchmark":0.16666666666666666,"building":0.16666666666666666,"from":0.16666666666666666,"source":0.16666666666666666},"151":{"psi":0.2,"v2":0.2,"benchmark":0.2,"generate":0.2,"data":0.2},"152":{"psi":0.16666666666666666,"v2":0.16666666666666666,"benchmark":0.16666666666666666,"prepare":0.16666666666666666,"config":0.16666666666666666,"file":0.16666666666666666},"153":{"psi":0.2,"v2":0.2,"benchmark":0.2,"sender":0.2,"config":0.2},"154":{"psi":0.2,"v2":0.2,"benchmark":0.2,"receiver":0.2,"config":0.2},"155":{"psi":0.2857142857142857,"v2":0.14285714285714285,"benchmark":0.14285714285714285,"run":0.14285714285714285,"with":0.14285714285714285,"docker":0.14285714285714285},"156":{"psi":0.14285714285714285,"v2":0.14285714285714285,"benchmark":0.14285714285714285,"limit":0.14285714285714285,"bandwidth":0.14285714285714285,"and":0.14285714285714285,"latency":0.14285714285714285},"157":{"psi":0.25,"v2":0.25,"benchmark":0.5},"158":{"psi":0.25,"v1":0.25,"quickstart":0.25,"deprecated":0.25},"159":{"psi":0.16666666666666666,"v1":0.16666666666666666,"quickstart":0.16666666666666666,"deprecated":0.16666666666666666,"supported":0.16666666666666666,"protocols":0.16666666666666666},"160":{"psi":0.125,"v1":0.125,"quickstart":0.125,"deprecated":0.125,"prepare":0.125,"data":0.125,"and":0.125,"config":0.125},"161":{"psi":0.16666666666666666,"v1":0.16666666666666666,"quickstart":0.16666666666666666,"deprecated":0.16666666666666666,"release":0.16666666666666666,"docker":0.16666666666666666},"162":{"psi":0.3333333333333333,"v1":0.16666666666666666,"quickstart":0.16666666666666666,"deprecated":0.16666666666666666,"run":0.16666666666666666},"163":{"psi":0.14285714285714285,"v1":0.14285714285714285,"quickstart":0.14285714285714285,"deprecated":0.14285714285714285,"building":0.14285714285714285,"from":0.14285714285714285,"source":0.14285714285714285},"164":{"psi":0.2,"v1":0.2,"quickstart":0.2,"deprecated":0.2,"benchmark":0.2},"165":{"psi":0.2857142857142857,"v1":0.14285714285714285,"quickstart":0.14285714285714285,"deprecated":0.14285714285714285,"ecdh":0.14285714285714285,"benchmark":0.14285714285714285},"166":{"psi":0.2857142857142857,"v1":0.14285714285714285,"quickstart":0.14285714285714285,"deprecated":0.14285714285714285,"kkrt":0.14285714285714285,"benchmark":0.14285714285714285},"167":{"psi":0.16666666666666666,"v1":0.16666666666666666,"quickstart":0.16666666666666666,"deprecated":0.16666666666666666,"security":0.16666666666666666,"tips":0.16666666666666666}},"content":{"1":{"this":0.045454545454545456,"is":0.045454545454545456,"the":0.022727272727272728,"repo":0.06818181818181818,"of":0.022727272727272728,"private":0.045454545454545456,"set":0.022727272727272728,"intersection":0.022727272727272728,"psi":0.06818181818181818,"and":0.06818181818181818,"information":0.022727272727272728,"retrieval":0.022727272727272728,"pir":0.06818181818181818,"from":0.045454545454545456,"secretflow":0.11363636363636363,"team":0.022727272727272728,"which":0.022727272727272728,"provides":0.022727272727272728,"functionality":0.022727272727272728,"for":0.022727272727272728,"scql":0.045454545454545456,"secretpad":0.045454545454545456,"formerly":0.022727272727272728,"part":0.022727272727272728,"spu":0.045454545454545456},"2":{},"3":{"note":0.02531645569620253,"feature":0.05063291139240506,"prefix":0.1518987341772152,"for":0.1518987341772152,"new":0.0379746835443038,"features":0.0379746835443038,"bugfix":0.05063291139240506,"bug":0.0379746835443038,"fixes":0.0379746835443038,"api":0.11392405063291139,"changes":0.0379746835443038,"improvement":0.08860759493670886,"implementation":0.0379746835443038,"delete":0.02531645569620253,"skip_duplicates_check":0.0379746835443038,"in":0.02531645569620253,"psi_v2":0.02531645569620253,"config":0.02531645569620253},"4":{"api":0.05714285714285714,"delete":0.02857142857142857,"legacy":0.02857142857142857,"ub":0.05714285714285714,"psi":0.05714285714285714,"function":0.02857142857142857,"output":0.02857142857142857,"csv":0.02857142857142857,"null_rep":0.02857142857142857,"can":0.08571428571428572,"be":0.08571428571428572,"specified":0.02857142857142857,"feature":0.05714285714285714,"join":0.05714285714285714,"done":0.05714285714285714,"with":0.05714285714285714,"one":0.02857142857142857,"receiver":0.02857142857142857,"protocol":0.02857142857142857,"improvement":0.02857142857142857,"rr22":0.02857142857142857,"enhancement":0.02857142857142857,"drop":0.02857142857142857,"ic_mode":0.02857142857142857},"5":{"api":0.10256410256410256,"pir":0.05128205128205128,"experimental":0.05128205128205128,"params":0.05128205128205128,"ecdh":0.05128205128205128,"batch_size":0.07692307692307693,"improvement":0.15384615384615385,"apsi":0.05128205128205128,"group":0.05128205128205128,"mode":0.05128205128205128,"tmp":0.05128205128205128,"dir":0.05128205128205128,"cleanup":0.05128205128205128,"refactor":0.05128205128205128,"csv":0.05128205128205128,"reader":0.05128205128205128},"6":{"0":0.024390243902439025,"4":0.024390243902439025,"api":0.07317073170731707,"remove":0.024390243902439025,"bc22":0.024390243902439025,"protocol":0.024390243902439025,"add":0.024390243902439025,"entrypoint":0.024390243902439025,"for":0.024390243902439025,"docker":0.024390243902439025,"file":0.024390243902439025,"allow":0.024390243902439025,"passing":0.024390243902439025,"config":0.024390243902439025,"json":0.024390243902439025,"directly":0.024390243902439025,"to":0.04878048780487805,"main":0.024390243902439025,"bugfix":0.04878048780487805,"fix":0.04878048780487805,"ic":0.024390243902439025,"mode":0.024390243902439025,"rr22":0.024390243902439025,"sealpir":0.024390243902439025,"and":0.024390243902439025,"apsi":0.024390243902439025,"improvement":0.04878048780487805,"upgrade":0.04878048780487805,"yacl":0.024390243902439025,"5b1":0.024390243902439025,"download":0.024390243902439025,"uri":0.024390243902439025,"of":0.024390243902439025,"xz":0.024390243902439025},"7":{"bugfix":0.16666666666666666,"fix":0.16666666666666666,"macos":0.16666666666666666,"and":0.16666666666666666,"arm":0.16666666666666666,"build":0.16666666666666666},"8":{"improvement":0.09090909090909091,"port":0.09090909090909091,"apsi":0.18181818181818182,"again":0.09090909090909091,"feature":0.09090909090909091,"add":0.09090909090909091,"bucketized":0.09090909090909091,"api":0.09090909090909091,"remove":0.09090909090909091,"sealpir":0.09090909090909091},"9":{"api":0.25,"remove":0.25,"bc22":0.25,"protocol":0.25},"10":{"0":0.14285714285714285,"4":0.14285714285714285,"improvement":0.14285714285714285,"upgrade":0.14285714285714285,"yacl":0.14285714285714285,"to":0.14285714285714285,"5b0":0.14285714285714285},"11":{"api":0.08333333333333333,"add":0.041666666666666664,"entrypoint":0.041666666666666664,"for":0.041666666666666664,"docker":0.041666666666666664,"file":0.041666666666666664,"allow":0.041666666666666664,"passing":0.041666666666666664,"config":0.041666666666666664,"json":0.041666666666666664,"directly":0.041666666666666664,"to":0.041666666666666664,"main":0.041666666666666664,"bugfix":0.08333333333333333,"fix":0.08333333333333333,"ic":0.041666666666666664,"mode":0.041666666666666664,"rr22":0.041666666666666664,"sealpir":0.041666666666666664,"and":0.041666666666666664,"apsi":0.041666666666666664},"12":{"improvement":0.16666666666666666,"upgrade":0.16666666666666666,"download":0.16666666666666666,"uri":0.16666666666666666,"of":0.16666666666666666,"xz":0.16666666666666666},"13":{"0":0.14285714285714285,"4":0.14285714285714285,"improvement":0.14285714285714285,"upgrade":0.14285714285714285,"yacl":0.14285714285714285,"to":0.14285714285714285,"4b3":0.14285714285714285},"14":{"improvement":0.09523809523809523,"add":0.047619047619047616,"uuid":0.047619047619047616,"in":0.14285714285714285,"system":0.047619047619047616,"temp":0.047619047619047616,"folder":0.047619047619047616,"use":0.047619047619047616,"arrow":0.047619047619047616,"csv":0.047619047619047616,"reader":0.047619047619047616,"pir":0.047619047619047616,"bugfix":0.047619047619047616,"fix":0.047619047619047616,"typo":0.047619047619047616,"psi":0.047619047619047616,"config":0.047619047619047616,"check":0.047619047619047616},"15":{"api":0.3333333333333333,"expose":0.16666666666666666,"ic_mode":0.16666666666666666,"in":0.16666666666666666,"runlegacypsi":0.16666666666666666},"16":{"api":0.5,"expose":0.25,"pir":0.25},"17":{"feature":0.09090909090909091,"add":0.09090909090909091,"ecdh":0.09090909090909091,"logger":0.09090909090909091,"for":0.09090909090909091,"debug":0.09090909090909091,"purposes":0.09090909090909091,"api":0.09090909090909091,"modify":0.09090909090909091,"repo":0.09090909090909091,"structure":0.09090909090909091},"18":{"25519":0.025,"feature":0.05,"add":0.05,"rfc9380":0.025,"elligator2":0.025,"hash_to_curve":0.025,"malicious":0.025,"vole":0.025,"psi":0.075,"api":0.05,"expose":0.025,"ub":0.025,"in":0.1,"v2":0.025,"improvement":0.025,"modify":0.025,"buffer":0.025,"size":0.025,"sort":0.025,"cmd":0.025,"bugfix":0.075,"fix":0.075,"simpleshuffledbatchprovider":0.025,"flakiness":0.025,"psi_test":0.025,"race":0.025,"condition":0.025,"rr22":0.025},"19":{"bugfix":0.1,"fix":0.1,"rr22":0.1,"race":0.1,"condition":0.1,"improvement":0.1,"modify":0.1,"sort":0.1,"buffer":0.1,"size":0.1},"20":{"api":0.047619047619047616,"rename":0.047619047619047616,"check_duplicates":0.023809523809523808,"to":0.047619047619047616,"skip_duplicates_check":0.023809523809523808,"sort_output":0.023809523809523808,"disable_alignment":0.023809523809523808,"feature":0.047619047619047616,"support":0.023809523809523808,"left":0.023809523809523808,"join":0.07142857142857142,"right":0.023809523809523808,"and":0.023809523809523808,"full":0.023809523809523808,"the":0.023809523809523808,"behavior":0.023809523809523808,"of":0.023809523809523808,"difference":0.023809523809523808,"is":0.023809523809523808,"modified":0.023809523809523808,"skip":0.023809523809523808,"duplicate":0.047619047619047616,"key":0.047619047619047616,"check":0.047619047619047616,"if":0.023809523809523808,"recovery":0.023809523809523808,"checkpoint":0.023809523809523808,"exists":0.023809523809523808,"bugfix":0.047619047619047616,"fix":0.047619047619047616,"syncwait":0.023809523809523808},"21":{"api":0.15151515151515152,"add":0.06060606060606061,"psi":0.030303030303030304,"v2":0.12121212121212122,"feature":0.12121212121212122,"rr22":0.06060606060606061,"protocol":0.06060606060606061,"support":0.06060606060606061,"recovery":0.030303030303030304,"from":0.030303030303030304,"failure":0.030303030303030304,"in":0.09090909090909091,"inner":0.030303030303030304,"join":0.030303030303030304,"migrate":0.030303030303030304,"ecdh":0.030303030303030304,"kkrt":0.030303030303030304},"22":{"welcome":0.0020325203252032522,"to":0.014227642276422764,"secretflow":0.026422764227642278,"psi":0.052845528455284556,"library":0.022357723577235773,"there":0.0020325203252032522,"are":0.0020325203252032522,"multiple":0.0020325203252032522,"methods":0.0020325203252032522,"use":0.0020325203252032522,"pir":0.012195121951219513,"c":0.0040650406504065045,"binaries":0.0040650406504065045,"you":0.014227642276422764,"could":0.014227642276422764,"build":0.0040650406504065045,"the":0.014227642276422764,"binary":0.0040650406504065045,"or":0.0040650406504065045,"with":0.032520325203252036,"release":0.022357723577235773,"docker":0.008130081300813009,"image":0.0040650406504065045,"ci":0.012195121951219513,"latest":0.012195121951219513,"aarch64":0.006097560975609756,"for":0.006097560975609756,"arm":0.0040650406504065045,"python":0.02032520325203252,"packages":0.0040650406504065045,"spu":0.046747967479674794,"warps":0.02032520325203252,"as":0.01016260162601626,"bindings":0.01016260162601626,"call":0.01016260162601626,"further":0.01016260162601626,"user":0.01016260162601626,"friendly":0.01016260162601626,"apis":0.028455284552845527,"applications":0.0040650406504065045,"scql":0.012195121951219513,"integrates":0.01016260162601626,"this":0.01016260162601626,"do":0.01016260162601626,"join":0.01016260162601626,"operations":0.01016260162601626,"secretpad":0.012195121951219513,"provides":0.01016260162601626,"component":0.01016260162601626,"we":0.0040650406504065045,"have":0.0020325203252032522,"a":0.012195121951219513,"developing":0.0020325203252032522,"v2":0.014227642276422764,"and":0.0020325203252032522,"recommend":0.0020325203252032522,"using":0.0020325203252032522,"it":0.0020325203252032522,"v1":0.01016260162601626,"deprecated":0.01016260162601626,"apissupported":0.0020325203252032522,"protocolsecdh":0.006097560975609756,"kkrt":0.02032520325203252,"ecdh_oprf_ub":0.016260162601626018,"dp_psi":0.01016260162601626,"rr22ecdh":0.006097560975609756,"rr22":0.014227642276422764,"ecdh_oprf_ubcsv":0.0040650406504065045,"parsersupport":0.006097560975609756,"subset":0.01016260162601626,"of":0.01016260162601626,"csv":0.026422764227642278,"files":0.02032520325203252,"apache":0.01016260162601626,"arrow":0.01016260162601626,"support":0.02032520325203252,"all":0.01016260162601626,"legal":0.01016260162601626,"recovery":0.01016260162601626,"after":0.01016260162601626,"failureunsupportedsupportedsupport":0.0040650406504065045,"duplicated":0.01016260162601626,"keysunsupportedsupportedrelease":0.0040650406504065045,"dockernot":0.006097560975609756,"providedprovidedpython":0.0040650406504065045,"bindingwith":0.006097560975609756,"spuwith":0.006097560975609756,"supported":0.016260162601626018,"protocols":0.0040650406504065045,"ecdh":0.008130081300813009,"parser":0.0040650406504065045,"failureunsupportedsupported":0.0020325203252032522,"failure":0.0040650406504065045,"unsupported":0.008130081300813009,"keysunsupportedsupported":0.0020325203252032522,"keys":0.0040650406504065045,"providedprovided":0.0020325203252032522,"not":0.0040650406504065045,"provided":0.008130081300813009,"binding":0.0040650406504065045},"23":{},"24":{},"25":{"please":0.027777777777777776,"check":0.027777777777777776,"official":0.027777777777777776,"release":0.027777777777777776,"docker":0.027777777777777776,"image":0.027777777777777776,"at":0.05555555555555555,"dockerhub":0.05555555555555555,"we":0.027777777777777776,"also":0.027777777777777776,"have":0.027777777777777776,"mirrors":0.027777777777777776,"alibaba":0.027777777777777776,"cloud":0.027777777777777776,"secretflow":0.1111111111111111,"registry":0.05555555555555555,"cn":0.05555555555555555,"hangzhou":0.05555555555555555,"cr":0.05555555555555555,"aliyuncs":0.05555555555555555,"com":0.05555555555555555,"psi":0.05555555555555555,"anolis8":0.05555555555555555},"26":{"please":0.25,"see":0.25,"building":0.5},"27":{},"28":{"please":0.03225806451612903,"check":0.03225806451612903,"spu":0.12903225806451613,"installation":0.06451612903225806,"guidelines":0.06451612903225806,"apis":0.03225806451612903,"https":0.06451612903225806,"www":0.06451612903225806,"secretflow":0.06451612903225806,"org":0.06451612903225806,"cn":0.06451612903225806,"en":0.06451612903225806,"docs":0.06451612903225806,"main":0.06451612903225806,"reference":0.06451612903225806,"py_api":0.06451612903225806},"29":{"5":0.0069084628670120895,"please":0.0008635578583765112,"check":0.0008635578583765112,"secretflow":0.23661485319516407,"installation":0.0017271157167530224,"page":0.0017271157167530224,"apis":0.0008635578583765112,"psi":0.022452504317789293,"v1":0.006044905008635579,"deprecated":0.024179620034542316,"https":0.06563039723661486,"www":0.06563039723661486,"org":0.06563039723661486,"cn":0.06563039723661486,"en":0.06563039723661486,"docs":0.06563039723661486,"main":0.05872193436960276,"source":0.055267702936096716,"spu":0.055267702936096716,"psi_df":0.0069084628670120895,"psi_csv":0.0069084628670120895,"psi_join_df":0.0069084628670120895,"psi_join_csv":0.0069084628670120895,"v2":0.006044905008635579,"psi_v2":0.0069084628670120895,"pir":0.012089810017271158,"deleted":0.018134715025906734,"pir_setup":0.0069084628670120895,"pir_query":0.0069084628670120895,"pir_memory_query":0.0069084628670120895,"configuration":0.006044905008635579,"v0":0.0069084628670120895,"0b0":0.0069084628670120895,"reference":0.0069084628670120895,"pir_config":0.0069084628670120895,"component":0.006044905008635579,"comp_list":0.0034542314335060447},"30":{},"31":{"please":0.005813953488372093,"check":0.005813953488372093,"scql":0.08139534883720931,"quickstart":0.011627906976744186,"tutorial":0.011627906976744186,"featured":0.029069767441860465,"operators":0.09883720930232558,"using":0.029069767441860465,"psi":0.029069767441860465,"https":0.06976744186046512,"www":0.06976744186046512,"secretflow":0.06976744186046512,"org":0.06976744186046512,"cn":0.06976744186046512,"en":0.06976744186046512,"docs":0.06976744186046512,"main":0.06976744186046512,"reference":0.06976744186046512,"in":0.03488372093023256,"join":0.03488372093023256},"32":{"please":0.16666666666666666,"check":0.16666666666666666,"secretpad":0.3333333333333333,"handbook":0.3333333333333333},"33":{"please":0.125,"check":0.125,"easy":0.25,"psi":0.25,"handbook":0.25},"34":{},"35":{},"36":{"you":0.16666666666666666,"can":0.16666666666666666,"use":0.16666666666666666,"docker":0.16666666666666666,"to":0.16666666666666666,"compile":0.16666666666666666},"37":{"1":0.03333333333333333,"2":0.06666666666666667,"3":0.1,"5":0.03333333333333333,"8":0.03333333333333333,"11":0.03333333333333333,"15":0.03333333333333333,"20":0.03333333333333333,"26":0.03333333333333333,"you":0.016666666666666666,"need":0.016666666666666666,"to":0.016666666666666666,"install":0.016666666666666666,"gcc":0.03333333333333333,"cmake":0.03333333333333333,"ninja":0.03333333333333333,"nasm":0.03333333333333333,"python":0.03333333333333333,"bazel":0.05,"golang":0.03333333333333333,"xxd":0.03333333333333333,"lld":0.03333333333333333,"perl":0.03333333333333333,"for":0.016666666666666666,"please":0.016666666666666666,"check":0.016666666666666666,"version":0.016666666666666666,"in":0.016666666666666666,"bazeliskrc":0.03333333333333333,"or":0.016666666666666666,"use":0.016666666666666666,"bazelisk":0.016666666666666666,"instead":0.016666666666666666},"38":{"we":0.14285714285714285,"use":0.14285714285714285,"bazel":0.14285714285714285,"for":0.14285714285714285,"building":0.14285714285714285,"and":0.14285714285714285,"testing":0.14285714285714285},"39":{"please":0.05,"create":0.05,"an":0.05,"issue":0.05,"at":0.05,"github":0.1,"issues":0.15,"we":0.05,"will":0.05,"look":0.05,"into":0.05,"and":0.05,"get":0.05,"back":0.05,"to":0.05,"you":0.05,"soon":0.05},"40":{"advanced":0.047619047619047616,"topics":0.047619047619047616,"related":0.047619047619047616,"to":0.047619047619047616,"principles":0.047619047619047616,"designs":0.047619047619047616,"benchmark":0.047619047619047616,"and":0.047619047619047616,"more":0.047619047619047616,"psi":0.19047619047619047,"protocols":0.19047619047619047,"introduction":0.19047619047619047},"41":{"secretflow":0.009174311926605505,"spu":0.009174311926605505,"implements":0.009174311926605505,"the":0.009174311926605505,"following":0.009174311926605505,"psi":0.14678899082568808,"protocols":0.009174311926605505,"semi":0.07339449541284404,"honest":0.07339449541284404,"ecdh":0.03669724770642202,"based":0.07339449541284404,"two":0.05504587155963303,"party":0.07339449541284404,"protocol":0.11009174311926606,"hfh99":0.027522935779816515,"three":0.01834862385321101,"ot":0.01834862385321101,"kkrt16":0.027522935779816515,"differentially":0.01834862385321101,"private":0.01834862385321101,"dp":0.045871559633027525,"unbalanced":0.01834862385321101,"and":0.01834862385321101,"malicious":0.01834862385321101,"vole":0.01834862385321101,"rs21":0.027522935779816515,"rr22":0.027522935779816515},"42":{"1":0.045475424896646764,"2":0.007349563619660083,"3":0.0013780431786862655,"512":0.0022967386311437757,"2016":0.0009186954524575103,"14888":0.0022967386311437757,"32918":0.0022967386311437757,"the":0.008268259072117593,"semi":0.0009186954524575103,"honest":0.0009186954524575103,"dh":0.0009186954524575103,"psi":0.0022967386311437757,"protocol":0.0013780431786862655,"is":0.0013780431786862655,"due":0.00045934772622875517,"to":0.0036747818098300414,"huberman":0.00045934772622875517,"franklin":0.00045934772622875517,"and":0.005052824988516307,"hogg":0.00045934772622875517,"hfh99":0.0009186954524575103,"but":0.0009186954524575103,"with":0.0013780431786862655,"roots":0.00045934772622875517,"as":0.0018373909049150207,"far":0.00045934772622875517,"back":0.00045934772622875517,"meadows":0.00045934772622875517,"mea86":0.0009186954524575103,"it":0.004134129536058797,"a":0.020211299954065228,"that":0.00045934772622875517,"requires":0.00045934772622875517,"exponentiations":0.00045934772622875517,"in":0.0059715204409738175,"diffie":0.0013780431786862655,"hellman":0.0013780431786862655,"group":0.002756086357372531,"proportional":0.00045934772622875517,"number":0.00045934772622875517,"of":0.0013780431786862655,"items":0.00045934772622875517,"sets":0.00045934772622875517,"general":0.00045934772622875517,"rule":0.00045934772622875517,"ot":0.00045934772622875517,"based":0.0013780431786862655,"protocols":0.0009186954524575103,"are":0.0009186954524575103,"significantly":0.00045934772622875517,"faster":0.00045934772622875517,"require":0.00045934772622875517,"more":0.0009186954524575103,"communication":0.0009186954524575103,"than":0.0009186954524575103,"some":0.00045934772622875517,"scenarios":0.00045934772622875517,"cost":0.0009186954524575103,"overwhelmingly":0.00045934772622875517,"important":0.00045934772622875517,"computation":0.00045934772622875517,"on":0.0013780431786862655,"decisional":0.00045934772622875517,"assumption":0.0013780431786862655,"agree":0.0009186954524575103,"g":0.02939825447864033,"generator":0.0009186954524575103,"for":0.004593477262287551,"random":0.0009186954524575103,"b":0.01607717041800643,"c":0.008268259072117593,"cannot":0.0009186954524575103,"distinguish":0.0009186954524575103,"ga":0.014699127239320165,"gb":0.014699127239320165,"gab":0.007349563619660083,"ab":0.0078089113458888375,"from":0.002756086357372531,"gc":0.007349563619660083,"several":0.00045934772622875517,"candidate":0.00045934772622875517,"groups":0.0013780431786862655,"widely":0.00045934772622875517,"used":0.00045934772622875517,"such":0.00045934772622875517,"subgroups":0.00045934772622875517,"multiplication":0.00045934772622875517,"finite":0.00045934772622875517,"field":0.00045934772622875517,"elliptic":0.0013780431786862655,"curve":0.0009186954524575103,"practice":0.00045934772622875517,"carefully":0.00045934772622875517,"chosen":0.00045934772622875517,"curves":0.00045934772622875517,"like":0.00045934772622875517,"curve25519":0.0022967386311437757,"ber06":0.004134129536058797,"offer":0.00045934772622875517,"good":0.00045934772622875517,"balance":0.00045934772622875517,"between":0.00045934772622875517,"security":0.00045934772622875517,"performance":0.00045934772622875517,"each":0.0036747818098300414,"element":0.0036747818098300414,"xix_ixi":0.0018373909049150207,"its":0.005512172714745062,"set":0.0036747818098300414,"alice":0.006430868167202572,"applies":0.0018373909049150207,"hash":0.0018373909049150207,"function":0.0018373909049150207,"then":0.0018373909049150207,"exponentiates":0.0036747818098300414,"using":0.0036747818098300414,"key":0.0036747818098300414,"alpha":0.03307303628847037,"thus":0.0018373909049150207,"computing":0.0036747818098300414,"h":0.13045475424896646,"xi":0.05558107487367937,"x_i":0.022508038585209004,"alphah":0.0036747818098300414,"sends":0.002756086357372531,"i":0.12586127698667893,"1n1":0.02756086357372531,"_":0.018373909049150206,"n_1":0.011024345429490124,"bob":0.005512172714745062,"received":0.0018373909049150207,"previous":0.0018373909049150207,"step":0.0018373909049150207,"beta":0.03307303628847037,"yiy_iyi":0.0018373909049150207,"yi":0.04639412034910427,"y_i":0.018833256775378962,"betah":0.0036747818098300414,"1n2":0.018373909049150206,"n_2":0.007349563619660083,"compares":0.0009186954524575103,"two":0.0009186954524575103,"gets":0.0009186954524575103,"intersection":0.0009186954524575103,"xix_i":0.0013780431786862655,"x":0.006430868167202572,"n1":0.006890215893431328,"n":0.004593477262287551,"yiy_i":0.0013780431786862655,"y":0.005512172714745062,"n2":0.004593477262287551,"supported":0.00045934772622875517,"secretflow":0.00045934772622875517,"spu":0.00045934772622875517,"module":0.00045934772622875517,"ec":0.0022967386311437757,"groupreferencecryptolibcurve25519":0.00045934772622875517,"libsoidum":0.002756086357372531,"ipp":0.003215434083601286,"crypto":0.003215434083601286,"intel":0.0022967386311437757,"cpu":0.0022967386311437757,"support":0.0022967386311437757,"avx":0.0022967386311437757,"ifma":0.0022967386311437757,"secp256k1":0.0022967386311437757,"sec2":0.003215434083601286,"v2":0.003215434083601286,"opensslsm2gbt":0.0009186954524575103,"2016openssliso":0.0009186954524575103,"iec":0.0022967386311437757,"3fourq":0.0009186954524575103,"fourq":0.004593477262287551,"fourqlib":0.002756086357372531,"groupreferencecryptolib":0.0009186954524575103,"reference":0.0009186954524575103,"cryptolib":0.0009186954524575103,"openssl":0.003215434083601286,"sm2gbt":0.00045934772622875517,"2016openssl":0.00045934772622875517,"sm2":0.0009186954524575103,"gbt":0.0009186954524575103,"iso":0.0013780431786862655},"43":{"we":0.003469210754553339,"implement":0.0008673026886383347,"our":0.0026019080659150044,"own":0.0017346053772766695,"three":0.0008673026886383347,"party":0.0008673026886383347,"psi":0.0026019080659150044,"protocol":0.003469210754553339,"based":0.0008673026886383347,"on":0.0008673026886383347,"ecdh":0.0017346053772766695,"note":0.0017346053772766695,"that":0.0017346053772766695,"implementation":0.0008673026886383347,"has":0.0008673026886383347,"known":0.0008673026886383347,"leakage":0.0008673026886383347,"please":0.0008673026886383347,"use":0.0008673026886383347,"at":0.0017346053772766695,"your":0.0008673026886383347,"risk":0.0008673026886383347,"assume":0.0017346053772766695,"alice":0.011274934952298352,"bob":0.009540329575021683,"charlie":0.009540329575021683,"receiver":0.0008673026886383347,"want":0.0008673026886383347,"to":0.013876843018213356,"perform":0.0008673026886383347,"3p":0.0008673026886383347,"in":0.0026019080659150044,"addition":0.0008673026886383347,"the":0.006938421509106678,"final":0.0008673026886383347,"output":0.0008673026886383347,"leaks":0.0008673026886383347,"intersection":0.004336513443191674,"size":0.0008673026886383347,"of":0.003469210754553339,"s":0.003469210754553339,"data":0.0026019080659150044,"and":0.013876843018213356,"beginning":0.0008673026886383347,"input":0.0008673026886383347,"from":0.0008673026886383347,"both":0.0008673026886383347,"are":0.0008673026886383347,"shuffled":0.0008673026886383347,"it":0.0008673026886383347,"not":0.0008673026886383347,"necessary":0.0008673026886383347,"shuffle":0.0008673026886383347,"set":0.0026019080659150044,"for":0.006938421509106678,"i":0.16652211621856028,"th":0.006938421509106678,"element":0.006938421509106678,"its":0.0017346053772766695,"calculates":0.010407632263660017,"h":0.20121422376409367,"xi":0.04163052905464007,"x_i":0.020815264527320035,"alphah":0.003469210754553339,"sends":0.010407632263660017,"alpha":0.07285342584562012,"beta":0.0797918473547268,"yi":0.04163052905464007,"y_i":0.020815264527320035,"betah":0.003469210754553339,"then":0.003469210754553339,"shuffles":0.0017346053772766695,"them":0.003469210754553339,"randomly":0.0017346053772766695,"gets":0.0017346053772766695,"cap":0.006938421509106678,"denote":0.0017346053772766695,"as":0.0017346053772766695,"zi":0.055507372072853424,"z_i":0.027753686036426712,"gamma":0.04163052905464007,"finally":0.0017346053772766695,"compares":0.0017346053772766695,"with":0.0017346053772766695,"x":0.005203816131830009,"y":0.005203816131830009,"z":0.006938421509106678},"44":{"0":0.026119402985074626,"1":0.048507462686567165,"2":0.025186567164179104,"3":0.02332089552238806,"24":0.014925373134328358,"128":0.0009328358208955224,"224":0.007462686567164179,"2242":0.005597014925373134,"kkrt16":0.0037313432835820895,"is":0.0018656716417910447,"semi":0.0009328358208955224,"honest":0.0009328358208955224,"ot":0.0018656716417910447,"based":0.0018656716417910447,"psi":0.0018656716417910447,"on":0.002798507462686567,"extension":0.0009328358208955224,"bark":0.0046641791044776115,"oprf":0.002798507462686567,"and":0.0065298507462686565,"cuckoohash":0.0037313432835820895,"the":0.0037313432835820895,"first":0.0009328358208955224,"protocol":0.0009328358208955224,"requiring":0.0009328358208955224,"only":0.0009328358208955224,"one":0.0009328358208955224,"minute":0.0009328358208955224,"for":0.002798507462686567,"case":0.0009328358208955224,"of":0.0018656716417910447,"larger":0.0009328358208955224,"sets":0.0009328358208955224,"items":0.0009328358208955224,"each":0.0046641791044776115,"long":0.0009328358208955224,"strings":0.0009328358208955224,"bits":0.0009328358208955224,"we":0.0009328358208955224,"use":0.0009328358208955224,"way":0.0009328358208955224,"stash":0.0009328358208955224,"less":0.0009328358208955224,"proposed":0.0009328358208955224,"in":0.0009328358208955224,"psz18":0.0018656716417910447,"sender":0.007462686567164179,"receiver":0.009328358208955223,"agree":0.0018656716417910447,"h1":0.04477611940298507,"h2":0.04477611940298507,"h3":0.04477611940298507,"m":0.022388059701492536,"h_1":0.022388059701492536,"h_2":0.022388059701492536,"h_3":0.022388059701492536,"rightarrow":0.007462686567164179,"inserts":0.0037313432835820895,"x":0.0914179104477612,"into":0.0037313432835820895,"bin":0.0037313432835820895,"or":0.0018656716417910447,"y":0.11380597014925373,"run":0.0018656716417910447,"gets":0.0037313432835820895,"fs":0.04477611940298507,"ki":0.07276119402985075,"f_":0.022388059701492536,"s":0.05037313432835821,"k_i":0.022388059701492536,"binibin_ibini":0.0037313432835820895,"sends":0.0018656716417910447,"all":0.0018656716417910447,"values":0.0018656716417910447,"to":0.0018656716417910447,"compares":0.0018656716417910447,"two":0.0018656716417910447,"oprfs":0.0018656716417910447,"set":0.0018656716417910447,"obtains":0.0018656716417910447,"intersection":0.0018656716417910447,"h":0.016791044776119403,"f":0.005597014925373134,"k":0.005597014925373134,"i":0.030783582089552237,"binibin_i":0.002798507462686567,"bini":0.002798507462686567,"b":0.0009328358208955224,"ni":0.0018656716417910447,"n":0.0018656716417910447,"bin_i":0.0009328358208955224,"bi":0.0009328358208955224},"45":{"2":0.0067842605156037995,"3":0.014246947082767978,"9":0.0013568521031207597,"20":0.0027137042062415195,"21":0.0013568521031207597,"22":0.0013568521031207597,"23":0.0013568521031207597,"24":0.0027137042062415195,"42":0.0013568521031207597,"86":0.0013568521031207597,"170":0.0013568521031207597,"202":0.0020352781546811396,"212":0.0020352781546811396,"222":0.0020352781546811396,"232":0.0020352781546811396,"we":0.0027137042062415195,"also":0.0006784260515603799,"implement":0.0013568521031207597,"a":0.044097693351424695,"differentially":0.0027137042062415195,"private":0.004070556309362279,"dp":0.007462686567164179,"set":0.006105834464043419,"intersection":0.006105834464043419,"psi":0.011533242876526458,"protocol":0.0020352781546811396,"our":0.0013568521031207597,"implementation":0.0006784260515603799,"bases":0.0006784260515603799,"on":0.006105834464043419,"ecdh":0.0006784260515603799,"and":0.014925373134328358,"provides":0.0006784260515603799,"results":0.004070556309362279,"this":0.0027137042062415195,"feature":0.0006784260515603799,"is":0.0047489823609226595,"currently":0.0006784260515603799,"under":0.0006784260515603799,"test":0.0006784260515603799,"please":0.0013568521031207597,"use":0.0020352781546811396,"at":0.0006784260515603799,"your":0.0006784260515603799,"own":0.0020352781546811396,"risk":0.0006784260515603799,"why":0.0006784260515603799,"with":0.0020352781546811396,"if":0.0006784260515603799,"want":0.0006784260515603799,"scheme":0.0013568521031207597,"that":0.004070556309362279,"protects":0.0006784260515603799,"both":0.0006784260515603799,"the":0.016282225237449117,"inputs":0.0006784260515603799,"output":0.0006784260515603799,"privacy":0.0020352781546811396,"an":0.0013568521031207597,"ideal":0.0006784260515603799,"way":0.0013568521031207597,"to":0.012211668928086838,"circuit":0.0013568521031207597,"which":0.0006784260515603799,"typical":0.0006784260515603799,"variant":0.0006784260515603799,"allows":0.0006784260515603799,"secure":0.0006784260515603799,"computation":0.0006784260515603799,"e":0.0006784260515603799,"g":0.0006784260515603799,"mpc":0.0006784260515603799,"or":0.0013568521031207597,"he":0.0006784260515603799,"result":0.0006784260515603799,"without":0.0020352781546811396,"revealing":0.0013568521031207597,"it":0.0047489823609226595,"psty19":0.0013568521031207597,"however":0.0006784260515603799,"those":0.0006784260515603799,"protocols":0.0006784260515603799,"are":0.0006784260515603799,"expensive":0.0006784260515603799,"in":0.0047489823609226595,"terms":0.0006784260515603799,"of":0.0033921302578018998,"efficiency":0.0006784260515603799,"utilizing":0.0006784260515603799,"up":0.0006784260515603799,"sampling":0.0013568521031207597,"sub":0.0006784260515603799,"mechanism":0.0013568521031207597,"add":0.0006784260515603799,"calibrated":0.0006784260515603799,"noises":0.0006784260515603799,"its":0.0006784260515603799,"concise":0.0006784260515603799,"value":0.0013568521031207597,"listed":0.0006784260515603799,"below":0.0006784260515603799,"assume":0.0006784260515603799,"alice":0.012890094979647219,"has":0.0013568521031207597,"hashed":0.0013568521031207597,"shuffled":0.0013568521031207597,"xxx":0.0020352781546811396,"bob":0.010854816824966078,"yyy":0.0020352781546811396,"xx":0.0020352781546811396,"x":0.03867028493894165,"yy":0.0020352781546811396,"y":0.07869742198100407,"note":0.0013568521031207597,"encrypt":0.0006784260515603799,"denote":0.0006784260515603799,"process":0.0006784260515603799,"calculating":0.0006784260515603799,"xay":0.004070556309362279,"gets":0.016960651289009497,"ay":0.0020352781546811396,"xa":0.015603799185888738,"first":0.0013568521031207597,"encrypts":0.004070556309362279,"their":0.0027137042062415195,"dataset":0.0013568521031207597,"xax":0.014246947082767978,"axa":0.008141112618724558,"yby":0.009497964721845319,"byb":0.005427408412483039,"separately":0.0013568521031207597,"sends":0.005427408412483039,"performs":0.0013568521031207597,"random":0.0027137042062415195,"subsampling":0.0013568521031207597,"by_":0.018995929443690638,"by":0.010854816824966078,"b":0.08276797829036635,"meantime":0.0013568521031207597,"receiving":0.0027137042062415195,"from":0.0027137042062415195,"re":0.0027137042062415195,"bbb":0.0027137042062415195,"xabx":0.0047489823609226595,"ab":0.12143826322930801,"xab":0.03867028493894165,"then":0.0067842605156037995,"samples":0.0013568521031207597,"permutation":0.0013568521031207597,"pi":0.021709633649932156,"permute":0.0013568521031207597,"s":0.0013568521031207597,"permuted":0.0013568521031207597,"back":0.0013568521031207597,"aby_":0.0047489823609226595,"calculates":0.0013568521031207597,"i":0.024423337856173677,"abi_":0.009497964721845319,"cap":0.005427408412483039,"y_":0.008819538670284939,"randomly":0.0027137042062415195,"subsamples":0.0013568521031207597,"finds":0.0013568521031207597,"corresponding":0.0013568521031207597,"index":0.004070556309362279,"adds":0.0013568521031207597,"non":0.0013568521031207597,"reveals":0.0013568521031207597,"final":0.0013568521031207597,"yb":0.0067842605156037995,"bb":0.0020352781546811396,"i_":0.0013568521031207597,"end":0.0006784260515603799,"ensures":0.0006784260515603799,"receiver":0.0006784260515603799,"only":0.0006784260515603799,"learns":0.0006784260515603799,"noised":0.0006784260515603799,"ability":0.0006784260515603799,"pointing":0.0006784260515603799,"out":0.0006784260515603799,"whether":0.0006784260515603799,"element":0.0006784260515603799,"actual":0.0006784260515603799,"not":0.0006784260515603799,"multiple":0.0013568521031207597,"invocations":0.0006784260515603799,"inevitably":0.0006784260515603799,"weaken":0.0006784260515603799,"protection":0.0020352781546811396,"therefore":0.0006784260515603799,"strongly":0.0006784260515603799,"suggest":0.0006784260515603799,"user":0.0006784260515603799,"should":0.0006784260515603799,"prevent":0.0006784260515603799,"executions":0.0006784260515603799,"same":0.0006784260515603799,"input":0.0006784260515603799,"intel":0.0033921302578018998,"r":0.0067842605156037995,"xeon":0.0033921302578018998,"platinum2":0.0020352781546811396,"24dp":0.0006784260515603799,"psi9":0.0020352781546811396,"806s20":0.0020352781546811396,"134s42":0.0020352781546811396,"067s86":0.0020352781546811396,"580s170":0.0020352781546811396,"359s":0.0033921302578018998,"platinum":0.0013568521031207597,"806s":0.0013568521031207597,"134s":0.0013568521031207597,"067s":0.0013568521031207597,"580s":0.0013568521031207597,"for":0.0013568521031207597,"default":0.0006784260515603799,"strength":0.0006784260515603799,"epsilon":0.0047489823609226595,"more":0.0006784260515603799,"details":0.0006784260515603799,"refer":0.0006784260515603799,"original":0.0006784260515603799,"paper":0.0006784260515603799},"46":{},"47":{"1":0.08187838651414811,"2":0.016857314870559904,"3":0.00030102347983142685,"10":0.0006020469596628537,"11":0.0006020469596628537,"ra18":0.0006020469596628537,"section":0.00030102347983142685,"introduces":0.00030102347983142685,"basic":0.00030102347983142685,"unbalanced":0.00030102347983142685,"psi":0.00030102347983142685,"ecdh":0.00030102347983142685,"oprf":0.002107164358819988,"based":0.00030102347983142685,"protocol":0.0009030704394942806,"proposed":0.00030102347983142685,"in":0.005117399157134257,"bbcd":0.0006020469596628537,"that":0.00030102347983142685,"relaxes":0.00030102347983142685,"the":0.00481637567730283,"security":0.00030102347983142685,"of":0.0006020469596628537,"jl10":0.0006020469596628537,"to":0.004515352197471403,"be":0.00030102347983142685,"secure":0.00030102347983142685,"against":0.00030102347983142685,"semi":0.00030102347983142685,"honest":0.00030102347983142685,"adversaries":0.00030102347983142685,"has":0.00030102347983142685,"two":0.001806140878988561,"phases":0.00030102347983142685,"preprocessing":0.0006020469596628537,"phase":0.002107164358819988,"and":0.006020469596628537,"online":0.0009030704394942806,"authors":0.00030102347983142685,"introduced":0.00030102347983142685,"many":0.00030102347983142685,"optimizations":0.00030102347983142685,"push":0.00030102347983142685,"as":0.0006020469596628537,"much":0.00030102347983142685,"computation":0.00030102347983142685,"communication":0.00030102347983142685,"cost":0.00030102347983142685,"possible":0.00030102347983142685,"an":0.00030102347983142685,"oblivious":0.00030102347983142685,"pseudorandom":0.0006020469596628537,"function":0.001806140878988561,"is":0.00030102347983142685,"a":0.0006020469596628537,"party":0.00030102347983142685,"between":0.00030102347983142685,"client":0.00030102347983142685,"server":0.00030102347983142685,"for":0.0039133052378085495,"computing":0.0039133052378085495,"output":0.00030102347983142685,"prf":0.0015051173991571343,"draft":0.0006020469596628537,"irtf":0.0006020469596628537,"cfrg":0.0006020469596628537,"voprf":0.0009030704394942806,"specifies":0.00030102347983142685,"poprf":0.00030102347983142685,"protocols":0.00030102347983142685,"built":0.00030102347983142685,"upon":0.00030102347983142685,"prime":0.00030102347983142685,"order":0.0015051173991571343,"groups":0.00030102347983142685,"offline":0.0006020469596628537,"each":0.003612281757977122,"element":0.003612281757977122,"yiy_iyi":0.001806140878988561,"its":0.00481637567730283,"set":0.002408187838651415,"bob":0.007224563515954244,"applies":0.002408187838651415,"using":0.00481637567730283,"private":0.0012040939193257074,"key":0.003612281757977122,"beta":0.033112582781456956,"i":0.1625526791089705,"e":0.0012040939193257074,"h2":0.030102347983142687,"yi":0.04124021673690548,"h1":0.08308248043347381,"h_2":0.015051173991571343,"y_i":0.01836243226971704,"h_1":0.03341360626128838,"sends":0.003612281757977122,"1n2":0.014449127031908489,"_":0.024081878386514148,"n_2":0.006020469596628537,"alice":0.008428657435279952,"shuffled":0.0012040939193257074,"xix_ixi":0.001806140878988561,"hash":0.0012040939193257074,"then":0.0012040939193257074,"exponentiates":0.002408187838651415,"it":0.003612281757977122,"blind":0.0012040939193257074,"rir_iri":0.003612281757977122,"thus":0.0012040939193257074,"xi":0.07495484647802529,"ri":0.055990367248645395,"x_i":0.03341360626128838,"r_i":0.018663455749548464,"1n1":0.04334738109572547,"n_1":0.018061408789885613,"rih_1":0.0027092113184828417,"received":0.0012040939193257074,"from":0.002408187838651415,"previous":0.0012040939193257074,"step":0.0012040939193257074,"receives":0.0012040939193257074,"unblinds":0.0012040939193257074,"gets":0.002408187838651415,"computes":0.0012040939193257074,"compares":0.0012040939193257074,"sets":0.0012040939193257074,"intersection":0.0012040939193257074,"yiy_i":0.0009030704394942806,"y":0.004214328717639976,"h":0.010234798314268514,"n2":0.0030102347983142685,"n":0.00481637567730283,"xix_i":0.0009030704394942806,"x":0.007224563515954244,"rir_i":0.001806140878988561,"r":0.00481637567730283,"n1":0.009030704394942806},"48":{"0":0.0035743744844652188,"1":0.020896343139950507,"2":0.0071487489689304375,"3":0.00192466318394281,"4":0.0005499037668408029,"16":0.0013747594171020072,"21":0.0010998075336816058,"22":0.0013747594171020072,"30":0.0027495188342040143,"48":0.0027495188342040143,"50":0.0013747594171020072,"56":0.0041242782513060215,"2010":0.0013747594171020072,"2048":0.0005499037668408029,"4096":0.0013747594171020072,"8192":0.0008248556502612042,"65535":0.0013747594171020072,"somewhat":0.00027495188342040145,"homomorphic":0.00027495188342040145,"encryption":0.0005499037668408029,"she":0.00027495188342040145,"can":0.0005499037668408029,"be":0.0005499037668408029,"used":0.00192466318394281,"to":0.008798460269452846,"build":0.00027495188342040145,"efficient":0.00027495188342040145,"labeled":0.0021996150673632116,"private":0.00027495188342040145,"set":0.008798460269452846,"intersection":0.0008248556502612042,"protocols":0.0005499037668408029,"in":0.014297497937860875,"the":0.036018696728072584,"unbalanced":0.0008248556502612042,"setting":0.00027495188342040145,"where":0.00027495188342040145,"one":0.00027495188342040145,"of":0.00577398955182843,"sets":0.0013747594171020072,"is":0.0027495188342040143,"much":0.00027495188342040145,"larger":0.00027495188342040145,"than":0.00027495188342040145,"other":0.00027495188342040145,"cmgd":0.0010998075336816058,"introduces":0.00027495188342040145,"several":0.00027495188342040145,"optimizations":0.00027495188342040145,"and":0.01347264228759967,"improvements":0.00027495188342040145,"clr17":0.0005499037668408029,"chlr18":0.0005499037668408029,"resulting":0.00027495188342040145,"improved":0.0005499037668408029,"running":0.00027495188342040145,"time":0.00027495188342040145,"communication":0.00027495188342040145,"complexity":0.00027495188342040145,"sender":0.021996150673632114,"s":0.02859499587572175,"size":0.00027495188342040145,"microsoft":0.00192466318394281,"apsi":0.0013747594171020072,"asymmetric":0.0008248556502612042,"psi":0.00384932636788562,"library":0.0008248556502612042,"provides":0.00027495188342040145,"a":0.0030244707176244156,"functionality":0.00027495188342040145,"for":0.006048941435248831,"sizes":0.00027495188342040145,"based":0.00027495188342040145,"on":0.00192466318394281,"latest":0.00027495188342040145,"uses":0.00192466318394281,"bfv":0.00027495188342040145,"fv12":0.0005499037668408029,"scheme":0.00027495188342040145,"implemented":0.00027495188342040145,"seal":0.00192466318394281,"secretflow":0.00027495188342040145,"spu":0.00027495188342040145,"wraps":0.00027495188342040145,"malicious":0.0005499037668408029,"keyword":0.0005499037668408029,"pir":0.0005499037668408029,"setup":0.0005499037668408029,"phase":0.0010998075336816058,"choose":0.0013747594171020072,"itemparams":0.00192466318394281,"tableparams":0.0016497113005224085,"queryparams":0.0016497113005224085,"sealparams":0.0016497113005224085,"oprf":0.006048941435248831,"samples":0.0010998075336816058,"key":0.0010998075336816058,"beta":0.008798460269452846,"updates":0.0010998075336816058,"its":0.0027495188342040143,"items":0.005499037668408029,"h2":0.0192466318394281,"si":0.040692878746219414,"h1":0.02144624690679131,"h_2":0.008798460269452846,"s_i":0.016772064888644488,"h_1":0.008798460269452846,"_":0.006048941435248831,"hashing":0.00384932636788562,"inserts":0.0010998075336816058,"all":0.0010998075336816058,"ss_i":0.002474566950783613,"ssi":0.0016497113005224085,"into":0.008248556502612043,"b":0.06928787462194116,"h0":0.005499037668408029,"mathcal":0.02309595820731372,"h_0":0.0027495188342040143,"splitting":0.0013747594171020072,"each":0.008523508386032445,"i":0.06873797085510036,"splits":0.0010998075336816058,"it":0.0010998075336816058,"bin":0.0071487489689304375,"bundles":0.003299422601044817,"denoted":0.0010998075336816058,"as":0.0010998075336816058,"k":0.008248556502612043,"computing":0.0013747594171020072,"coeffcients":0.0013747594171020072,"matching":0.008248556502612043,"polynomial":0.012372834753918064,"bundle":0.003299422601044817,"j":0.019796535606268904,"computes":0.003299422601044817,"over":0.003299422601044817,"ft":0.008798460269452846,"mathbb":0.006598845202089634,"f":0.00769865273577124,"_tft":0.004399230134726423,"label":0.004674182018146824,"if":0.006598845202089634,"has":0.003299422601044817,"labels":0.00384932636788562,"associated":0.0016497113005224085,"with":0.003299422601044817,"then":0.0016497113005224085,"interpolates":0.0016497113005224085,"receiver":0.016772064888644488,"encrypt":0.006598845202089634,"ri":0.027495188342040143,"rr_i":0.002474566950783613,"rri":0.0016497113005224085,"r":0.020621391256530106,"run":0.0016497113005224085,"ecdh":0.0016497113005224085,"protocol":0.0016497113005224085,"get":0.0030244707176244156,"r_i":0.010173219686554854,"cuckoohash":0.00192466318394281,"performs":0.0016497113005224085,"cuckoo":0.0035743744844652188,"rrr":0.0021996150673632116,"cuckootable":0.003299422601044817,"c":0.003299422601044817,"m":0.0016497113005224085,"bins":0.0016497113005224085,"using":0.0016497113005224085,"h3":0.0016497113005224085,"hash":0.0030244707176244156,"functions":0.0016497113005224085,"packing":0.00192466318394281,"packs":0.0016497113005224085,"fhe":0.0035743744844652188,"plaintext":0.0016497113005224085,"windowsing":0.00192466318394281,"component":0.0016497113005224085,"wise":0.0016497113005224085,"query":0.003299422601044817,"powers":0.0041242782513060215,"sends":0.0027495188342040143,"ciphertexts":0.006048941435248831,"homomorphically":0.0035743744844652188,"evaluate":0.0013747594171020072,"receives":0.0021996150673632116,"collection":0.0010998075336816058,"evaluates":0.0021996150673632116,"desired":0.0010998075336816058,"evaluated":0.0010998075336816058,"decrypt":0.0013747594171020072,"result":0.0013747594171020072,"decrypts":0.0010998075336816058,"needed":0.0010998075336816058,"outputs":0.0010998075336816058,"h":0.00384932636788562,"_t":0.0021996150673632116,"t":0.004399230134726423,"rr":0.0008248556502612042,"parameters":0.00027495188342040145,"paramsfunction1itemparamsfelts_per_itemhow":0.00027495188342040145,"many":0.0041242782513060215,"batching":0.0013747594171020072,"slots":0.0013747594171020072,"should":0.0013747594171020072,"represent":0.0013747594171020072,"item":0.0013747594171020072,"item_bit_size":0.0027495188342040143,"plain_modulus_bits":0.0013747594171020072,"stats_params":0.0013747594171020072,"log":0.0027495188342040143,"ns":0.0013747594171020072,"nr":0.0041242782513060215,"2tableparamshash_func_countcuckoo":0.0005499037668408029,"count":0.0013747594171020072,"hash_func_count":0.003299422601044817,"means":0.0013747594171020072,"essentially":0.0013747594171020072,"disabling":0.0013747594171020072,"hashingtable_sizepositive":0.0005499037668408029,"multiple":0.0013747594171020072,"floor":0.0013747594171020072,"poly_modulus_degree":0.00192466318394281,"felts_per_item":0.00192466318394281,"max_items_per_binhow":0.0008248556502612042,"fit":0.0027495188342040143,"row":0.0027495188342040143,"bundles3queryparamsps_low_degreeany":0.0005499037668408029,"number":0.0013747594171020072,"between":0.0013747594171020072,"max_items_per_bin":0.00192466318394281,"zero":0.0013747594171020072,"paterson":0.0027495188342040143,"stockmeyer":0.0027495188342040143,"algorithm":0.0021996150673632116,"not":0.0013747594171020072,"ps_low_degree":0.00192466318394281,"use":0.0013747594171020072,"algorithmquery_powershow":0.0005499037668408029,"ref":0.0013747594171020072,"challis":0.0013747594171020072,"robinson":0.0013747594171020072,"determine":0.0013747594171020072,"good":0.0013747594171020072,"source":0.0013747594171020072,"powers4sealparamspoly_modulus_degree2048":0.0005499037668408029,"8192plain_modulus":0.0005499037668408029,"_bits":0.0013747594171020072,"bits":0.0013747594171020072,"coeff_modulus_bits":0.0013747594171020072,"paramsfunction":0.0005499037668408029,"params":0.0005499037668408029,"function":0.0005499037668408029,"1itemparamsfelts_per_itemhow":0.00027495188342040145,"1itemparams":0.00027495188342040145,"felts_per_itemhow":0.00027495188342040145,"how":0.0016497113005224085,"2tableparams":0.00027495188342040145,"hash_func_countcuckoo":0.00027495188342040145,"table_sizepositive":0.00027495188342040145,"table_size":0.0005499037668408029,"positive":0.0005499037668408029,"3queryparams":0.00027495188342040145,"ps_low_degreeany":0.00027495188342040145,"any":0.0005499037668408029,"query_powershow":0.00027495188342040145,"query_powers":0.0005499037668408029,"4sealparams":0.00027495188342040145,"poly_modulus_degree2048":0.00027495188342040145,"plain_modulus":0.0008248556502612042},"49":{"0":0.01340033500837521,"1":0.01340033500837521,"21":0.0005583472920156337,"22":0.0011166945840312675,"rs21":0.0011166945840312675,"introduced":0.0005583472920156337,"an":0.0011166945840312675,"efficient":0.0016750418760469012,"psi":0.0005583472920156337,"protocol":0.002233389168062535,"based":0.0005583472920156337,"on":0.0005583472920156337,"okvs":0.0016750418760469012,"and":0.010050251256281407,"vole":0.0027917364600781687,"rr22":0.0011166945840312675,"present":0.0005583472920156337,"significant":0.0005583472920156337,"improvements":0.0005583472920156337,"to":0.003908431044109436,"the":0.003908431044109436,"data":0.0016750418760469012,"structure":0.0016750418760469012,"along":0.0005583472920156337,"with":0.0011166945840312675,"new":0.0005583472920156337,"techniquesfor":0.0005583472920156337,"further":0.0005583472920156337,"reducing":0.0005583472920156337,"communication":0.0011166945840312675,"overhead":0.0011166945840312675,"of":0.0027917364600781687,"rs":0.0005583472920156337,"oblivous":0.0005583472920156337,"key":0.0016750418760469012,"value":0.0011166945840312675,"stores":0.0005583472920156337,"consists":0.0005583472920156337,"algorithms":0.0005583472920156337,"encode":0.01507537688442211,"decode":0.0011166945840312675,"takes":0.0011166945840312675,"a":0.08821887213847013,"list":0.0005583472920156337,"k":0.03461753210496929,"v":0.0011166945840312675,"pairs":0.0005583472920156337,"as":0.0011166945840312675,"input":0.0011166945840312675,"returns":0.0005583472920156337,"abstract":0.0005583472920156337,"s":0.0011166945840312675,"such":0.0016750418760469012,"gives":0.0005583472920156337,"some":0.0005583472920156337,"output":0.0005583472920156337,"pseudorandom":0.0005583472920156337,"correlation":0.0005583472920156337,"generators":0.0005583472920156337,"pcgs":0.0005583472920156337,"allow":0.0005583472920156337,"for":0.0005583472920156337,"generation":0.0005583472920156337,"oblivious":0.0011166945840312675,"transfer":0.0005583472920156337,"ot":0.0005583472920156337,"vector":0.0005583472920156337,"linear":0.0005583472920156337,"evaluations":0.0005583472920156337,"sublinear":0.0005583472920156337,"concretely":0.0005583472920156337,"good":0.0005583472920156337,"computational":0.0005583472920156337,"pcg":0.0005583472920156337,"makes":0.0005583472920156337,"use":0.0011166945840312675,"so":0.0005583472920156337,"called":0.0005583472920156337,"lpn":0.0011166945840312675,"friendly":0.0011166945840312675,"errorcorrecting":0.0005583472920156337,"code":0.0011166945840312675,"secretflow":0.0011166945840312675,"yacl":0.0011166945840312675,"provides":0.0005583472920156337,"implementation":0.0005583472920156337,"coeds":0.0005583472920156337,"now":0.0005583472920156337,"support":0.0005583472920156337,"crr21":0.0011166945840312675,"silver":0.0011166945840312675,"codes":0.0011166945840312675,"ldpc":0.0005583472920156337,"bcgi":0.0011166945840312675,"expand":0.0005583472920156337,"accumulate":0.0005583472920156337,"is":0.0005583472920156337,"most":0.0005583472920156337,"but":0.0005583472920156337,"not":0.0005583472920156337,"recommended":0.0005583472920156337,"due":0.0005583472920156337,"its":0.0005583472920156337,"security":0.0005583472920156337,"flaw":0.0005583472920156337,"semi":0.0005583472920156337,"honest":0.0005583472920156337,"receiver":0.006700167504187605,"samples":0.0011166945840312675,"r":0.07816862088218872,"leftarrow":0.00446677833612507,"kappar":0.002233389168062535,"computes":0.0011166945840312675,"p":0.03350083752093802,"l":0.02680067001675042,"vec":0.08040201005025126,"mathrm":0.00446677833612507,"where":0.0011166945840312675,"hn":0.02680067001675042,"m":0.05695142378559464,"x":0.09212730318257957,"h":0.04355108877721943,"n":0.030709101060859854,"in":0.00446677833612507,"sender":0.005583472920156337,"run":0.0011166945840312675,"sub":0.0011166945840312675,"gets":0.002233389168062535,"delta":0.01786711334450028,"b":0.05025125628140704,"c":0.05080960357342267,"that":0.0011166945840312675,"sends":0.002233389168062535,"defines":0.0011166945840312675,"cdot":0.01786711334450028,"y":0.06979341150195421,"compares":0.0011166945840312675,"outputs":0.0011166945840312675,"intersection":0.0011166945840312675,"result":0.0011166945840312675,"yx":0.006141820212171971,"cap":0.00446677833612507,"kappa":0.002233389168062535,"e":0.0011166945840312675,"o":0.0005583472920156337,"d":0.0005583472920156337},"50":{"0":0.0012953367875647669,"2":0.0012953367875647669,"4":0.0025906735751295338,"10":0.005829015544041451,"21":0.0025906735751295338,"22":0.0012953367875647669,"35":0.0012953367875647669,"134":0.0025906735751295338,"144":0.003238341968911917,"203":0.0012953367875647669,"221":0.0012953367875647669,"291":0.0025906735751295338,"308":0.0025906735751295338,"418":0.0012953367875647669,"435":0.0012953367875647669,"565":0.003238341968911917,"691":0.0012953367875647669,"702":0.0012953367875647669,"818":0.0012953367875647669,"829":0.0012953367875647669,"896":0.0012953367875647669,"912":0.0012953367875647669,"1055":0.0012953367875647669,"1072":0.0012953367875647669,"1074":0.0012953367875647669,"1091":0.0012953367875647669,"1145":0.0038860103626943004,"1223":0.0012953367875647669,"1237":0.0012953367875647669,"1243":0.0012953367875647669,"1255":0.0012953367875647669,"1986":0.0025906735751295338,"1999":0.0012953367875647669,"2006":0.0025906735751295338,"2010":0.0012953367875647669,"2011":0.0012953367875647669,"2012":0.0045336787564766836,"2015":0.0045336787564766836,"2016":0.0025906735751295338,"2017":0.0025906735751295338,"2018":0.007772020725388601,"2019":0.007772020725388601,"2020":0.0012953367875647669,"2021":0.0051813471502590676,"2022":0.0012953367875647669,"2208":0.0019430051813471502,"3958":0.0012953367875647669,"6280":0.0012953367875647669,"10957":0.0012953367875647669,"13249":0.0019430051813471502,"3133956":0.0019430051813471502,"3134061":0.0019430051813471502,"3243734":0.0019430051813471502,"3243836":0.0019430051813471502,"e":0.006476683937823834,"boyle":0.006476683937823834,"g":0.006476683937823834,"couteau":0.007772020725388601,"n":0.006476683937823834,"gilboa":0.006476683937823834,"and":0.03626943005181347,"y":0.0051813471502590676,"ishai":0.006476683937823834,"compressing":0.0012953367875647669,"vector":0.0038860103626943004,"ole":0.0038860103626943004,"in":0.022020725388601035,"acm":0.025906735751295335,"ccs":0.011658031088082901,"pages":0.009067357512953367,"press":0.009067357512953367,"october":0.0025906735751295338,"l":0.0051813471502590676,"kohl":0.0051813471502590676,"p":0.014248704663212436,"rindal":0.010362694300518135,"scholl":0.0051813471502590676,"efficient":0.010362694300518135,"two":0.0025906735751295338,"round":0.0025906735751295338,"ot":0.0038860103626943004,"extension":0.0038860103626943004,"silent":0.0038860103626943004,"non":0.0025906735751295338,"interactive":0.0025906735751295338,"secure":0.0051813471502590676,"computation":0.0051813471502590676,"november":0.0038860103626943004,"daniel":0.0012953367875647669,"j":0.0038860103626943004,"bernstein":0.0012953367875647669,"curve25519":0.0012953367875647669,"new":0.0012953367875647669,"diffie":0.0012953367875647669,"hellman":0.0012953367875647669,"speed":0.0012953367875647669,"records":0.0012953367875647669,"public":0.0012953367875647669,"key":0.0012953367875647669,"cryptography":0.0025906735751295338,"pkc":0.0012953367875647669,"springer":0.0051813471502590676,"verlag":0.0025906735751295338,"lncs":0.0038860103626943004,"page":0.0025906735751295338,"cited":0.0012953367875647669,"on":0.011658031088082901,"elette":0.0012953367875647669,"geoffroy":0.0025906735751295338,"niv":0.0012953367875647669,"yuval":0.0012953367875647669,"lisa":0.0012953367875647669,"nicolas":0.0012953367875647669,"resch":0.0012953367875647669,"peter":0.006476683937823834,"correlated":0.0012953367875647669,"pseudorandomness":0.0012953367875647669,"from":0.011658031088082901,"expand":0.0025906735751295338,"accumulate":0.0012953367875647669,"codes":0.0038860103626943004,"crypto2022":0.0012953367875647669,"baldi":0.0012953367875647669,"baronio":0.0012953367875647669,"r":0.0025906735751295338,"cristofaro":0.0012953367875647669,"d":0.007772020725388601,"gasti":0.0012953367875647669,"tsudik":0.0012953367875647669,"countering":0.0012953367875647669,"gattaca":0.0012953367875647669,"testing":0.0012953367875647669,"of":0.006476683937823834,"fully":0.0038860103626943004,"sequenced":0.0012953367875647669,"human":0.0012953367875647669,"genomes":0.0012953367875647669,"conference":0.0038860103626943004,"computer":0.0025906735751295338,"communications":0.0025906735751295338,"security":0.006476683937823834,"pp":0.006476683937823834,"pseudorandom":0.0038860103626943004,"correlation":0.0025906735751295338,"generators":0.0025906735751295338,"ring":0.0012953367875647669,"lpn":0.0025906735751295338,"chen":0.0025906735751295338,"h":0.0025906735751295338,"huang":0.0012953367875647669,"z":0.0012953367875647669,"laine":0.0038860103626943004,"k":0.0051813471502590676,"labeled":0.0025906735751295338,"psi":0.007772020725388601,"homomorphic":0.0051813471502590676,"encryption":0.0051813471502590676,"with":0.0038860103626943004,"malicious":0.0012953367875647669,"lie":0.0012953367875647669,"mannan":0.0012953367875647669,"m":0.007772020725388601,"backes":0.0012953367875647669,"wang":0.0025906735751295338,"x":0.0038860103626943004,"eds":0.0038860103626943004,"oct":0.0025906735751295338,"https":0.013601036269430052,"doi":0.0038860103626943004,"org":0.013601036269430052,"fast":0.006476683937823834,"private":0.006476683937823834,"set":0.006476683937823834,"intersection":0.006476683937823834,"thuraisingham":0.0012953367875647669,"b":0.0025906735751295338,"evans":0.0012953367875647669,"malkin":0.0012953367875647669,"t":0.0025906735751295338,"xu":0.0012953367875647669,"nov":0.0012953367875647669,"kelong":0.0012953367875647669,"cong":0.0012953367875647669,"radames":0.0012953367875647669,"cruz":0.0012953367875647669,"moreno":0.0012953367875647669,"mariana":0.0012953367875647669,"botelho":0.0012953367875647669,"da":0.0012953367875647669,"gama":0.0012953367875647669,"wei":0.0012953367875647669,"dai":0.0012953367875647669,"ilia":0.0012953367875647669,"iliashenko":0.0012953367875647669,"kim":0.0012953367875647669,"michael":0.0012953367875647669,"rosenberg":0.0012953367875647669,"reduced":0.0012953367875647669,"communication":0.0025906735751295338,"proceedings":0.0012953367875647669,"the":0.0038860103626943004,"sigsac":0.0012953367875647669,"securitynovember":0.0012953367875647669,"srinivasan":0.0038860103626943004,"raghuraman":0.0038860103626943004,"silver":0.0012953367875647669,"vole":0.0038860103626943004,"oblivious":0.0038860103626943004,"transfer":0.0012953367875647669,"hardness":0.0012953367875647669,"decoding":0.0012953367875647669,"structured":0.0012953367875647669,"ldpc":0.0012953367875647669,"crypto2021":0.0012953367875647669,"differentially":0.0012953367875647669,"arxiv":0.0019430051813471502,"pdf":0.007772020725388601,"costello":0.0012953367875647669,"c":0.0051813471502590676,"longa":0.0012953367875647669,"fourq":0.0012953367875647669,"four":0.0012953367875647669,"dimensional":0.0012953367875647669,"decompositions":0.0012953367875647669,"a":0.007772020725388601,"q":0.0012953367875647669,"curve":0.0012953367875647669,"over":0.0012953367875647669,"mersenne":0.0012953367875647669,"prime":0.0025906735751295338,"cryptology":0.0025906735751295338,"eprint":0.006476683937823834,"archive":0.0045336787564766836,"report":0.0025906735751295338,"iacr":0.0038860103626943004,"fan":0.0012953367875647669,"vercauteren":0.0012953367875647669,"f":0.0025906735751295338,"somewhat":0.0012953367875647669,"practical":0.0012953367875647669,"http":0.0038860103626943004,"bernardo":0.0012953367875647669,"huberman":0.0012953367875647669,"matt":0.0012953367875647669,"franklin":0.0012953367875647669,"tad":0.0012953367875647669,"hogg":0.0012953367875647669,"enhancing":0.0012953367875647669,"privacy":0.0051813471502590676,"trust":0.0012953367875647669,"electronic":0.0025906735751295338,"communities":0.0012953367875647669,"commerce":0.0012953367875647669,"github":0.0038860103626943004,"com":0.0038860103626943004,"intel":0.0019430051813471502,"ipp":0.0019430051813471502,"crypto":0.0019430051813471502,"jarecki":0.0012953367875647669,"s":0.0025906735751295338,"liu":0.0012953367875647669,"scn":0.0012953367875647669,"vol":0.0025906735751295338,"v":0.0012953367875647669,"kolesnikov":0.0012953367875647669,"kumaresan":0.0012953367875647669,"rosulek":0.0012953367875647669,"trieu":0.0012953367875647669,"batched":0.0012953367875647669,"prf":0.0012953367875647669,"applications":0.0012953367875647669,"to":0.0012953367875647669,"meadows":0.0012953367875647669,"more":0.0012953367875647669,"cryptographic":0.0012953367875647669,"matchmaking":0.0012953367875647669,"protocol":0.0012953367875647669,"for":0.0051813471502590676,"use":0.0012953367875647669,"absence":0.0012953367875647669,"continuously":0.0012953367875647669,"available":0.0012953367875647669,"third":0.0012953367875647669,"party":0.0012953367875647669,"ieee":0.0038860103626943004,"symposium":0.0025906735751295338,"april":0.0012953367875647669,"pinkas":0.0012953367875647669,"schneider":0.0012953367875647669,"zohner":0.0012953367875647669,"scalable":0.0025906735751295338,"based":0.0012953367875647669,"transactions":0.0012953367875647669,"tops":0.0012953367875647669,"resende":0.0012953367875647669,"aranha":0.0012953367875647669,"faster":0.0012953367875647669,"unbalanced":0.0012953367875647669,"meiklejohn":0.0012953367875647669,"sako":0.0012953367875647669,"fc2018":0.0012953367875647669,"heidelberg":0.0012953367875647669,"feb":0.0012953367875647669,"mar":0.0012953367875647669,"blazing":0.0012953367875647669,"improved":0.0025906735751295338,"okvs":0.0012953367875647669,"subfield":0.0012953367875647669,"titouan":0.0012953367875647669,"tanguy":0.0012953367875647669,"convolute":0.0012953367875647669,"crypto2023":0.0012953367875647669,"phillipp":0.0012953367875647669,"schoppmann":0.0025906735751295338,"oprf":0.0012953367875647669,"circuit":0.0012953367875647669,"eurocrypt2021":0.0012953367875647669,"microsoft":0.0045336787564766836,"seal":0.003238341968911917,"release":0.0012953367875647669,"sep":0.0012953367875647669,"research":0.0012953367875647669,"redmond":0.0012953367875647669,"wa":0.0012953367875647669,"standards":0.0012953367875647669,"sec":0.0012953367875647669,"www":0.0038860103626943004,"secg":0.0019430051813471502,"sec2":0.0019430051813471502,"v2":0.0019430051813471502,"gascón":0.0012953367875647669,"reichert":0.0012953367875647669,"raykova":0.0012953367875647669,"distributed":0.0012953367875647669,"constructions":0.0012953367875647669,"implementation":0.0012953367875647669,"weng":0.0012953367875647669,"yang":0.0012953367875647669,"katz":0.0012953367875647669,"wolverine":0.0012953367875647669,"zero":0.0012953367875647669,"knowledge":0.0012953367875647669,"proofs":0.0012953367875647669,"boolean":0.0012953367875647669,"arithmetic":0.0012953367875647669,"circuits":0.0012953367875647669,"sp":0.0012953367875647669,"functions":0.0012953367875647669,"oprfs":0.0012953367875647669,"using":0.0012953367875647669,"order":0.0012953367875647669,"groups":0.0012953367875647669,"ietf":0.0019430051813471502,"id":0.0019430051813471502,"draft":0.0019430051813471502,"irtf":0.0019430051813471502,"cfrg":0.0019430051813471502,"voprf":0.0019430051813471502,"html":0.0019430051813471502},"51":{"this":0.02040816326530612,"page":0.02040816326530612,"covers":0.02040816326530612,"all":0.02040816326530612,"protocol":0.02040816326530612,"buffers":0.02040816326530612,"message":0.02040816326530612,"as":0.02040816326530612,"apis":0.02040816326530612,"psi":0.16326530612244897,"v1":0.08163265306122448,"configuration":0.32653061224489793,"v2":0.08163265306122448,"pir":0.08163265306122448,"launch":0.08163265306122448},"52":{},"53":{"messages":0.07692307692307693,"apsireceiverconfig":0.19230769230769232,"apsisenderconfig":0.19230769230769232,"pirresultreport":0.19230769230769232,"scalar":0.11538461538461539,"value":0.11538461538461539,"types":0.11538461538461539},"54":{},"55":{"1":0.008116883116883116,"fieldtypedescriptionthreads":0.0016233766233766235,"uint32number":0.00487012987012987,"of":0.024350649350649352,"threads":0.01461038961038961,"to":0.048701298701298704,"uselog_file":0.003246753246753247,"stringlog":0.00487012987012987,"file":0.032467532467532464,"path":0.017857142857142856,"for":0.024350649350649352,"apsi":0.024350649350649352,"only":0.024350649350649352,"silent":0.008116883116883116,"booldo":0.00487012987012987,"not":0.024350649350649352,"write":0.008116883116883116,"output":0.008116883116883116,"console":0.008116883116883116,"log_level":0.008116883116883116,"stringone":0.00487012987012987,"all":0.008116883116883116,"debug":0.008116883116883116,"info":0.008116883116883116,"default":0.016233766233766232,"warning":0.008116883116883116,"error":0.008116883116883116,"off":0.008116883116883116,"query_file":0.008116883116883116,"stringpath":0.01461038961038961,"a":0.032467532467532464,"text":0.008116883116883116,"containing":0.008116883116883116,"query":0.016233766233766232,"data":0.008116883116883116,"one":0.011363636363636364,"per":0.008116883116883116,"line":0.008116883116883116,"header":0.008116883116883116,"is":0.008116883116883116,"needed":0.008116883116883116,"output_file":0.008116883116883116,"where":0.008116883116883116,"intersection":0.008116883116883116,"result":0.008116883116883116,"will":0.016233766233766232,"be":0.032467532467532464,"written":0.008116883116883116,"params_file":0.008116883116883116,"json":0.008116883116883116,"describing":0.008116883116883116,"the":0.01948051948051948,"parameters":0.008116883116883116,"used":0.008116883116883116,"by":0.008116883116883116,"sender":0.032467532467532464,"if":0.008116883116883116,"set":0.008116883116883116,"receiver":0.008116883116883116,"ask":0.008116883116883116,"which":0.008116883116883116,"results":0.008116883116883116,"in":0.016233766233766232,"additional":0.008116883116883116,"communication":0.008116883116883116,"experimental_enable_bucketize":0.008116883116883116,"boolmust":0.00487012987012987,"same":0.016233766233766232,"as":0.016233766233766232,"config":0.016233766233766232,"experimental_bucket_cnt":0.008116883116883116,"uint32must":0.00487012987012987,"query_batch_size":0.008116883116883116,"uint32the":0.00487012987012987,"number":0.011363636363636364,"batch":0.008116883116883116,"fieldtypedescription":0.003246753246753247,"field":0.003246753246753247,"type":0.003246753246753247,"description":0.003246753246753247,"use":0.00487012987012987,"uint32":0.01948051948051948,"log_file":0.00487012987012987,"string":0.032467532467532464,"log":0.003246753246753247,"bool":0.012987012987012988,"do":0.003246753246753247,"must":0.006493506493506494},"56":{"1":0.003213367609254499,"2":0.003213367609254499,"16":0.003213367609254499,"1024":0.003213367609254499,"note":0.0006426735218508997,"junfeng":0.0006426735218508997,"we":0.0006426735218508997,"provide":0.0006426735218508997,"a":0.032776349614395885,"config":0.0006426735218508997,"identical":0.0006426735218508997,"to":0.05205655526992288,"original":0.0006426735218508997,"apsi":0.011568123393316195,"cli":0.005141388174807198,"please":0.0006426735218508997,"check":0.0006426735218508997,"https":0.0012853470437017994,"github":0.0012853470437017994,"com":0.0012853470437017994,"microsoft":0.0012853470437017994,"tab":0.0012853470437017994,"readme":0.0012853470437017994,"ov":0.0012853470437017994,"file":0.030205655526992288,"command":0.0012853470437017994,"line":0.0012853470437017994,"interface":0.0012853470437017994,"for":0.01992287917737789,"details":0.0006426735218508997,"fieldtypedescriptionthreads":0.0006426735218508997,"uint32number":0.0038560411311053984,"of":0.02570694087403599,"threads":0.005784061696658098,"uselog_file":0.0012853470437017994,"stringlog":0.0019280205655526992,"path":0.005784061696658098,"only":0.016066838046272493,"silent":0.003213367609254499,"booldo":0.0019280205655526992,"not":0.006426735218508998,"write":0.003213367609254499,"output":0.003213367609254499,"console":0.003213367609254499,"log_level":0.003213367609254499,"stringone":0.0019280205655526992,"all":0.003213367609254499,"debug":0.003213367609254499,"info":0.003213367609254499,"default":0.009640102827763496,"warning":0.003213367609254499,"error":0.003213367609254499,"off":0.003213367609254499,"db_file":0.009640102827763496,"stringpath":0.0038560411311053984,"csv":0.016066838046272493,"describing":0.006426735218508998,"the":0.05141388174807198,"sender":0.012853470437017995,"s":0.003213367609254499,"dataset":0.003213367609254499,"an":0.003213367609254499,"item":0.006426735218508998,"label":0.006426735218508998,"pair":0.003213367609254499,"on":0.006426735218508998,"each":0.009640102827763496,"row":0.003213367609254499,"or":0.003213367609254499,"containing":0.003213367609254499,"serialized":0.009640102827763496,"senderdb":0.019280205655526992,"will":0.009640102827763496,"first":0.006426735218508998,"attempt":0.006426735218508998,"load":0.003213367609254499,"data":0.009640102827763496,"as":0.012853470437017995,"and":0.009640102827763496,"upon":0.003213367609254499,"failure":0.003213367609254499,"proceed":0.003213367609254499,"read":0.003213367609254499,"it":0.003213367609254499,"col":0.006426735218508998,"is":0.009640102827763496,"processed":0.003213367609254499,"while":0.003213367609254499,"second":0.003213367609254499,"other":0.003213367609254499,"cols":0.003213367609254499,"are":0.006426735218508998,"ignored":0.003213367609254499,"no":0.003213367609254499,"headers":0.003213367609254499,"allowed":0.003213367609254499,"params_file":0.003213367609254499,"json":0.003213367609254499,"parameters":0.003213367609254499,"be":0.009640102827763496,"used":0.009640102827763496,"by":0.003213367609254499,"required":0.006426735218508998,"if":0.012853470437017995,"points":0.003213367609254499,"sdb_out_file":0.003213367609254499,"stringsave":0.0019280205655526992,"in":0.012853470437017995,"given":0.003213367609254499,"gen_db_only":0.003213367609254499,"set":0.006426735218508998,"true":0.003213367609254499,"use":0.008354755784061696,"experimental_bucket_folder":0.009640102827763496,"instead":0.003213367609254499,"you":0.003213367609254499,"turn":0.003213367609254499,"experimental_enable_bucketize":0.006426735218508998,"nonce_byte_count":0.003213367609254499,"bytes":0.003213367609254499,"nonce":0.003213367609254499,"labeled":0.003213367609254499,"mode":0.003213367609254499,"compress":0.006426735218508998,"boolwhether":0.0038560411311053984,"memory":0.006426735218508998,"this":0.003213367609254499,"make":0.003213367609254499,"footprint":0.003213367609254499,"smaller":0.003213367609254499,"at":0.003213367609254499,"cost":0.003213367609254499,"increased":0.003213367609254499,"computation":0.003213367609254499,"save_db_only":0.003213367609254499,"save":0.007712082262210797,"db":0.012853470437017995,"bool":0.012210796915167094,"experimental":0.016066838046272493,"whether":0.005784061696658098,"split":0.003213367609254499,"buckets":0.003213367609254499,"bucket":0.009640102827763496,"would":0.003213367609254499,"seperate":0.003213367609254499,"must":0.003213367609254499,"valid":0.003213367609254499,"folder":0.006426735218508998,"experimental_bucket_cnt":0.003213367609254499,"uint32":0.009640102827763496,"number":0.012210796915167094,"fit":0.003213367609254499,"string":0.01992287917737789,"bucketized":0.003213367609254499,"small":0.003213367609254499,"files":0.006426735218508998,"experimental_db_generating_process_num":0.003213367609254499,"int32":0.008997429305912597,"processes":0.003213367609254499,"generating":0.003213367609254499,"source_file":0.003213367609254499,"stringsource":0.0019280205655526992,"genenerate":0.003213367609254499,"currently":0.003213367609254499,"support":0.003213367609254499,"experimental_bucket_group_cnt":0.003213367609254499,"group":0.006426735218508998,"has":0.003213367609254499,"fieldtypedescription":0.0012853470437017994,"field":0.0012853470437017994,"type":0.0012853470437017994,"description":0.0012853470437017994,"log_file":0.0019280205655526992,"log":0.0012853470437017994,"do":0.0012853470437017994,"one":0.0012853470437017994,"source":0.0012853470437017994},"57":{"the":0.037037037037037035,"report":0.037037037037037035,"of":0.037037037037037035,"pir":0.037037037037037035,"task":0.037037037037037035,"fieldtypedescriptionmatch_cnt":0.037037037037037035,"int64none":0.1111111111111111,"fieldtypedescription":0.07407407407407407,"field":0.07407407407407407,"type":0.07407407407407407,"description":0.07407407407407407,"match_cnt":0.14814814814814814,"int64":0.14814814814814814,"none":0.07407407407407407},"58":{},"59":{"2":0.011235955056179775,"7":0.0056179775280898875,"8":0.0056179775280898875,"28":0.0056179775280898875,"56":0.0056179775280898875,"proto":0.014044943820224719,"typenotesc":0.008426966292134831,"typejava":0.008426966292134831,"typepython":0.008426966292134831,"type":0.03089887640449438,"doubledoubledoublefloat":0.008426966292134831,"floatfloatfloatfloat":0.0056179775280898875,"int32uses":0.0056179775280898875,"variable":0.033707865168539325,"length":0.033707865168539325,"encoding":0.0449438202247191,"inefficient":0.011235955056179775,"for":0.011235955056179775,"negative":0.033707865168539325,"numbers":0.02247191011235955,"if":0.02247191011235955,"your":0.011235955056179775,"field":0.011235955056179775,"is":0.011235955056179775,"likely":0.011235955056179775,"to":0.011235955056179775,"have":0.011235955056179775,"values":0.02247191011235955,"use":0.011235955056179775,"sint32":0.0056179775280898875,"instead":0.011235955056179775,"int32intint":0.016853932584269662,"int64uses":0.0056179775280898875,"sint64":0.0056179775280898875,"int64longint":0.016853932584269662,"long":0.033707865168539325,"uint32uses":0.0056179775280898875,"uint32intint":0.011235955056179775,"uint64uses":0.0056179775280898875,"uint64longint":0.011235955056179775,"sint32uses":0.0056179775280898875,"signed":0.011235955056179775,"int":0.011235955056179775,"value":0.011235955056179775,"these":0.011235955056179775,"more":0.02247191011235955,"efficiently":0.011235955056179775,"encode":0.011235955056179775,"than":0.033707865168539325,"regular":0.011235955056179775,"int32s":0.0056179775280898875,"sint64uses":0.0056179775280898875,"int64s":0.0056179775280898875,"fixed32always":0.0056179775280898875,"four":0.011235955056179775,"bytes":0.028089887640449437,"efficient":0.011235955056179775,"uint32":0.0056179775280898875,"are":0.011235955056179775,"often":0.011235955056179775,"greater":0.011235955056179775,"fixed64always":0.0056179775280898875,"eight":0.011235955056179775,"uint64":0.0056179775280898875,"sfixed32always":0.0056179775280898875,"sfixed64always":0.0056179775280898875,"boolboolbooleanboolean":0.0056179775280898875,"stringa":0.0056179775280898875,"string":0.0056179775280898875,"must":0.0056179775280898875,"always":0.0056179775280898875,"contain":0.011235955056179775,"utf":0.0056179775280898875,"encoded":0.0056179775280898875,"or":0.0056179775280898875,"bit":0.0056179775280898875,"ascii":0.0056179775280898875,"text":0.0056179775280898875,"stringstringstr":0.0056179775280898875,"unicode":0.0056179775280898875,"bytesmay":0.0056179775280898875,"any":0.0056179775280898875,"arbitrary":0.0056179775280898875,"sequence":0.0056179775280898875,"of":0.0056179775280898875,"stringbytestringstr":0.0056179775280898875,"notes":0.0056179775280898875,"c":0.0056179775280898875,"java":0.0056179775280898875,"python":0.0056179775280898875,"double":0.0056179775280898875},"60":{},"61":{"messages":0.019417475728155338,"debugoptions":0.04854368932038835,"ecdhconfig":0.04854368932038835,"inputattr":0.04854368932038835,"ioconfig":0.04854368932038835,"kkrtconfig":0.04854368932038835,"outputattr":0.04854368932038835,"protocolconfig":0.04854368932038835,"psiconfig":0.0970873786407767,"recoveryconfig":0.04854368932038835,"rr22config":0.04854368932038835,"ubpsiconfig":0.0970873786407767,"enums":0.019417475728155338,"iotype":0.04854368932038835,"protocol":0.04854368932038835,"advancedjointype":0.04854368932038835,"role":0.04854368932038835,"mode":0.04854368932038835,"scalar":0.02912621359223301,"value":0.02912621359223301,"types":0.02912621359223301},"62":{},"63":{"logging":0.009009009009009009,"level":0.009009009009009009,"for":0.009009009009009009,"default":0.018018018018018018,"logger":0.009009009009009009,"to":0.05405405405405406,"info":0.02702702702702703,"supports":0.009009009009009009,"trace":0.10810810810810811,"spdlog_level_trace":0.018018018018018018,"debug":0.018018018018018018,"spdlog_level_debug":0.018018018018018018,"spdlog_level_info":0.018018018018018018,"warn":0.018018018018018018,"spdlog_level_warn":0.018018018018018018,"err":0.018018018018018018,"spdlog_level_error":0.018018018018018018,"critical":0.018018018018018018,"spdlog_level_critical":0.018018018018018018,"off":0.018018018018018018,"spdlog_level_off":0.018018018018018018,"fieldtypedescriptionlogging_level":0.009009009009009009,"stringnonetrace_path":0.018018018018018018,"stringthe":0.02702702702702703,"path":0.04504504504504504,"of":0.04504504504504504,"deafult":0.04504504504504504,"tmp":0.04504504504504504,"psi":0.04504504504504504,"fieldtypedescription":0.018018018018018018,"field":0.018018018018018018,"type":0.018018018018018018,"description":0.018018018018018018,"logging_level":0.036036036036036036,"stringnone":0.009009009009009009,"string":0.07207207207207207,"none":0.018018018018018018,"trace_path":0.02702702702702703,"the":0.018018018018018018},"64":{"4096":0.06666666666666667,"configs":0.013333333333333334,"for":0.013333333333333334,"ecdh":0.013333333333333334,"protocol":0.013333333333333334,"fieldtypedescriptioncurve":0.013333333333333334,"psi":0.09333333333333334,"curvetypenonebatch_size":0.02666666666666667,"uint64if":0.04,"not":0.06666666666666667,"set":0.06666666666666667,"use":0.06666666666666667,"default":0.06666666666666667,"value":0.06666666666666667,"fieldtypedescription":0.02666666666666667,"field":0.02666666666666667,"type":0.02666666666666667,"description":0.02666666666666667,"curve":0.05333333333333334,"curvetypenone":0.013333333333333334,"curvetype":0.05333333333333334,"none":0.02666666666666667,"batch_size":0.04,"uint64":0.05333333333333334,"if":0.02666666666666667},"65":{"fieldtypedescriptionkeys_unique":0.012195121951219513,"boolkeys":0.036585365853658534,"in":0.06097560975609756,"input":0.06097560975609756,"file":0.06097560975609756,"are":0.06097560975609756,"unique":0.06097560975609756,"if":0.06097560975609756,"not":0.06097560975609756,"set":0.06097560975609756,"use":0.06097560975609756,"default":0.06097560975609756,"value":0.06097560975609756,"false":0.06097560975609756,"fieldtypedescription":0.024390243902439025,"field":0.024390243902439025,"type":0.024390243902439025,"description":0.024390243902439025,"keys_unique":0.04878048780487805,"bool":0.04878048780487805,"keys":0.024390243902439025},"66":{"io":0.022222222222222223,"configuration":0.022222222222222223,"fieldtypedescriptiontype":0.022222222222222223,"iotypenonepath":0.044444444444444446,"stringrequired":0.06666666666666667,"for":0.1111111111111111,"file":0.1111111111111111,"fieldtypedescription":0.044444444444444446,"field":0.044444444444444446,"type":0.13333333333333333,"description":0.044444444444444446,"iotypenone":0.022222222222222223,"iotype":0.06666666666666667,"none":0.044444444444444446,"path":0.06666666666666667,"string":0.08888888888888889,"required":0.044444444444444446},"67":{"1":0.01718213058419244,"20":0.01718213058419244,"configs":0.003436426116838488,"for":0.003436426116838488,"kkrt":0.003436426116838488,"protocol":0.003436426116838488,"fieldtypedescriptionbucket_size":0.003436426116838488,"uint64since":0.010309278350515464,"the":0.06872852233676977,"total":0.01718213058419244,"input":0.03436426116838488,"may":0.03436426116838488,"not":0.03436426116838488,"fit":0.01718213058419244,"in":0.03436426116838488,"memory":0.03436426116838488,"be":0.01718213058419244,"splitted":0.01718213058419244,"into":0.01718213058419244,"buckets":0.01718213058419244,"bucket_size":0.030927835051546393,"indicate":0.01718213058419244,"number":0.01718213058419244,"of":0.03436426116838488,"items":0.01718213058419244,"each":0.01718213058419244,"bucket":0.03436426116838488,"if":0.03436426116838488,"host":0.01718213058419244,"is":0.01718213058419244,"limited":0.01718213058419244,"you":0.03436426116838488,"should":0.03436426116838488,"set":0.03436426116838488,"a":0.03436426116838488,"smaller":0.01718213058419244,"size":0.01718213058419244,"otherwise":0.01718213058419244,"use":0.03436426116838488,"larger":0.01718213058419244,"one":0.01718213058419244,"default":0.01718213058419244,"value":0.01718213058419244,"fieldtypedescription":0.006872852233676976,"field":0.006872852233676976,"type":0.006872852233676976,"description":0.006872852233676976,"uint64":0.013745704467353952,"since":0.006872852233676976},"68":{"fieldtypedescriptioncsv_null_rep":0.012195121951219513,"stringnull":0.036585365853658534,"representation":0.06097560975609756,"in":0.06097560975609756,"output":0.06097560975609756,"csv":0.06097560975609756,"file":0.06097560975609756,"if":0.06097560975609756,"not":0.06097560975609756,"set":0.06097560975609756,"use":0.06097560975609756,"default":0.06097560975609756,"value":0.06097560975609756,"null":0.08536585365853659,"fieldtypedescription":0.024390243902439025,"field":0.024390243902439025,"type":0.024390243902439025,"description":0.024390243902439025,"csv_null_rep":0.04878048780487805,"string":0.04878048780487805},"69":{"any":0.007462686567164179,"items":0.007462686567164179,"related":0.007462686567164179,"to":0.04477611940298507,"psi":0.007462686567164179,"protocols":0.007462686567164179,"fieldtypedescriptionprotocol":0.007462686567164179,"protocolnonerole":0.014925373134328358,"rolenonebroadcast_result":0.014925373134328358,"boolreveal":0.022388059701492536,"result":0.03731343283582089,"sender":0.03731343283582089,"ecdh_config":0.03731343283582089,"ecdhconfigfor":0.022388059701492536,"ecdh":0.03731343283582089,"protocol":0.16417910447761194,"kkrt_config":0.03731343283582089,"kkrtconfigfor":0.022388059701492536,"kkrt":0.03731343283582089,"rr22_config":0.03731343283582089,"rr22configfor":0.022388059701492536,"rr22":0.03731343283582089,"fieldtypedescription":0.014925373134328358,"field":0.014925373134328358,"type":0.014925373134328358,"description":0.014925373134328358,"protocolnone":0.007462686567164179,"none":0.029850746268656716,"role":0.04477611940298507,"rolenone":0.007462686567164179,"broadcast_result":0.022388059701492536,"bool":0.029850746268656716,"reveal":0.014925373134328358,"ecdhconfig":0.022388059701492536,"for":0.04477611940298507,"kkrtconfig":0.022388059701492536,"rr22config":0.022388059701492536},"70":{"the":0.02231237322515213,"top":0.002028397565922921,"level":0.012170385395537525,"of":0.036511156186612576,"configs":0.018255578093306288,"run":0.002028397565922921,"psiconfig":0.014198782961460446,"psireport":0.002028397565922921,"advanced":0.002028397565922921,"joins":0.002028397565922921,"type":0.014198782961460446,"inner":0.004056795131845842,"join":0.016227180527383367,"e":0.002028397565922921,"g":0.002028397565922921,"if":0.02231237322515213,"input":0.018255578093306288,"receiver":0.004056795131845842,"is":0.04462474645030426,"and":0.002028397565922921,"sender":0.004056795131845842,"after":0.010141987829614604,"output":0.04462474645030426,"left":0.012170385395537525,"side":0.016227180527383367,"right":0.012170385395537525,"full":0.004056795131845842,"difference":0.004056795131845842,"fieldtypedescriptionprotocol_config":0.002028397565922921,"protocolconfigconfigs":0.006085192697768763,"for":0.05070993914807302,"protocols":0.010141987829614604,"input_config":0.010141987829614604,"ioconfigconfigs":0.012170385395537525,"output_config":0.010141987829614604,"keysrepeated":0.006085192697768763,"stringkeys":0.006085192697768763,"intersection":0.010141987829614604,"debug_options":0.010141987829614604,"debugoptionslogging":0.006085192697768763,"disable_alignment":0.010141987829614604,"boolit":0.006085192697768763,"true":0.010141987829614604,"not":0.010141987829614604,"promised":0.010141987829614604,"to":0.030425963488843813,"be":0.010141987829614604,"aligned":0.010141987829614604,"recovery_config":0.010141987829614604,"recoveryconfigconfigs":0.006085192697768763,"recovery":0.010141987829614604,"advanced_join_type":0.02028397565922921,"advancedjointypenoneleft_side":0.004056795131845842,"rolerequired":0.006085192697768763,"advanced_join_type_left_join":0.010141987829614604,"or":0.010141987829614604,"advanced_join_type_right_join":0.010141987829614604,"check_hash_digest":0.010141987829614604,"boolcheck":0.006085192697768763,"hash":0.010141987829614604,"digest":0.010141987829614604,"keys":0.018255578093306288,"from":0.010141987829614604,"parties":0.010141987829614604,"are":0.010141987829614604,"equal":0.010141987829614604,"determine":0.010141987829614604,"whether":0.010141987829614604,"early":0.010141987829614604,"stop":0.010141987829614604,"input_attr":0.010141987829614604,"inputattrinput":0.006085192697768763,"attributes":0.02028397565922921,"output_attr":0.010141987829614604,"outputattroutput":0.006085192697768763,"fieldtypedescription":0.004056795131845842,"field":0.004056795131845842,"description":0.004056795131845842,"protocol_config":0.008113590263691683,"protocolconfig":0.006085192697768763,"ioconfig":0.012170385395537525,"repeated":0.008113590263691683,"string":0.008113590263691683,"debugoptions":0.006085192697768763,"logging":0.004056795131845842,"bool":0.016227180527383367,"it":0.004056795131845842,"recoveryconfig":0.006085192697768763,"advancedjointypenone":0.002028397565922921,"advancedjointype":0.006085192697768763,"none":0.004056795131845842,"left_side":0.006085192697768763,"role":0.006085192697768763,"required":0.004056795131845842,"check":0.004056795131845842,"inputattr":0.006085192697768763,"outputattr":0.006085192697768763},"71":{"configuration":0.010752688172043012,"for":0.010752688172043012,"recovery":0.021505376344086023,"if":0.010752688172043012,"a":0.010752688172043012,"psi":0.010752688172043012,"task":0.021505376344086023,"failed":0.010752688172043012,"unexpectedly":0.010752688172043012,"e":0.010752688172043012,"g":0.010752688172043012,"network":0.010752688172043012,"failures":0.010752688172043012,"and":0.07526881720430108,"restart":0.010752688172043012,"the":0.021505376344086023,"can":0.010752688172043012,"resume":0.010752688172043012,"to":0.021505376344086023,"latest":0.010752688172043012,"checkpoint":0.06451612903225806,"save":0.010752688172043012,"time":0.010752688172043012,"however":0.010752688172043012,"enabling":0.010752688172043012,"would":0.010752688172043012,"due":0.010752688172043012,"in":0.010752688172043012,"extra":0.010752688172043012,"disk":0.021505376344086023,"ios":0.010752688172043012,"space":0.010752688172043012,"occupation":0.010752688172043012,"fieldtypedescriptionenabled":0.010752688172043012,"boolnonefolder":0.021505376344086023,"stringstores":0.03225806451612903,"status":0.053763440860215055,"files":0.053763440860215055,"fieldtypedescription":0.021505376344086023,"field":0.021505376344086023,"type":0.021505376344086023,"description":0.021505376344086023,"enabled":0.043010752688172046,"boolnone":0.010752688172043012,"bool":0.043010752688172046,"none":0.021505376344086023,"folder":0.03225806451612903,"string":0.043010752688172046,"stores":0.021505376344086023},"72":{"1":0.01639344262295082,"20":0.01639344262295082,"configs":0.003278688524590164,"for":0.003278688524590164,"rr22":0.003278688524590164,"protocol":0.003278688524590164,"fieldtypedescriptionbucket_size":0.003278688524590164,"uint64since":0.009836065573770493,"the":0.06557377049180328,"total":0.01639344262295082,"input":0.03278688524590164,"may":0.03278688524590164,"not":0.03278688524590164,"fit":0.01639344262295082,"in":0.03278688524590164,"memory":0.03278688524590164,"be":0.01639344262295082,"splitted":0.01639344262295082,"into":0.01639344262295082,"buckets":0.01639344262295082,"bucket_size":0.029508196721311476,"indicate":0.01639344262295082,"number":0.01639344262295082,"of":0.03278688524590164,"items":0.01639344262295082,"each":0.01639344262295082,"bucket":0.03278688524590164,"if":0.03278688524590164,"host":0.01639344262295082,"is":0.01639344262295082,"limited":0.01639344262295082,"you":0.03278688524590164,"should":0.03278688524590164,"set":0.03278688524590164,"a":0.03278688524590164,"smaller":0.01639344262295082,"size":0.01639344262295082,"otherwise":0.01639344262295082,"use":0.03278688524590164,"larger":0.01639344262295082,"one":0.01639344262295082,"default":0.01639344262295082,"value":0.01639344262295082,"low_comm_mode":0.01639344262295082,"boolnone":0.009836065573770493,"fieldtypedescription":0.006557377049180328,"field":0.006557377049180328,"type":0.006557377049180328,"description":0.006557377049180328,"uint64":0.013114754098360656,"since":0.006557377049180328,"bool":0.013114754098360656,"none":0.006557377049180328},"73":{"config":0.00528169014084507,"for":0.0721830985915493,"unbalanced":0.0017605633802816902,"psi":0.0017605633802816902,"fieldtypedescriptionmode":0.0017605633802816902,"ubpsiconfig":0.01056338028169014,"moderequired":0.00528169014084507,"role":0.01936619718309859,"rolerequired":0.01056338028169014,"all":0.008802816901408451,"modes":0.008802816901408451,"except":0.008802816901408451,"mode_offline_gen_cache":0.035211267605633804,"input_config":0.008802816901408451,"ioconfigconfig":0.00528169014084507,"origin":0.008802816901408451,"input":0.01232394366197183,"servers":0.02112676056338028,"required":0.061619718309859156,"mode_offline":0.02640845070422535,"mode_full":0.0528169014084507,"clients":0.017605633802816902,"mode_online":0.035211267605633804,"and":0.04401408450704225,"keysrepeated":0.00528169014084507,"stringjoin":0.00528169014084507,"keys":0.01232394366197183,"server_secret_key_path":0.008802816901408451,"stringservers":0.00528169014084507,"cache_path":0.008802816901408451,"stringrequired":0.00528169014084507,"server_get_result":0.017605633802816902,"boolnoneclient_get_result":0.0035211267605633804,"boolnonedisable_alignment":0.0035211267605633804,"boolit":0.00528169014084507,"true":0.017605633802816902,"output":0.01232394366197183,"is":0.017605633802816902,"not":0.008802816901408451,"promised":0.008802816901408451,"to":0.008802816901408451,"be":0.008802816901408451,"aligned":0.008802816901408451,"valid":0.008802816901408451,"if":0.017605633802816902,"both":0.008802816901408451,"client_get_result":0.014084507042253521,"are":0.008802816901408451,"output_config":0.008802816901408451,"ioconfigrequired":0.00528169014084507,"debug_options":0.008802816901408451,"debugoptionslogging":0.00528169014084507,"level":0.008802816901408451,"advanced_join_type":0.017605633802816902,"psiconfig":0.01056338028169014,"advancedjointypenoneleft_side":0.0035211267605633804,"advanced_join_type_left_join":0.008802816901408451,"or":0.008802816901408451,"advanced_join_type_right_join":0.008802816901408451,"input_attr":0.008802816901408451,"inputattrinput":0.00528169014084507,"attributes":0.017605633802816902,"output_attr":0.008802816901408451,"outputattroutput":0.00528169014084507,"fieldtypedescription":0.0035211267605633804,"field":0.0035211267605633804,"type":0.0035211267605633804,"description":0.0035211267605633804,"mode":0.01232394366197183,"ioconfig":0.01056338028169014,"repeated":0.007042253521126761,"string":0.02112676056338028,"join":0.0035211267605633804,"boolnone":0.0035211267605633804,"bool":0.02112676056338028,"none":0.01056338028169014,"disable_alignment":0.00528169014084507,"it":0.0035211267605633804,"debugoptions":0.00528169014084507,"logging":0.0035211267605633804,"advancedjointypenone":0.0017605633802816902,"advancedjointype":0.00528169014084507,"left_side":0.00528169014084507,"inputattr":0.00528169014084507,"outputattr":0.00528169014084507},"74":{},"75":{"0":0.045454545454545456,"1":0.045454545454545456,"todo":0.022727272727272728,"junfeng":0.022727272727272728,"support":0.022727272727272728,"more":0.022727272727272728,"io":0.022727272727272728,"types":0.022727272727272728,"including":0.022727272727272728,"oss":0.022727272727272728,"sql":0.022727272727272728,"etc":0.022727272727272728,"namenumberdescriptionio_type_unspecified0noneio_type_file_csv1local":0.022727272727272728,"csv":0.11363636363636363,"file":0.11363636363636363,"namenumberdescription":0.045454545454545456,"name":0.045454545454545456,"number":0.045454545454545456,"description":0.045454545454545456,"io_type_unspecified0noneio_type_file_csv1local":0.022727272727272728,"io_type_unspecified0none":0.022727272727272728,"io_type_unspecified":0.045454545454545456,"none":0.045454545454545456,"io_type_file_csv1local":0.022727272727272728,"io_type_file_csv":0.045454545454545456,"local":0.045454545454545456},"76":{"0":0.005277044854881266,"1":0.005277044854881266,"2":0.005277044854881266,"3":0.005277044854881266,"10":0.013192612137203167,"134":0.026385224274406333,"320":0.0158311345646438,"799":0.0158311345646438,"1109":0.013192612137203167,"1986":0.0395778364116095,"2016":0.0158311345646438,"2022":0.0158311345646438,"10022":0.013192612137203167,"psi":0.0158311345646438,"protocols":0.002638522427440633,"namenumberdescriptionprotocol_unspecified0noneprotocol_ecdh1":0.002638522427440633,"mea86":0.013192612137203167,"c":0.013192612137203167,"meadows":0.013192612137203167,"a":0.026385224274406333,"more":0.013192612137203167,"efficient":0.018469656992084433,"cryptographic":0.013192612137203167,"matchmaking":0.013192612137203167,"protocol":0.013192612137203167,"for":0.013192612137203167,"use":0.013192612137203167,"in":0.013192612137203167,"the":0.013192612137203167,"absence":0.013192612137203167,"of":0.013192612137203167,"continuously":0.013192612137203167,"available":0.013192612137203167,"third":0.013192612137203167,"party":0.013192612137203167,"ieee":0.013192612137203167,"symposium":0.013192612137203167,"on":0.013192612137203167,"security":0.013192612137203167,"and":0.013192612137203167,"privacy":0.013192612137203167,"oakland":0.013192612137203167,"ca":0.013192612137203167,"usa":0.013192612137203167,"pp":0.013192612137203167,"doi":0.013192612137203167,"sp":0.013192612137203167,"protocol_kkrt2efficient":0.0079155672823219,"batched":0.013192612137203167,"oblivious":0.013192612137203167,"prf":0.013192612137203167,"with":0.013192612137203167,"applications":0.013192612137203167,"to":0.013192612137203167,"private":0.013192612137203167,"set":0.013192612137203167,"intersection":0.013192612137203167,"https":0.0316622691292876,"eprint":0.0316622691292876,"iacr":0.0316622691292876,"org":0.0316622691292876,"pdfprotocol_rr223blazing":0.005277044854881266,"fast":0.013192612137203167,"pdf":0.026385224274406333,"namenumberdescription":0.005277044854881266,"name":0.005277044854881266,"number":0.005277044854881266,"description":0.005277044854881266,"protocol_unspecified0noneprotocol_ecdh1":0.002638522427440633,"protocol_unspecified0none":0.002638522427440633,"protocol_unspecified":0.005277044854881266,"none":0.005277044854881266,"protocol_ecdh1":0.002638522427440633,"protocol_ecdh":0.005277044854881266,"protocol_kkrt":0.005277044854881266,"protocol_rr223blazing":0.002638522427440633,"protocol_rr22":0.005277044854881266,"blazing":0.005277044854881266},"77":{"0":0.011695906432748537,"1":0.011695906432748537,"2":0.011695906432748537,"3":0.011695906432748537,"4":0.011695906432748537,"5":0.011695906432748537,"advanced":0.005847953216374269,"join":0.05263157894736842,"allow":0.005847953216374269,"duplicate":0.017543859649122806,"keys":0.017543859649122806,"if":0.04678362573099415,"selected":0.023391812865497075,"duplicates_check":0.011695906432748537,"is":0.03508771929824561,"skipped":0.011695906432748537,"both":0.011695906432748537,"parties":0.011695906432748537,"are":0.011695906432748537,"allowed":0.011695906432748537,"to":0.03508771929824561,"contain":0.011695906432748537,"use":0.023391812865497075,"left":0.03508771929824561,"full":0.023391812865497075,"or":0.023391812865497075,"difference":0.04678362573099415,"the":0.023391812865497075,"size":0.023391812865497075,"of":0.04678362573099415,"set":0.023391812865497075,"party":0.04678362573099415,"revealed":0.023391812865497075,"right":0.03508771929824561,"namenumberdescriptionadvanced_join_type_unspecified0noneadvanced_join_type_inner_join1noneadvanced_join_type_left_join2noneadvanced_join_type_right_join3noneadvanced_join_type_full_join4noneadvanced_join_type_difference5none":0.005847953216374269,"namenumberdescription":0.011695906432748537,"name":0.011695906432748537,"number":0.011695906432748537,"description":0.011695906432748537,"advanced_join_type_unspecified0noneadvanced_join_type_inner_join1noneadvanced_join_type_left_join2noneadvanced_join_type_right_join3noneadvanced_join_type_full_join4noneadvanced_join_type_difference5none":0.005847953216374269,"advanced_join_type_unspecified0none":0.005847953216374269,"advanced_join_type_unspecified":0.011695906432748537,"none":0.07017543859649122,"advanced_join_type_inner_join1none":0.005847953216374269,"advanced_join_type_inner_join":0.011695906432748537,"advanced_join_type_left_join2none":0.005847953216374269,"advanced_join_type_left_join":0.011695906432748537,"advanced_join_type_right_join3none":0.005847953216374269,"advanced_join_type_right_join":0.011695906432748537,"advanced_join_type_full_join4none":0.005847953216374269,"advanced_join_type_full_join":0.011695906432748537,"advanced_join_type_difference5none":0.005847953216374269,"advanced_join_type_difference":0.011695906432748537},"78":{"0":0.007042253521126761,"1":0.007042253521126761,"2":0.007042253521126761,"3":0.007042253521126761,"4":0.007042253521126761,"role":0.0035211267605633804,"of":0.0035211267605633804,"parties":0.0035211267605633804,"namenumberdescriptionrole_unspecified0nonerole_receiver1receiver":0.0035211267605633804,"in":0.0880281690140845,"2p":0.07042253521126761,"symmetric":0.035211267605633804,"psi":0.07042253521126761,"receivers":0.017605633802816902,"would":0.017605633802816902,"always":0.017605633802816902,"receive":0.017605633802816902,"the":0.0528169014084507,"result":0.017605633802816902,"origin":0.017605633802816902,"protocol":0.017605633802816902,"role_sender2sender":0.01056338028169014,"senders":0.017605633802816902,"are":0.017605633802816902,"other":0.017605633802816902,"participants":0.017605633802816902,"apart":0.017605633802816902,"from":0.017605633802816902,"receiver":0.02464788732394366,"role_server3server":0.01056338028169014,"unbalanced":0.035211267605633804,"servers":0.017605633802816902,"own":0.035211267605633804,"a":0.035211267605633804,"much":0.035211267605633804,"larger":0.017605633802816902,"dataset":0.035211267605633804,"role_client4server":0.01056338028169014,"clients":0.017605633802816902,"smaller":0.017605633802816902,"namenumberdescription":0.007042253521126761,"name":0.007042253521126761,"number":0.007042253521126761,"description":0.007042253521126761,"role_unspecified0nonerole_receiver1receiver":0.0035211267605633804,"role_unspecified0none":0.0035211267605633804,"role_unspecified":0.007042253521126761,"none":0.007042253521126761,"role_receiver1receiver":0.0035211267605633804,"role_receiver":0.007042253521126761,"role_sender":0.007042253521126761,"sender":0.007042253521126761,"role_server":0.007042253521126761,"server":0.014084507042253521,"role_client":0.007042253521126761},"79":{"0":0.011111111111111112,"1":0.011111111111111112,"2":0.011111111111111112,"3":0.011111111111111112,"4":0.011111111111111112,"5":0.011111111111111112,"namenumberdescriptionmode_unspecified0nonemode_offline_gen_cache1servers":0.005555555555555556,"generate":0.027777777777777776,"cache":0.05555555555555555,"only":0.05555555555555555,"first":0.027777777777777776,"part":0.05555555555555555,"of":0.05555555555555555,"offline":0.08333333333333333,"stage":0.1111111111111111,"mode_offline_transfer_cache2servers":0.016666666666666666,"send":0.027777777777777776,"to":0.027777777777777776,"clients":0.027777777777777776,"second":0.027777777777777776,"mode_offline3run":0.016666666666666666,"mode_online4run":0.016666666666666666,"online":0.027777777777777776,"mode_full5run":0.016666666666666666,"all":0.027777777777777776,"stages":0.027777777777777776,"namenumberdescription":0.011111111111111112,"name":0.011111111111111112,"number":0.011111111111111112,"description":0.011111111111111112,"mode_unspecified0nonemode_offline_gen_cache1servers":0.005555555555555556,"mode_unspecified0none":0.005555555555555556,"mode_unspecified":0.011111111111111112,"none":0.011111111111111112,"mode_offline_gen_cache1servers":0.005555555555555556,"mode_offline_gen_cache":0.011111111111111112,"servers":0.022222222222222223,"mode_offline_transfer_cache":0.011111111111111112,"mode_offline":0.011111111111111112,"run":0.03333333333333333,"mode_online":0.011111111111111112,"mode_full":0.011111111111111112},"80":{"2":0.011235955056179775,"7":0.0056179775280898875,"8":0.0056179775280898875,"28":0.0056179775280898875,"56":0.0056179775280898875,"proto":0.014044943820224719,"typenotesc":0.008426966292134831,"typejava":0.008426966292134831,"typepython":0.008426966292134831,"type":0.03089887640449438,"doubledoubledoublefloat":0.008426966292134831,"floatfloatfloatfloat":0.0056179775280898875,"int32uses":0.0056179775280898875,"variable":0.033707865168539325,"length":0.033707865168539325,"encoding":0.0449438202247191,"inefficient":0.011235955056179775,"for":0.011235955056179775,"negative":0.033707865168539325,"numbers":0.02247191011235955,"if":0.02247191011235955,"your":0.011235955056179775,"field":0.011235955056179775,"is":0.011235955056179775,"likely":0.011235955056179775,"to":0.011235955056179775,"have":0.011235955056179775,"values":0.02247191011235955,"use":0.011235955056179775,"sint32":0.0056179775280898875,"instead":0.011235955056179775,"int32intint":0.016853932584269662,"int64uses":0.0056179775280898875,"sint64":0.0056179775280898875,"int64longint":0.016853932584269662,"long":0.033707865168539325,"uint32uses":0.0056179775280898875,"uint32intint":0.011235955056179775,"uint64uses":0.0056179775280898875,"uint64longint":0.011235955056179775,"sint32uses":0.0056179775280898875,"signed":0.011235955056179775,"int":0.011235955056179775,"value":0.011235955056179775,"these":0.011235955056179775,"more":0.02247191011235955,"efficiently":0.011235955056179775,"encode":0.011235955056179775,"than":0.033707865168539325,"regular":0.011235955056179775,"int32s":0.0056179775280898875,"sint64uses":0.0056179775280898875,"int64s":0.0056179775280898875,"fixed32always":0.0056179775280898875,"four":0.011235955056179775,"bytes":0.028089887640449437,"efficient":0.011235955056179775,"uint32":0.0056179775280898875,"are":0.011235955056179775,"often":0.011235955056179775,"greater":0.011235955056179775,"fixed64always":0.0056179775280898875,"eight":0.011235955056179775,"uint64":0.0056179775280898875,"sfixed32always":0.0056179775280898875,"sfixed64always":0.0056179775280898875,"boolboolbooleanboolean":0.0056179775280898875,"stringa":0.0056179775280898875,"string":0.0056179775280898875,"must":0.0056179775280898875,"always":0.0056179775280898875,"contain":0.011235955056179775,"utf":0.0056179775280898875,"encoded":0.0056179775280898875,"or":0.0056179775280898875,"bit":0.0056179775280898875,"ascii":0.0056179775280898875,"text":0.0056179775280898875,"stringstringstr":0.0056179775280898875,"unicode":0.0056179775280898875,"bytesmay":0.0056179775280898875,"any":0.0056179775280898875,"arbitrary":0.0056179775280898875,"sequence":0.0056179775280898875,"of":0.0056179775280898875,"stringbytestringstr":0.0056179775280898875,"notes":0.0056179775280898875,"c":0.0056179775280898875,"java":0.0056179775280898875,"python":0.0056179775280898875,"double":0.0056179775280898875},"81":{},"82":{"messages":0.03773584905660377,"bucketpsiconfig":0.09433962264150944,"dppsiparams":0.09433962264150944,"inputparams":0.09433962264150944,"memorypsiconfig":0.09433962264150944,"outputparams":0.09433962264150944,"psiresultreport":0.09433962264150944,"enums":0.03773584905660377,"curvetype":0.09433962264150944,"psitype":0.09433962264150944,"scalar":0.05660377358490566,"value":0.05660377358490566,"types":0.05660377358490566},"83":{},"84":{"the":0.048672566371681415,"bucket":0.01327433628318584,"psi":0.09070796460176991,"configuration":0.0022123893805309734,"fieldtypedescriptionpsi_type":0.0022123893805309734,"psitypethe":0.00663716814159292,"type":0.015486725663716814,"receiver_rank":0.011061946902654867,"uint32specified":0.00663716814159292,"receiver":0.022123893805309734,"rank":0.011061946902654867,"can":0.011061946902654867,"get":0.011061946902654867,"result":0.022123893805309734,"broadcast_result":0.011061946902654867,"boolwhether":0.00663716814159292,"to":0.022123893805309734,"broadcast":0.011061946902654867,"all":0.011061946902654867,"parties":0.011061946902654867,"input_params":0.011061946902654867,"inputparamsthe":0.00663716814159292,"input":0.011061946902654867,"parameters":0.022123893805309734,"of":0.04424778761061947,"output_params":0.011061946902654867,"outputparamsthe":0.00663716814159292,"output":0.011061946902654867,"curve_type":0.011061946902654867,"curvetypeoptional":0.00663716814159292,"specified":0.02654867256637168,"elliptic":0.011061946902654867,"curve":0.011061946902654867,"cryptography":0.011061946902654867,"used":0.022123893805309734,"in":0.022123893805309734,"when":0.011061946902654867,"needed":0.011061946902654867,"bucket_size":0.011061946902654867,"uint32optional":0.00663716814159292,"hash":0.011061946902654867,"size":0.011061946902654867,"preprocess_path":0.011061946902654867,"stringoptional":0.01327433628318584,"path":0.022123893805309734,"offline":0.011061946902654867,"preprocess":0.011061946902654867,"file":0.022123893805309734,"ecdh_secret_key_path":0.011061946902654867,"secret":0.011061946902654867,"key":0.011061946902654867,"ecdh_oprf":0.011061946902654867,"256bit":0.011061946902654867,"32bytes":0.011061946902654867,"binary":0.011061946902654867,"dppsi_params":0.011061946902654867,"dppsiparamsoptional":0.00663716814159292,"params":0.011061946902654867,"for":0.011061946902654867,"dp":0.011061946902654867,"fieldtypedescription":0.004424778761061947,"field":0.004424778761061947,"description":0.004424778761061947,"psi_type":0.008849557522123894,"psitype":0.00663716814159292,"uint32":0.017699115044247787,"bool":0.008849557522123894,"whether":0.004424778761061947,"inputparams":0.00663716814159292,"outputparams":0.00663716814159292,"curvetype":0.00663716814159292,"optional":0.022123893805309734,"string":0.017699115044247787,"dppsiparams":0.00663716814159292},"85":{"the":0.014925373134328358,"input":0.014925373134328358,"parameters":0.014925373134328358,"of":0.014925373134328358,"dp":0.04477611940298507,"psi":0.014925373134328358,"fieldtypedescriptionbob_sub_sampling":0.014925373134328358,"doublebob":0.04477611940298507,"sub":0.07462686567164178,"sampling":0.07462686567164178,"bernoulli_distribution":0.07462686567164178,"probability":0.07462686567164178,"epsilon":0.14925373134328357,"doubledp":0.04477611940298507,"fieldtypedescription":0.029850746268656716,"field":0.029850746268656716,"type":0.029850746268656716,"description":0.029850746268656716,"bob_sub_sampling":0.05970149253731343,"double":0.11940298507462686,"bob":0.029850746268656716},"86":{"the":0.03731343283582089,"input":0.08208955223880597,"parameters":0.007462686567164179,"of":0.08208955223880597,"psi":0.007462686567164179,"fieldtypedescriptionpath":0.007462686567164179,"stringthe":0.04477611940298507,"path":0.06716417910447761,"csv":0.03731343283582089,"file":0.03731343283582089,"select_fieldsrepeated":0.022388059701492536,"select":0.07462686567164178,"fields":0.07462686567164178,"data":0.03731343283582089,"precheck":0.03731343283582089,"boolwhether":0.022388059701492536,"to":0.03731343283582089,"check":0.03731343283582089,"duplicate":0.03731343283582089,"fieldtypedescription":0.014925373134328358,"field":0.014925373134328358,"type":0.014925373134328358,"description":0.014925373134328358,"string":0.05970149253731343,"select_fields":0.014925373134328358,"repeated":0.029850746268656716,"bool":0.029850746268656716,"whether":0.014925373134328358},"87":{"the":0.034782608695652174,"in":0.02608695652173913,"memory":0.004347826086956522,"psi":0.11304347826086956,"configuration":0.004347826086956522,"fieldtypedescriptionpsi_type":0.004347826086956522,"psitypethe":0.013043478260869565,"type":0.030434782608695653,"receiver_rank":0.021739130434782608,"uint32specified":0.013043478260869565,"receiver":0.043478260869565216,"rank":0.021739130434782608,"can":0.021739130434782608,"get":0.021739130434782608,"result":0.043478260869565216,"broadcast_result":0.021739130434782608,"boolwhether":0.013043478260869565,"to":0.043478260869565216,"broadcast":0.021739130434782608,"all":0.021739130434782608,"parties":0.021739130434782608,"curve_type":0.021739130434782608,"curvetypeoptional":0.013043478260869565,"specified":0.030434782608695653,"elliptic":0.021739130434782608,"curve":0.021739130434782608,"cryptography":0.021739130434782608,"used":0.021739130434782608,"when":0.021739130434782608,"needed":0.021739130434782608,"dppsi_params":0.021739130434782608,"dppsiparamsoptional":0.013043478260869565,"params":0.021739130434782608,"for":0.021739130434782608,"dp":0.021739130434782608,"fieldtypedescription":0.008695652173913044,"field":0.008695652173913044,"description":0.008695652173913044,"psi_type":0.017391304347826087,"psitype":0.013043478260869565,"uint32":0.017391304347826087,"bool":0.017391304347826087,"whether":0.008695652173913044,"curvetype":0.013043478260869565,"optional":0.017391304347826087,"dppsiparams":0.013043478260869565},"88":{"the":0.0297029702970297,"output":0.10891089108910891,"parameters":0.009900990099009901,"of":0.0594059405940594,"psi":0.009900990099009901,"fieldtypedescriptionpath":0.009900990099009901,"stringthe":0.0297029702970297,"path":0.0891089108910891,"csv":0.04950495049504951,"file":0.09900990099009901,"need_sort":0.04950495049504951,"boolwhether":0.0297029702970297,"to":0.04950495049504951,"sort":0.04950495049504951,"by":0.04950495049504951,"select":0.04950495049504951,"fields":0.04950495049504951,"fieldtypedescription":0.019801980198019802,"field":0.019801980198019802,"type":0.019801980198019802,"description":0.019801980198019802,"string":0.039603960396039604,"bool":0.039603960396039604,"whether":0.019801980198019802},"89":{"1":0.04054054054054054,"the":0.033783783783783786,"report":0.006756756756756757,"of":0.07432432432432433,"psi":0.006756756756756757,"result":0.04054054054054054,"fieldtypedescriptionoriginal_count":0.006756756756756757,"int64the":0.04054054054054054,"data":0.033783783783783786,"count":0.06756756756756757,"input":0.033783783783783786,"intersection_count":0.033783783783783786,"intersection":0.033783783783783786,"get":0.06756756756756757,"when":0.033783783783783786,"self":0.033783783783783786,"party":0.033783783783783786,"can":0.033783783783783786,"not":0.033783783783783786,"original_key_count":0.033783783783783786,"int64noneintersection_key_count":0.013513513513513514,"int64none":0.02702702702702703,"fieldtypedescription":0.013513513513513514,"field":0.013513513513513514,"type":0.013513513513513514,"description":0.013513513513513514,"original_count":0.02702702702702703,"int64":0.10810810810810811,"none":0.02702702702702703,"intersection_key_count":0.02027027027027027},"90":{},"91":{"0":0.005037783375314861,"1":0.017632241813602016,"2":0.005037783375314861,"3":0.012594458438287154,"4":0.005037783375314861,"5":0.005037783375314861,"2016":0.012594458438287154,"14888":0.012594458438287154,"32918":0.012594458438287154,"the":0.027707808564231738,"specified":0.0025188916876574307,"elliptic":0.027707808564231738,"curve":0.04030226700251889,"cryptography":0.015113350125944584,"used":0.0025188916876574307,"in":0.027707808564231738,"psi":0.0025188916876574307,"namenumberdescriptioncurve_invalid_type0nonecurve_255191daniel":0.0025188916876574307,"j":0.012594458438287154,"bernstein":0.012594458438287154,"curve25519":0.017632241813602016,"new":0.012594458438287154,"diffie":0.012594458438287154,"hellman":0.012594458438287154,"speed":0.012594458438287154,"recordscurve_fourq2fourq":0.005037783375314861,"four":0.012594458438287154,"dimensional":0.012594458438287154,"decompositions":0.012594458438287154,"on":0.012594458438287154,"a":0.02518891687657431,"q":0.012594458438287154,"over":0.012594458438287154,"mersenne":0.012594458438287154,"primecurve_sm23sm2":0.005037783375314861,"is":0.012594458438287154,"an":0.012594458438287154,"based":0.012594458438287154,"cryptosystem":0.012594458438287154,"ecc":0.012594458438287154,"published":0.02518891687657431,"as":0.02518891687657431,"chinese":0.012594458438287154,"national":0.012594458438287154,"standard":0.012594458438287154,"gbt":0.012594458438287154,"and":0.012594458438287154,"iso":0.012594458438287154,"iec":0.012594458438287154,"3curve_secp256k14parameters":0.005037783375314861,"of":0.012594458438287154,"defined":0.012594458438287154,"standards":0.012594458438287154,"for":0.012594458438287154,"efficient":0.012594458438287154,"sec":0.012594458438287154,"http":0.015113350125944584,"www":0.015113350125944584,"secg":0.015113350125944584,"org":0.015113350125944584,"sec2":0.015113350125944584,"v2":0.015113350125944584,"pdfcurve_25519_elligator25curve25519":0.005037783375314861,"with":0.012594458438287154,"rfc9380":0.012594458438287154,"elligator2":0.012594458438287154,"hash_to_curve":0.012594458438287154,"namenumberdescription":0.005037783375314861,"name":0.005037783375314861,"number":0.005037783375314861,"description":0.005037783375314861,"curve_invalid_type0nonecurve_255191daniel":0.0025188916876574307,"curve_invalid_type0none":0.0025188916876574307,"curve_invalid_type":0.005037783375314861,"none":0.005037783375314861,"curve_255191daniel":0.0025188916876574307,"records":0.007556675062972292,"curve_25519":0.005037783375314861,"daniel":0.005037783375314861,"curve_fourq2fourq":0.0025188916876574307,"prime":0.007556675062972292,"curve_fourq":0.005037783375314861,"fourq":0.005037783375314861,"curve_sm23sm2":0.0025188916876574307,"curve_sm2":0.005037783375314861,"sm2":0.005037783375314861,"curve_secp256k14parameters":0.0025188916876574307,"pdf":0.010075566750629723,"curve_secp256k1":0.005037783375314861,"parameters":0.005037783375314861,"curve_25519_elligator25curve25519":0.0025188916876574307,"curve_25519_elligator2":0.005037783375314861},"92":{"0":0.0018867924528301887,"1":0.0018867924528301887,"2":0.03490566037735849,"4":0.0018867924528301887,"5":0.0018867924528301887,"6":0.0018867924528301887,"7":0.0018867924528301887,"8":0.0018867924528301887,"9":0.0018867924528301887,"10":0.0018867924528301887,"11":0.0018867924528301887,"12":0.0018867924528301887,"13":0.0018867924528301887,"14":0.0018867924528301887,"15":0.0018867924528301887,"320":0.005660377358490566,"799":0.005660377358490566,"2016":0.005660377358490566,"2022":0.005660377358490566,"2208":0.005660377358490566,"13249":0.005660377358490566,"the":0.0009433962264150943,"algorithm":0.0009433962264150943,"type":0.0009433962264150943,"of":0.0009433962264150943,"psi":0.06981132075471698,"namenumberdescriptioninvalid_psi_type0noneecdh_psi_2pc1noticed":0.0009433962264150943,"no":0.045283018867924525,"longer":0.045283018867924525,"supported":0.045283018867924525,"ddh":0.0047169811320754715,"based":0.009433962264150943,"psikkrt_psi_2pc2noticed":0.0018867924528301887,"efficient":0.0047169811320754715,"batched":0.0047169811320754715,"oblivious":0.0047169811320754715,"prf":0.0047169811320754715,"with":0.009433962264150943,"applications":0.0047169811320754715,"to":0.014150943396226415,"private":0.014150943396226415,"set":0.009433962264150943,"intersection":0.02358490566037736,"https":0.016981132075471698,"eprint":0.011320754716981131,"iacr":0.011320754716981131,"org":0.016981132075471698,"pdfecdh_psi_3pc4multi":0.0018867924528301887,"party":0.0660377358490566,"on":0.009433962264150943,"ecdh":0.03773584905660377,"say":0.0047169811320754715,"a":0.0047169811320754715,"b":0.0047169811320754715,"c":0.0047169811320754715,"receiver":0.0047169811320754715,"notice":0.014150943396226415,"two":0.018867924528301886,"cardinarlity":0.0047169811320754715,"leak":0.010377358490566037,"ecdh_psi_npc5iterative":0.002830188679245283,"running":0.009433962264150943,"get":0.014150943396226415,"n":0.009433962264150943,"leakkkrt_psi_npc6iterative":0.0018867924528301887,"kkrt":0.0047169811320754715,"leakecdh_oprf_ub_psi_2pc_gen_cache7noticed":0.0018867924528301887,"oprf":0.02358490566037736,"unbalanced":0.02358490566037736,"generate":0.0047169811320754715,"cache":0.009433962264150943,"ecdh_oprf_ub_psi_2pc_transfer_cache8noticed":0.002830188679245283,"transfer":0.0047169811320754715,"ecdh_oprf_ub_psi_2pc_offline9noticed":0.002830188679245283,"offline":0.0047169811320754715,"phase":0.014150943396226415,"ecdh_oprf_ub_psi_2pc_online10noticed":0.002830188679245283,"online":0.009433962264150943,"ecdh_oprf_ub_psi_2pc_shuffle_online11noticed":0.002830188679245283,"shuffling":0.0047169811320754715,"large":0.0047169811320754715,"resultdp_psi_2pc12differentially":0.0018867924528301887,"arxiv":0.005660377358490566,"pdf":0.020754716981132074,"bases":0.0047169811320754715,"and":0.0047169811320754715,"provides":0.0047169811320754715,"differentially":0.006603773584905661,"results":0.0047169811320754715,"rr22_fast_psi_2pc13noticed":0.002830188679245283,"blazing":0.0047169811320754715,"fast":0.009433962264150943,"mode":0.012264150943396227,"or":0.0047169811320754715,"low":0.0047169811320754715,"communication":0.0047169811320754715,"moderr22_lowcomm_psi_2pc14nonerr22_malicious_psi_2pc15none":0.0018867924528301887,"namenumberdescription":0.0018867924528301887,"name":0.0018867924528301887,"number":0.0018867924528301887,"description":0.0018867924528301887,"invalid_psi_type0noneecdh_psi_2pc1noticed":0.0009433962264150943,"invalid_psi_type0none":0.0009433962264150943,"invalid_psi_type":0.0018867924528301887,"none":0.005660377358490566,"ecdh_psi_2pc1noticed":0.0009433962264150943,"ecdh_psi_2pc":0.0018867924528301887,"noticed":0.022641509433962263,"kkrt_psi_2pc2noticed":0.0009433962264150943,"kkrt_psi_2pc":0.0018867924528301887,"ecdh_psi_3pc4multi":0.0009433962264150943,"ecdh_psi_3pc":0.0018867924528301887,"multi":0.0018867924528301887,"ecdh_psi_npc":0.0018867924528301887,"iterative":0.0037735849056603774,"kkrt_psi_npc6iterative":0.0009433962264150943,"kkrt_psi_npc":0.0018867924528301887,"ecdh_oprf_ub_psi_2pc_gen_cache7noticed":0.0009433962264150943,"ecdh_oprf_ub_psi_2pc_gen_cache":0.0018867924528301887,"ecdh_oprf_ub_psi_2pc_transfer_cache":0.0018867924528301887,"ecdh_oprf_ub_psi_2pc_offline":0.0018867924528301887,"ecdh_oprf_ub_psi_2pc_online":0.0018867924528301887,"result":0.002830188679245283,"ecdh_oprf_ub_psi_2pc_shuffle_online":0.0018867924528301887,"dp_psi_2pc12differentially":0.0009433962264150943,"dp_psi_2pc":0.0018867924528301887,"rr22_fast_psi_2pc":0.0018867924528301887,"rr22_lowcomm_psi_2pc14none":0.0009433962264150943,"rr22_lowcomm_psi_2pc":0.0018867924528301887,"rr22_malicious_psi_2pc15none":0.0009433962264150943,"rr22_malicious_psi_2pc":0.0018867924528301887},"93":{"2":0.011235955056179775,"7":0.0056179775280898875,"8":0.0056179775280898875,"28":0.0056179775280898875,"56":0.0056179775280898875,"proto":0.014044943820224719,"typenotesc":0.008426966292134831,"typejava":0.008426966292134831,"typepython":0.008426966292134831,"type":0.03089887640449438,"doubledoubledoublefloat":0.008426966292134831,"floatfloatfloatfloat":0.0056179775280898875,"int32uses":0.0056179775280898875,"variable":0.033707865168539325,"length":0.033707865168539325,"encoding":0.0449438202247191,"inefficient":0.011235955056179775,"for":0.011235955056179775,"negative":0.033707865168539325,"numbers":0.02247191011235955,"if":0.02247191011235955,"your":0.011235955056179775,"field":0.011235955056179775,"is":0.011235955056179775,"likely":0.011235955056179775,"to":0.011235955056179775,"have":0.011235955056179775,"values":0.02247191011235955,"use":0.011235955056179775,"sint32":0.0056179775280898875,"instead":0.011235955056179775,"int32intint":0.016853932584269662,"int64uses":0.0056179775280898875,"sint64":0.0056179775280898875,"int64longint":0.016853932584269662,"long":0.033707865168539325,"uint32uses":0.0056179775280898875,"uint32intint":0.011235955056179775,"uint64uses":0.0056179775280898875,"uint64longint":0.011235955056179775,"sint32uses":0.0056179775280898875,"signed":0.011235955056179775,"int":0.011235955056179775,"value":0.011235955056179775,"these":0.011235955056179775,"more":0.02247191011235955,"efficiently":0.011235955056179775,"encode":0.011235955056179775,"than":0.033707865168539325,"regular":0.011235955056179775,"int32s":0.0056179775280898875,"sint64uses":0.0056179775280898875,"int64s":0.0056179775280898875,"fixed32always":0.0056179775280898875,"four":0.011235955056179775,"bytes":0.028089887640449437,"efficient":0.011235955056179775,"uint32":0.0056179775280898875,"are":0.011235955056179775,"often":0.011235955056179775,"greater":0.011235955056179775,"fixed64always":0.0056179775280898875,"eight":0.011235955056179775,"uint64":0.0056179775280898875,"sfixed32always":0.0056179775280898875,"sfixed64always":0.0056179775280898875,"boolboolbooleanboolean":0.0056179775280898875,"stringa":0.0056179775280898875,"string":0.0056179775280898875,"must":0.0056179775280898875,"always":0.0056179775280898875,"contain":0.011235955056179775,"utf":0.0056179775280898875,"encoded":0.0056179775280898875,"or":0.0056179775280898875,"bit":0.0056179775280898875,"ascii":0.0056179775280898875,"text":0.0056179775280898875,"stringstringstr":0.0056179775280898875,"unicode":0.0056179775280898875,"bytesmay":0.0056179775280898875,"any":0.0056179775280898875,"arbitrary":0.0056179775280898875,"sequence":0.0056179775280898875,"of":0.0056179775280898875,"stringbytestringstr":0.0056179775280898875,"notes":0.0056179775280898875,"c":0.0056179775280898875,"java":0.0056179775280898875,"python":0.0056179775280898875,"double":0.0056179775280898875},"94":{"please":0.07407407407407407,"check":0.07407407407407407,"psi":0.25925925925925924,"bucketpsiconfig":0.037037037037037035,"at":0.07407407407407407,"v1":0.07407407407407407,"configuration":0.14814814814814814,"v2":0.14814814814814814,"psiconfig":0.037037037037037035,"and":0.037037037037037035,"ubpsiconfig":0.037037037037037035},"95":{"messages":0.075,"launchconfig":0.0625,"allocatedports":0.0625,"clusterdefine":0.0625,"party":0.0625,"port":0.0625,"service":0.0625,"taskinputconfig":0.125,"sfpsiconfigmapentry":0.0625,"contextdescproto":0.0625,"partyproto":0.0625,"retryoptionsproto":0.0625,"ssloptionsproto":0.0625,"scalar":0.0375,"value":0.0375,"types":0.0375},"96":{},"97":{"fieldtypedescriptionlink_config":0.0034602076124567475,"yacl":0.02422145328719723,"link":0.02422145328719723,"contextdescprotoconfigs":0.010380622837370242,"for":0.01730103806228374,"network":0.01730103806228374,"self_link_party":0.01730103806228374,"stringwith":0.010380622837370242,"link_config":0.031141868512110725,"oneof":0.12110726643598616,"runtime_config":0.08650519031141868,"legacy_psi_config":0.01730103806228374,"bucketpsiconfigplease":0.010380622837370242,"check":0.06920415224913495,"at":0.06920415224913495,"psi":0.01730103806228374,"proto":0.06920415224913495,"psi_config":0.01730103806228374,"v2":0.04844290657439446,"psiconfigplease":0.010380622837370242,"psi_v2":0.03460207612456748,"ub_psi_config":0.01730103806228374,"ubpsiconfigplease":0.010380622837370242,"apsi_sender_config":0.01730103806228374,"apsisenderconfigplease":0.010380622837370242,"pir":0.01730103806228374,"apsi_receiver_config":0.01730103806228374,"apsireceiverconfignone":0.010380622837370242,"fieldtypedescription":0.006920415224913495,"field":0.006920415224913495,"type":0.006920415224913495,"description":0.006920415224913495,"contextdescproto":0.01384083044982699,"configs":0.006920415224913495,"string":0.01384083044982699,"with":0.006920415224913495,"bucketpsiconfig":0.01384083044982699,"please":0.02768166089965398,"psiconfig":0.01384083044982699,"ubpsiconfig":0.01384083044982699,"apsisenderconfig":0.01384083044982699,"apsireceiverconfig":0.01384083044982699,"none":0.006920415224913495},"98":{},"99":{},"100":{"allocatedports":0.02857142857142857,"represents":0.02857142857142857,"allocated":0.08571428571428572,"ports":0.22857142857142856,"for":0.02857142857142857,"pod":0.02857142857142857,"fieldtypedescriptionportsrepeated":0.02857142857142857,"portallocated":0.08571428571428572,"fieldtypedescription":0.05714285714285714,"field":0.05714285714285714,"type":0.05714285714285714,"description":0.05714285714285714,"portsrepeated":0.05714285714285714,"repeated":0.08571428571428572,"port":0.08571428571428572},"101":{"clusterdefine":0.009174311926605505,"represents":0.009174311926605505,"the":0.009174311926605505,"information":0.05504587155963303,"of":0.14678899082568808,"all":0.05504587155963303,"parties":0.07339449541284404,"fieldtypedescriptionpartiesrepeated":0.009174311926605505,"partybasic":0.027522935779816515,"self_party_idx":0.045871559633027525,"int32index":0.05504587155963303,"self":0.09174311926605505,"party":0.07339449541284404,"self_endpoint_idx":0.045871559633027525,"endpoint":0.045871559633027525,"fieldtypedescription":0.01834862385321101,"field":0.01834862385321101,"type":0.01834862385321101,"description":0.01834862385321101,"partiesrepeated":0.01834862385321101,"repeated":0.027522935779816515,"basic":0.01834862385321101,"int32":0.07339449541284404,"index":0.03669724770642202},"102":{"party":0.096,"represents":0.008,"the":0.016,"basic":0.008,"information":0.008,"of":0.088,"fieldtypedescriptionname":0.008,"stringname":0.024,"role":0.056,"stringrole":0.024,"carried":0.04,"by":0.08,"examples":0.04,"client":0.04,"server":0.04,"servicesrepeated":0.024,"servicelist":0.024,"services":0.056,"exposed":0.04,"pod":0.04,"fieldtypedescription":0.016,"field":0.016,"type":0.016,"description":0.016,"name":0.048,"string":0.064,"repeated":0.024,"service":0.024,"list":0.016},"103":{"port":0.10843373493975904,"represents":0.004016064257028112,"an":0.004016064257028112,"allocated":0.024096385542168676,"for":0.04417670682730924,"pod":0.04417670682730924,"fieldtypedescriptionname":0.004016064257028112,"stringeach":0.012048192771084338,"named":0.020080321285140562,"in":0.020080321285140562,"a":0.040160642570281124,"must":0.060240963855421686,"have":0.020080321285140562,"unique":0.020080321285140562,"name":0.03614457831325301,"int32number":0.012048192771084338,"of":0.040160642570281124,"scope":0.028112449799196786,"stringscope":0.012048192771084338,"be":0.040160642570281124,"cluster":0.020080321285140562,"domain":0.020080321285140562,"local":0.040160642570281124,"defaults":0.040160642570281124,"to":0.040160642570281124,"optionalprotocol":0.008032128514056224,"stringprotocol":0.012048192771084338,"http":0.040160642570281124,"grpc":0.020080321285140562,"optional":0.0321285140562249,"fieldtypedescription":0.008032128514056224,"field":0.008032128514056224,"type":0.008032128514056224,"description":0.008032128514056224,"string":0.04819277108433735,"each":0.008032128514056224,"int32":0.01606425702811245,"number":0.008032128514056224,"protocol":0.020080321285140562},"104":{"service":0.023809523809523808,"represents":0.011904761904761904,"the":0.08333333333333333,"address":0.011904761904761904,"corresponding":0.07142857142857142,"to":0.07142857142857142,"port":0.13095238095238096,"fieldtypedescriptionport_name":0.011904761904761904,"stringname":0.03571428571428571,"of":0.05952380952380952,"endpointsrepeated":0.03571428571428571,"stringendpoint":0.03571428571428571,"list":0.05952380952380952,"fieldtypedescription":0.023809523809523808,"field":0.023809523809523808,"type":0.023809523809523808,"description":0.023809523809523808,"port_name":0.047619047619047616,"string":0.09523809523809523,"name":0.023809523809523808,"endpoints":0.023809523809523808,"repeated":0.047619047619047616,"endpoint":0.023809523809523808},"105":{"fieldtypedescriptionsf_psi_config_mapmap":0.03333333333333333,"taskinputconfig":0.2,"sfpsiconfigmapentrynone":0.1,"fieldtypedescription":0.06666666666666667,"field":0.06666666666666667,"type":0.06666666666666667,"description":0.06666666666666667,"sf_psi_config_mapmap":0.06666666666666667,"sf_psi_config_map":0.06666666666666667,"map":0.1,"sfpsiconfigmapentry":0.1,"none":0.06666666666666667},"106":{"fieldtypedescriptionkey":0.024390243902439025,"stringnonevalue":0.04878048780487805,"psi":0.17073170731707318,"launchconfignone":0.07317073170731707,"fieldtypedescription":0.04878048780487805,"field":0.04878048780487805,"type":0.04878048780487805,"description":0.04878048780487805,"key":0.0975609756097561,"stringnone":0.024390243902439025,"string":0.0975609756097561,"none":0.0975609756097561,"value":0.07317073170731707,"launchconfig":0.0975609756097561},"107":{},"108":{},"109":{"configuration":0.0023148148148148147,"for":0.03009259259259259,"link":0.004629629629629629,"config":0.006944444444444444,"fieldtypedescriptionid":0.0023148148148148147,"stringthe":0.006944444444444444,"uuid":0.011574074074074073,"of":0.011574074074074073,"this":0.023148148148148147,"communication":0.011574074074074073,"optionalpartiesrepeated":0.004629629629629629,"partyprotoparty":0.006944444444444444,"description":0.016203703703703703,"describes":0.011574074074074073,"the":0.023148148148148147,"world":0.011574074074074073,"connect_retry_times":0.011574074074074073,"uint32connect":0.013888888888888888,"to":0.02546296296296296,"mesh":0.023148148148148147,"retry":0.02546296296296296,"time":0.02546296296296296,"connect_retry_interval_ms":0.011574074074074073,"interval":0.011574074074074073,"recv_timeout_ms":0.016203703703703703,"uint64recv":0.006944444444444444,"timeout":0.011574074074074073,"in":0.013888888888888888,"milliseconds":0.011574074074074073,"fieldtypedescription":0.004629629629629629,"field":0.006944444444444444,"type":0.006944444444444444,"id":0.009259259259259259,"optional":0.006944444444444444,"string":0.018518518518518517,"partiesrepeated":0.0023148148148148147,"parties":0.004629629629629629,"repeated":0.006944444444444444,"partyproto":0.006944444444444444,"party":0.009259259259259259,"uint32":0.037037037037037035,"connect":0.009259259259259259,"uint64":0.009259259259259259,"recv":0.016203703703703703,"is":0.016203703703703703,"max":0.006944444444444444,"that":0.004629629629629629,"a":0.011574074074074073,"will":0.006944444444444444,"wait":0.009259259259259259,"given":0.0023148148148148147,"event":0.004629629629629629,"example":0.0023148148148148147,"begin":0.004629629629629629,"end":0.004629629629629629,"alice":0.006944444444444444,"s":0.006944444444444444,"timeline":0.004629629629629629,"send":0.016203703703703703,"busy":0.004629629629629629,"work":0.004629629629629629,"bob":0.006944444444444444,"above":0.0023148148148148147,"case":0.0023148148148148147,"when":0.006944444444444444,"begins":0.0023148148148148147,"specific":0.0023148148148148147,"still":0.0023148148148148147,"doing":0.0023148148148148147,"its":0.0023148148148148147,"job":0.0023148148148148147,"exceed":0.0023148148148148147,"wait_timeout_ms":0.0023148148148148147,"it":0.004629629629629629,"raise":0.0023148148148148147,"exception":0.004629629629629629,"although":0.0023148148148148147,"now":0.0023148148148148147,"starting":0.0023148148148148147,"data":0.0023148148148148147,"so":0.0023148148148148147,"long":0.004629629629629629,"one":0.0023148148148148147,"may":0.0023148148148148147,"others":0.0023148148148148147,"very":0.0023148148148148147,"value":0.0023148148148148147,"should":0.0023148148148148147,"be":0.004629629629629629,"changed":0.0023148148148148147,"accordingly":0.0023148148148148147,"http_max_payload_size":0.0023148148148148147,"http":0.006944444444444444,"payload":0.0023148148148148147,"size":0.013888888888888888,"if":0.011574074074074073,"single":0.004629629629629629,"request":0.004629629629629629,"greater":0.0023148148148148147,"than":0.004629629629629629,"limit":0.0023148148148148147,"unpacked":0.0023148148148148147,"into":0.0023148148148148147,"small":0.0023148148148148147,"chunks":0.0023148148148148147,"then":0.0023148148148148147,"reassembled":0.0023148148148148147,"does":0.0023148148148148147,"affect":0.0023148148148148147,"performance":0.0023148148148148147,"please":0.0023148148148148147,"choose":0.0023148148148148147,"wisely":0.0023148148148148147,"http_timeout_ms":0.0023148148148148147,"timetout":0.0023148148148148147,"throttle_window_size":0.0023148148148148147,"throttle":0.0023148148148148147,"window":0.0023148148148148147,"channel":0.013888888888888888,"there":0.0023148148148148147,"are":0.006944444444444444,"more":0.0023148148148148147,"limited":0.0023148148148148147,"messages":0.004629629629629629,"flying":0.0023148148148148147,"sendasync":0.004629629629629629,"block":0.0023148148148148147,"until":0.0023148148148148147,"processed":0.0023148148148148147,"or":0.0023148148148148147,"throw":0.0023148148148148147,"after":0.0023148148148148147,"brpc_channel_protocol":0.0023148148148148147,"brpc":0.004629629629629629,"client":0.004629629629629629,"protocol":0.0023148148148148147,"brpc_channel_connection_type":0.0023148148148148147,"connection":0.0023148148148148147,"enable_ssl":0.006944444444444444,"bool":0.004629629629629629,"ssl":0.006944444444444444,"options":0.004629629629629629,"client_ssl_opts":0.0023148148148148147,"ssloptionsproto":0.009259259259259259,"configs":0.004629629629629629,"ignored":0.004629629629629629,"false":0.004629629629629629,"server_ssl_opts":0.0023148148148148147,"service":0.0023148148148148147,"chunk_parallel_send_size":0.004629629629629629,"chunk":0.0023148148148148147,"parallel":0.0023148148148148147,"need":0.0023148148148148147,"chunked":0.0023148148148148147,"message":0.0023148148148148147,"paralleled":0.0023148148148148147,"retry_opts":0.0023148148148148147,"retryoptionsproto":0.004629629629629629},"110":{"fieldtypedescriptionid":0.029411764705882353,"stringnonehost":0.058823529411764705,"stringnone":0.11764705882352941,"fieldtypedescription":0.058823529411764705,"field":0.058823529411764705,"type":0.058823529411764705,"description":0.058823529411764705,"id":0.11764705882352941,"string":0.23529411764705882,"none":0.11764705882352941,"host":0.08823529411764706},"111":{"1":0.01179245283018868,"3":0.007075471698113208,"retry":0.07075471698113207,"options":0.0023584905660377358,"fieldtypedescriptionmax_retry":0.0023584905660377358,"uint32max":0.007075471698113208,"count":0.01179245283018868,"default":0.04716981132075472,"3retry_interval_ms":0.0047169811320754715,"uint32time":0.007075471698113208,"between":0.03537735849056604,"retries":0.04716981132075472,"at":0.01179245283018868,"first":0.01179245283018868,"secondretry_interval_incr_ms":0.0047169811320754715,"uint32the":0.014150943396226415,"amount":0.01179245283018868,"of":0.01179245283018868,"time":0.01650943396226415,"to":0.01179245283018868,"increase":0.01179245283018868,"the":0.02122641509433962,"interval":0.02358490566037736,"2smax_retry_interval_ms":0.0047169811320754715,"maximum":0.01179245283018868,"10serror_codesrepeated":0.0047169811320754715,"uint32retry":0.014150943396226415,"on":0.0589622641509434,"these":0.02358490566037736,"brpc":0.01179245283018868,"error":0.02358490566037736,"codes":0.049528301886792456,"if":0.02358490566037736,"empty":0.02358490566037736,"all":0.02358490566037736,"codeshttp_codesrepeated":0.0047169811320754715,"http":0.02358490566037736,"codesaggressive_retry":0.0047169811320754715,"booldo":0.007075471698113208,"aggressive":0.01179245283018868,"this":0.01179245283018868,"means":0.01179245283018868,"that":0.01179245283018868,"will":0.01179245283018868,"be":0.01179245283018868,"made":0.01179245283018868,"additional":0.01179245283018868,"fieldtypedescription":0.0047169811320754715,"field":0.0047169811320754715,"type":0.0047169811320754715,"description":0.0047169811320754715,"max_retry":0.009433962264150943,"uint32":0.05660377358490566,"max":0.0047169811320754715,"retry_interval_ms":0.007075471698113208,"second":0.007075471698113208,"retry_interval_incr_ms":0.007075471698113208,"2s":0.007075471698113208,"max_retry_interval_ms":0.007075471698113208,"10s":0.007075471698113208,"error_codesrepeated":0.0023584905660377358,"error_codes":0.0047169811320754715,"repeated":0.018867924528301886,"http_codesrepeated":0.0023584905660377358,"http_codes":0.0047169811320754715,"aggressive_retry":0.007075471698113208,"bool":0.009433962264150943,"do":0.0047169811320754715},"112":{"0":0.02,"ssl":0.004,"options":0.004,"fieldtypedescriptioncertificate_path":0.004,"stringcertificate":0.012,"file":0.06,"pathprivate_key_path":0.008,"stringprivate":0.012,"key":0.02,"pathverify_depth":0.008,"int32set":0.012,"the":0.12,"maximum":0.02,"depth":0.02,"of":0.02,"certificate":0.048,"chain":0.02,"for":0.02,"verification":0.032,"if":0.04,"turn":0.02,"off":0.02,"verificationca_file_path":0.008,"stringset":0.012,"trusted":0.02,"ca":0.04,"to":0.02,"verify":0.02,"peer":0.02,"s":0.02,"empty":0.02,"use":0.02,"system":0.02,"default":0.02,"files":0.02,"fieldtypedescription":0.008,"field":0.008,"type":0.008,"description":0.008,"certificate_path":0.016,"path":0.024,"string":0.048,"private_key_path":0.012,"private":0.008,"verify_depth":0.012,"int32":0.016,"set":0.016,"ca_file_path":0.012},"113":{},"114":{"2":0.011235955056179775,"7":0.0056179775280898875,"8":0.0056179775280898875,"28":0.0056179775280898875,"56":0.0056179775280898875,"proto":0.014044943820224719,"typenotesc":0.008426966292134831,"typejava":0.008426966292134831,"typepython":0.008426966292134831,"type":0.03089887640449438,"doubledoubledoublefloat":0.008426966292134831,"floatfloatfloatfloat":0.0056179775280898875,"int32uses":0.0056179775280898875,"variable":0.033707865168539325,"length":0.033707865168539325,"encoding":0.0449438202247191,"inefficient":0.011235955056179775,"for":0.011235955056179775,"negative":0.033707865168539325,"numbers":0.02247191011235955,"if":0.02247191011235955,"your":0.011235955056179775,"field":0.011235955056179775,"is":0.011235955056179775,"likely":0.011235955056179775,"to":0.011235955056179775,"have":0.011235955056179775,"values":0.02247191011235955,"use":0.011235955056179775,"sint32":0.0056179775280898875,"instead":0.011235955056179775,"int32intint":0.016853932584269662,"int64uses":0.0056179775280898875,"sint64":0.0056179775280898875,"int64longint":0.016853932584269662,"long":0.033707865168539325,"uint32uses":0.0056179775280898875,"uint32intint":0.011235955056179775,"uint64uses":0.0056179775280898875,"uint64longint":0.011235955056179775,"sint32uses":0.0056179775280898875,"signed":0.011235955056179775,"int":0.011235955056179775,"value":0.011235955056179775,"these":0.011235955056179775,"more":0.02247191011235955,"efficiently":0.011235955056179775,"encode":0.011235955056179775,"than":0.033707865168539325,"regular":0.011235955056179775,"int32s":0.0056179775280898875,"sint64uses":0.0056179775280898875,"int64s":0.0056179775280898875,"fixed32always":0.0056179775280898875,"four":0.011235955056179775,"bytes":0.028089887640449437,"efficient":0.011235955056179775,"uint32":0.0056179775280898875,"are":0.011235955056179775,"often":0.011235955056179775,"greater":0.011235955056179775,"fixed64always":0.0056179775280898875,"eight":0.011235955056179775,"uint64":0.0056179775280898875,"sfixed32always":0.0056179775280898875,"sfixed64always":0.0056179775280898875,"boolboolbooleanboolean":0.0056179775280898875,"stringa":0.0056179775280898875,"string":0.0056179775280898875,"must":0.0056179775280898875,"always":0.0056179775280898875,"contain":0.011235955056179775,"utf":0.0056179775280898875,"encoded":0.0056179775280898875,"or":0.0056179775280898875,"bit":0.0056179775280898875,"ascii":0.0056179775280898875,"text":0.0056179775280898875,"stringstringstr":0.0056179775280898875,"unicode":0.0056179775280898875,"bytesmay":0.0056179775280898875,"any":0.0056179775280898875,"arbitrary":0.0056179775280898875,"sequence":0.0056179775280898875,"of":0.0056179775280898875,"stringbytestringstr":0.0056179775280898875,"notes":0.0056179775280898875,"c":0.0056179775280898875,"java":0.0056179775280898875,"python":0.0056179775280898875,"double":0.0056179775280898875},"115":{"psi":0.1511627906976744,"v2":0.10465116279069768,"is":0.011627906976744186,"recommended":0.011627906976744186,"to":0.011627906976744186,"use":0.011627906976744186,"we":0.011627906976744186,"are":0.011627906976744186,"still":0.011627906976744186,"working":0.011627906976744186,"on":0.011627906976744186,"pir":0.05813953488372093,"code":0.011627906976744186,"refactoring":0.011627906976744186,"v1":0.046511627906976744,"quickstart":0.13953488372093023,"deprecated":0.046511627906976744,"frequently":0.046511627906976744,"asked":0.046511627906976744,"questions":0.046511627906976744,"faq":0.046511627906976744,"benchmark":0.09302325581395349,"apsi":0.046511627906976744},"116":{"this":0.16666666666666666,"document":0.16666666666666666,"introduces":0.16666666666666666,"the":0.16666666666666666,"apsi":0.16666666666666666,"benchmark":0.16666666666666666},"117":{"if":0.025,"the":0.05,"build":0.025,"is":0.025,"successful":0.025,"you":0.025,"will":0.05,"find":0.025,"an":0.025,"executable":0.025,"file":0.075,"named":0.025,"main":0.1,"in":0.025,"bazel":0.05,"bin":0.05,"psi":0.05,"directory":0.025,"we":0.025,"use":0.025,"combined":0.025,"with":0.025,"a":0.025,"config":0.025,"to":0.025,"run":0.025,"apsi":0.025,"protocol":0.025,"for":0.025,"exampple":0.025},"118":{"1":0.02631578947368421,"32":0.02631578947368421,"to":0.06578947368421052,"measure":0.013157894736842105,"the":0.039473684210526314,"performance":0.02631578947368421,"of":0.039473684210526314,"apsi":0.039473684210526314,"protocols":0.013157894736842105,"under":0.013157894736842105,"different":0.013157894736842105,"data":0.05263157894736842,"scales":0.013157894736842105,"we":0.05263157894736842,"need":0.039473684210526314,"generate":0.013157894736842105,"dummy":0.013157894736842105,"next":0.013157894736842105,"copy":0.013157894736842105,"and":0.02631578947368421,"parameter":0.013157894736842105,"files":0.013157894736842105,"into":0.013157894736842105,"tmp":0.013157894736842105,"please":0.013157894736842105,"note":0.013157894736842105,"that":0.013157894736842105,"achieve":0.013157894736842105,"optimal":0.013157894736842105,"find":0.013157894736842105,"a":0.02631578947368421,"suitable":0.013157894736842105,"set":0.02631578947368421,"parameters":0.02631578947368421,"for":0.013157894736842105,"corresponding":0.013157894736842105,"scale":0.013157894736842105,"label":0.013157894736842105,"length":0.013157894736842105,"here":0.013157894736842105,"directly":0.013157894736842105,"use":0.013157894736842105,"default":0.013157894736842105,"provided":0.013157894736842105,"by":0.013157894736842105,"such":0.013157894736842105,"as":0.013157894736842105,"1m":0.02631578947368421,"json":0.02631578947368421},"119":{"we":0.08333333333333333,"use":0.08333333333333333,"the":0.08333333333333333,"config":0.08333333333333333,"file":0.08333333333333333,"to":0.08333333333333333,"specify":0.08333333333333333,"input":0.08333333333333333,"data":0.08333333333333333,"and":0.08333333333333333,"parameter":0.08333333333333333,"files":0.08333333333333333},"120":{"note":0.07692307692307693,"that":0.07692307692307693,"for":0.07692307692307693,"different":0.15384615384615385,"data":0.07692307692307693,"scales":0.07692307692307693,"we":0.07692307692307693,"need":0.07692307692307693,"to":0.07692307692307693,"use":0.07692307692307693,"params_file":0.15384615384615385},"121":{},"122":{"note":0.07692307692307693,"that":0.07692307692307693,"for":0.07692307692307693,"different":0.15384615384615385,"data":0.07692307692307693,"scales":0.07692307692307693,"we":0.07692307692307693,"need":0.07692307692307693,"to":0.07692307692307693,"use":0.07692307692307693,"params_file":0.15384615384615385},"123":{"to":0.08695652173913043,"measure":0.043478260869565216,"the":0.043478260869565216,"apsi":0.043478260869565216,"benchmark":0.043478260869565216,"under":0.043478260869565216,"different":0.043478260869565216,"machine":0.043478260869565216,"and":0.08695652173913043,"network":0.043478260869565216,"configurations":0.043478260869565216,"we":0.043478260869565216,"use":0.043478260869565216,"two":0.043478260869565216,"docker":0.043478260869565216,"containers":0.043478260869565216,"act":0.043478260869565216,"as":0.043478260869565216,"sender":0.043478260869565216,"receiver":0.043478260869565216,"respectively":0.043478260869565216},"124":{"apsi_sender":0.25,"32c64g":0.25,"then":0.25,"run":0.25},"125":{"then":0.5,"run":0.5},"126":{},"127":{"here":0.013636363636363636,"we":0.013636363636363636,"present":0.004545454545454545,"the":0.05454545454545454,"apsi":0.02727272727272727,"benchmark":0.00909090909090909,"measured":0.004545454545454545,"as":0.013636363636363636,"described":0.004545454545454545,"above":0.013636363636363636,"please":0.00909090909090909,"note":0.00909090909090909,"that":0.00909090909090909,"do":0.004545454545454545,"not":0.013636363636363636,"record":0.004545454545454545,"time":0.004545454545454545,"taken":0.004545454545454545,"during":0.004545454545454545,"server":0.004545454545454545,"side":0.004545454545454545,"setup":0.004545454545454545,"phase":0.004545454545454545,"this":0.01818181818181818,"process":0.004545454545454545,"can":0.00909090909090909,"always":0.004545454545454545,"be":0.004545454545454545,"completed":0.004545454545454545,"offline":0.004545454545454545,"additionally":0.00909090909090909,"only":0.004545454545454545,"a":0.02727272727272727,"small":0.004545454545454545,"amount":0.004545454545454545,"of":0.02727272727272727,"performance":0.031818181818181815,"data":0.03636363636363636,"under":0.00909090909090909,"specific":0.00909090909090909,"settings":0.00909090909090909,"is":0.02727272727272727,"presented":0.004545454545454545,"because":0.004545454545454545,"testing":0.004545454545454545,"for":0.00909090909090909,"quite":0.004545454545454545,"complex":0.004545454545454545,"different":0.004545454545454545,"scales":0.004545454545454545,"and":0.00909090909090909,"label":0.00909090909090909,"lengths":0.004545454545454545,"require":0.004545454545454545,"finding":0.004545454545454545,"corresponding":0.00909090909090909,"set":0.004545454545454545,"parameters":0.013636363636363636,"to":0.03636363636363636,"achieve":0.004545454545454545,"optimal":0.00909090909090909,"therefore":0.004545454545454545,"are":0.004545454545454545,"intended":0.004545454545454545,"provide":0.004545454545454545,"you":0.022727272727272728,"with":0.00909090909090909,"rough":0.004545454545454545,"reference":0.004545454545454545,"if":0.013636363636363636,"wish":0.004545454545454545,"measure":0.004545454545454545,"scale":0.00909090909090909,"length":0.004545454545454545,"follow":0.004545454545454545,"steps":0.004545454545454545,"outlined":0.004545454545454545,"reproduce":0.004545454545454545,"results":0.004545454545454545,"finally":0.004545454545454545,"further":0.00909090909090909,"optimize":0.004545454545454545,"good":0.004545454545454545,"understanding":0.004545454545454545,"algorithm":0.004545454545454545,"principles":0.004545454545454545,"necessary":0.004545454545454545,"have":0.004545454545454545,"any":0.004545454545454545,"inquiries":0.004545454545454545,"related":0.004545454545454545,"pir":0.004545454545454545,"feel":0.004545454545454545,"free":0.004545454545454545,"contact":0.004545454545454545,"us":0.004545454545454545,"ms":0.013636363636363636,"represents":0.00909090909090909,"millisecond":0.00909090909090909,"does":0.004545454545454545,"represent":0.004545454545454545,"fixed":0.004545454545454545,"conditions":0.004545454545454545,"query":0.004545454545454545,"highly":0.004545454545454545,"correlated":0.004545454545454545,"want":0.004545454545454545,"support":0.004545454545454545,"larger":0.004545454545454545,"datasets":0.004545454545454545,"such":0.004545454545454545,"one":0.004545454545454545,"billion":0.004545454545454545,"entries":0.004545454545454545,"also":0.004545454545454545,"offer":0.004545454545454545,"bucket":0.004545454545454545,"mode":0.00909090909090909,"however":0.004545454545454545,"requires":0.004545454545454545,"consideration":0.004545454545454545,"more":0.004545454545454545,"so":0.004545454545454545,"it":0.004545454545454545,"displayed":0.004545454545454545,"in":0.004545454545454545},"128":{},"129":{"check":0.02857142857142857,"official":0.02857142857142857,"release":0.02857142857142857,"docker":0.02857142857142857,"image":0.02857142857142857,"at":0.05714285714285714,"dockerhub":0.05714285714285714,"we":0.02857142857142857,"also":0.02857142857142857,"have":0.02857142857142857,"mirrors":0.02857142857142857,"alibaba":0.02857142857142857,"cloud":0.02857142857142857,"secretflow":0.11428571428571428,"registry":0.05714285714285714,"cn":0.05714285714285714,"hangzhou":0.05714285714285714,"cr":0.05714285714285714,"aliyuncs":0.05714285714285714,"com":0.05714285714285714,"psi":0.05714285714285714,"anolis8":0.05714285714285714},"130":{"please":0.0061162079510703364,"check":0.0061162079510703364,"details":0.0030581039755351682,"of":0.0030581039755351682,"configs":0.0030581039755351682,"at":0.0061162079510703364,"here":0.0030581039755351682,"to":0.0061162079510703364,"launch":0.009174311926605505,"psi":0.0030581039755351682,"launchconfig":0.0030581039755351682,"configuration":0.0061162079510703364,"receiver":0.09785932721712538,"config":0.0856269113149847,"sender":0.10091743119266056,"you":0.0030581039755351682,"need":0.0030581039755351682,"prepare":0.0030581039755351682,"following":0.0030581039755351682,"files":0.0030581039755351682,"file":0.045871559633027525,"namelocationdescriptionreceiver":0.0030581039755351682,"tmp":0.06116207951070336,"configconfig":0.01834862385321101,"for":0.06116207951070336,"receiver_input":0.03058103975535168,"csv":0.03058103975535168,"configinput":0.01834862385321101,"make":0.03058103975535168,"sure":0.03058103975535168,"the":0.03058103975535168,"contains":0.03058103975535168,"two":0.03058103975535168,"id":0.03058103975535168,"keys":0.03058103975535168,"id0":0.03058103975535168,"and":0.03058103975535168,"id1":0.03058103975535168,"sender_input":0.03058103975535168,"namelocationdescription":0.0061162079510703364,"name":0.0061162079510703364,"location":0.0061162079510703364,"description":0.0061162079510703364,"input":0.012232415902140673},"131":{"in":0.11764705882352941,"the":0.23529411764705882,"first":0.058823529411764705,"terminal":0.11764705882352941,"run":0.11764705882352941,"following":0.11764705882352941,"command":0.11764705882352941,"other":0.058823529411764705,"simultaneously":0.058823529411764705},"132":{"you":0.09090909090909091,"could":0.09090909090909091,"build":0.09090909090909091,"psi":0.09090909090909091,"binary":0.18181818181818182,"with":0.18181818181818182,"bazel":0.09090909090909091,"then":0.09090909090909091,"use":0.09090909090909091},"133":{"please":0.14285714285714285,"read":0.07142857142857142,"readme":0.14285714285714285,"check":0.07142857142857142,"more":0.07142857142857142,"demo":0.07142857142857142,"configs":0.07142857142857142,"at":0.07142857142857142,"psi":0.14285714285714285,"config":0.14285714285714285},"134":{"to":0.0023923444976076554,"launch":0.007177033492822967,"psi":0.15550239234449761,"please":0.004784688995215311,"check":0.0023923444976076554,"launchconfig":0.0023923444976076554,"at":0.0023923444976076554,"configuration":0.004784688995215311,"and":0.0023923444976076554,"here":0.0023923444976076554,"read":0.0023923444976076554,"examples":0.08133971291866028,"example":0.0023923444976076554,"configs":0.0023923444976076554,"are":0.0023923444976076554,"server":0.01674641148325359,"https":0.07655502392344497,"github":0.07655502392344497,"com":0.07655502392344497,"secretflow":0.07655502392344497,"tree":0.07655502392344497,"main":0.07655502392344497,"config":0.07655502392344497,"ecdh_server_offline":0.019138755980861243,"json":0.07655502392344497,"ecdh_server_online":0.019138755980861243,"client":0.01674641148325359,"ecdh_client_offline":0.019138755980861243,"ecdh_client_online":0.019138755980861243},"135":{"quick":0.125,"start":0.125,"with":0.125,"spu":0.125,"private":0.125,"information":0.125,"retrival":0.125,"pir":0.125},"136":{"pir":0.13043478260869565,"protocolstypeserver":0.043478260869565216,"numbersealpir":0.014492753623188406,"later":0.07246376811594203,"index":0.07246376811594203,"pirsingle":0.08695652173913043,"serverapsikeyword":0.028985507246376812,"server":0.14492753623188406,"number":0.057971014492753624,"protocols":0.028985507246376812,"type":0.028985507246376812,"sealpir":0.07246376811594203,"single":0.057971014492753624,"apsikeyword":0.014492753623188406,"apsi":0.028985507246376812,"keyword":0.028985507246376812,"at":0.014492753623188406,"this":0.014492753623188406,"moment":0.014492753623188406,"is":0.014492753623188406,"under":0.014492753623188406,"development":0.014492753623188406},"137":{"check":0.02857142857142857,"official":0.02857142857142857,"release":0.02857142857142857,"docker":0.02857142857142857,"image":0.02857142857142857,"at":0.05714285714285714,"dockerhub":0.05714285714285714,"we":0.02857142857142857,"also":0.02857142857142857,"have":0.02857142857142857,"mirrors":0.02857142857142857,"alibaba":0.02857142857142857,"cloud":0.02857142857142857,"secretflow":0.11428571428571428,"registry":0.05714285714285714,"cn":0.05714285714285714,"hangzhou":0.05714285714285714,"cr":0.05714285714285714,"aliyuncs":0.05714285714285714,"com":0.05714285714285714,"psi":0.05714285714285714,"anolis8":0.05714285714285714},"138":{},"139":{"we":0.023622047244094488,"provide":0.023622047244094488,"a":0.015748031496062992,"simple":0.007874015748031496,"wrapper":0.007874015748031496,"for":0.023622047244094488,"famous":0.007874015748031496,"apsi":0.05511811023622047,"library":0.007874015748031496,"please":0.015748031496062992,"read":0.015748031496062992,"the":0.047244094488188976,"readme":0.015748031496062992,"of":0.023622047244094488,"repo":0.007874015748031496,"carefully":0.007874015748031496,"are":0.023622047244094488,"not":0.007874015748031496,"going":0.007874015748031496,"to":0.03937007874015748,"discuss":0.007874015748031496,"any":0.007874015748031496,"content":0.007874015748031496,"related":0.007874015748031496,"further":0.023622047244094488,"check":0.007874015748031496,"details":0.007874015748031496,"configs":0.007874015748031496,"at":0.007874015748031496,"pir":0.031496062992125984,"configuration":0.015748031496062992,"you":0.031496062992125984,"supposed":0.007874015748031496,"be":0.007874015748031496,"aware":0.007874015748031496,"that":0.007874015748031496,"provided":0.007874015748031496,"exact":0.015748031496062992,"same":0.007874015748031496,"api":0.007874015748031496,"so":0.007874015748031496,"should":0.007874015748031496,"cli":0.031496062992125984,"arguments":0.015748031496062992,"as":0.023622047244094488,"well":0.007874015748031496,"extra":0.007874015748031496,"features":0.007874015748031496,"brought":0.007874015748031496,"use":0.015748031496062992,"yacl":0.015748031496062992,"link":0.015748031496062992,"communication":0.015748031496062992,"layer":0.015748031496062992,"experimental":0.015748031496062992,"bucketized":0.015748031496062992,"apis":0.015748031496062992,"integration":0.015748031496062992,"if":0.007874015748031496,"want":0.007874015748031496,"try":0.007874015748031496,"similar":0.007874015748031496,"like":0.015748031496062992,"could":0.007874015748031496,"compile":0.007874015748031496,"source":0.007874015748031496,"code":0.007874015748031496,"by":0.007874015748031496,"and":0.007874015748031496,"get":0.007874015748031496,"parameters":0.007874015748031496,"this":0.007874015748031496},"140":{"for":0.03571428571428571,"senders":0.03571428571428571,"servers":0.03571428571428571,"you":0.03571428571428571,"must":0.03571428571428571,"provide":0.03571428571428571,"a":0.10714285714285714,"input":0.07142857142857142,"csv":0.07142857142857142,"or":0.03571428571428571,"sender":0.07142857142857142,"db":0.07142857142857142,"file":0.10714285714285714,"an":0.03571428571428571,"could":0.03571428571428571,"be":0.03571428571428571,"turned":0.03571428571428571,"into":0.03571428571428571,"after":0.03571428571428571,"setup":0.03571428571428571},"141":{"0":0.031914893617021274,"4":0.031914893617021274,"the":0.07446808510638298,"csv":0.010638297872340425,"file":0.010638297872340425,"should":0.010638297872340425,"looks":0.010638297872340425,"like":0.010638297872340425,"please":0.010638297872340425,"make":0.010638297872340425,"sure":0.010638297872340425,"since":0.02127659574468085,"version":0.02127659574468085,"0b0":0.031914893617021274,"headers":0.0425531914893617,"line":0.02127659574468085,"is":0.0425531914893617,"required":0.02127659574468085,"first":0.02127659574468085,"row":0.02127659574468085,"must":0.06382978723404255,"be":0.06382978723404255,"only":0.02127659574468085,"key":0.06382978723404255,"and":0.02127659574468085,"value":0.06382978723404255,"are":0.02127659574468085,"allowed":0.02127659574468085,"column":0.06382978723404255,"items":0.02127659574468085,"keys":0.02127659574468085,"labels":0.02127659574468085,"values":0.02127659574468085,"this":0.02127659574468085,"optional":0.02127659574468085},"142":{"we":0.011235955056179775,"use":0.0056179775280898875,"the":0.028089887640449437,"original":0.0056179775280898875,"apsi":0.10112359550561797,"params":0.033707865168539325,"for":0.02247191011235955,"details":0.0056179775280898875,"please":0.016853932584269662,"check":0.011235955056179775,"psiparams":0.011235955056179775,"senders":0.016853932584269662,"an":0.0056179775280898875,"file":0.033707865168539325,"must":0.0056179775280898875,"be":0.011235955056179775,"provided":0.02247191011235955,"with":0.0056179775280898875,"csv":0.0056179775280898875,"files":0.0056179775280898875,"if":0.016853932584269662,"a":0.016853932584269662,"sender":0.011235955056179775,"db":0.0056179775280898875,"is":0.016853932584269662,"not":0.016853932584269662,"required":0.0056179775280898875,"and":0.02247191011235955,"would":0.0056179775280898875,"ignored":0.0056179775280898875,"receivers":0.016853932584269662,"optional":0.0056179775280898875,"will":0.0056179775280898875,"ask":0.0056179775280898875,"make":0.0056179775280898875,"sure":0.0056179775280898875,"share":0.0056179775280898875,"same":0.0056179775280898875,"otherwise":0.0056179775280898875,"error":0.0056179775280898875,"occurred":0.0056179775280898875,"it":0.0056179775280898875,"s":0.0056179775280898875,"easy":0.0056179775280898875,"to":0.02247191011235955,"find":0.0056179775280898875,"suitable":0.0056179775280898875,"so":0.0056179775280898875,"provides":0.0056179775280898875,"some":0.0056179775280898875,"examples":0.016853932584269662,"at":0.016853932584269662,"parameters":0.05056179775280899,"https":0.016853932584269662,"github":0.016853932584269662,"com":0.016853932584269662,"microsoft":0.016853932584269662,"tree":0.016853932584269662,"main":0.028089887640449437,"_":0.016853932584269662,"have":0.0056179775280898875,"copy":0.0056179775280898875,"blob":0.011235955056179775,"pir":0.016853932584269662,"as":0.0056179775280898875,"well":0.0056179775280898875,"you":0.0056179775280898875,"can":0.0056179775280898875,"refer":0.0056179775280898875,"here":0.011235955056179775,"choose":0.0056179775280898875,"appropriate":0.0056179775280898875,"parameter":0.0056179775280898875,"launch":0.016853932584269662,"launchconfig":0.0056179775280898875,"configuration":0.011235955056179775,"specific":0.0056179775280898875,"config":0.016853932584269662,"receiver":0.0056179775280898875},"143":{"0":0.017699115044247787,"4":0.017699115044247787,"sender":0.061946902654867256,"setup":0.008849557522123894,"stage":0.061946902654867256,"in":0.017699115044247787,"this":0.035398230088495575,"generates":0.017699115044247787,"db":0.02654867256637168,"file":0.035398230088495575,"with":0.008849557522123894,"csv":0.017699115044247787,"is":0.035398230088495575,"offline":0.008849557522123894,"since":0.008849557522123894,"version":0.008849557522123894,"0b0":0.017699115044247787,"the":0.02654867256637168,"source":0.008849557522123894,"for":0.017699115044247787,"generating":0.008849557522123894,"should":0.008849557522123894,"be":0.008849557522123894,"specified":0.008849557522123894,"as":0.008849557522123894,"source_file":0.017699115044247787,"and":0.008849557522123894,"db_file":0.017699115044247787,"used":0.008849557522123894,"to":0.02654867256637168,"specify":0.008849557522123894,"generated":0.008849557522123894,"apsi_sender_setup":0.02654867256637168,"json":0.07964601769911504,"online":0.02654867256637168,"responses":0.008849557522123894,"receivers":0.008849557522123894,"queries":0.008849557522123894,"apsi_sender_online":0.02654867256637168,"receiver":0.017699115044247787,"apsi_receiver":0.02654867256637168,"params_file":0.008849557522123894,"field":0.008849557522123894,"optional":0.008849557522123894,"if":0.017699115044247787,"not":0.008849557522123894,"provided":0.017699115044247787,"will":0.008849557522123894,"ask":0.008849557522123894,"params":0.008849557522123894,"please":0.008849557522123894,"make":0.008849557522123894,"sure":0.008849557522123894,"you":0.008849557522123894,"provide":0.008849557522123894,"same":0.008849557522123894,"one":0.008849557522123894,"s":0.008849557522123894},"144":{"please":0.07692307692307693,"read":0.07692307692307693,"examples":0.15384615384615385,"for":0.07692307692307693,"more":0.07692307692307693,"demo":0.07692307692307693,"configs":0.07692307692307693,"you":0.07692307692307693,"can":0.07692307692307693,"check":0.07692307692307693,"here":0.15384615384615385},"145":{"searching":0.004784688995215311,"in":0.023923444976076555,"a":0.014354066985645933,"large":0.004784688995215311,"sender":0.03349282296650718,"db":0.014354066985645933,"is":0.019138755980861243,"costly":0.004784688995215311,"so":0.004784688995215311,"we":0.014354066985645933,"can":0.014354066985645933,"split":0.014354066985645933,"data":0.014354066985645933,"into":0.014354066985645933,"buckets":0.014354066985645933,"the":0.05263157894736842,"server":0.004784688995215311,"knows":0.004784688995215311,"which":0.009569377990430622,"bucket":0.028708133971291867,"client":0.014354066985645933,"querying":0.004784688995215311,"but":0.004784688995215311,"does":0.004784688995215311,"not":0.004784688995215311,"know":0.009569377990430622,"specific":0.009569377990430622,"element":0.004784688995215311,"setup":0.004784688995215311,"stage":0.009569377990430622,"each":0.014354066985645933,"will":0.004784688995215311,"generate":0.004784688995215311,"online":0.004784688995215311,"receiver":0.004784688995215311,"query":0.009569377990430622,"subqueries":0.004784688995215311,"subquery":0.014354066985645933,"only":0.009569377990430622,"contains":0.004784688995215311,"items":0.004784688995215311,"residing":0.004784688995215311,"same":0.004784688995215311,"when":0.004784688995215311,"receivers":0.004784688995215311,"sends":0.004784688995215311,"to":0.004784688995215311,"idx":0.004784688995215311,"also":0.004784688995215311,"provided":0.004784688995215311,"for":0.009569377990430622,"search":0.004784688995215311,"corresponding":0.004784688995215311,"assuming":0.004784688995215311,"indindiscernibility":0.004784688995215311,"degree":0.004784688995215311,"text":0.1722488038277512,"ind_degree":0.0430622009569378,"and":0.004784688995215311,"has":0.014354066985645933,"sender_data_rows":0.028708133971291867,"rows":0.014354066985645933,"then":0.004784688995215311,"number":0.004784688995215311,"of":0.009569377990430622,"should":0.004784688995215311,"be":0.004784688995215311,"bucket_num":0.0430622009569378,"you":0.004784688995215311,"set":0.004784688995215311,"experimental_bucket_cnt":0.004784688995215311,"with":0.004784688995215311,"if":0.004784688995215311,"query_rows":0.028708133971291867,"query_rows_per_bucket":0.028708133971291867,"per":0.004784688995215311,"select":0.004784688995215311,"xxx":0.004784688995215311,"json":0.004784688995215311,"as":0.004784688995215311,"params_file":0.004784688995215311},"146":{"we":0.07692307692307693,"will":0.07692307692307693,"collect":0.07692307692307693,"some":0.07692307692307693,"popular":0.07692307692307693,"questions":0.07692307692307693,"from":0.07692307692307693,"users":0.07692307692307693,"and":0.07692307692307693,"update":0.07692307692307693,"this":0.07692307692307693,"part":0.07692307692307693,"promptly":0.07692307692307693},"147":{"2":0.002777777777777778,"20":0.002777777777777778,"in":0.019444444444444445,"psi":0.011111111111111112,"config":0.005555555555555556,"what":0.03333333333333333,"is":0.06666666666666667,"difference":0.005555555555555556,"of":0.025,"broadcast_result":0.03888888888888889,"and":0.022222222222222223,"receiver":0.025,"it":0.011111111111111112,"safe":0.011111111111111112,"to":0.025,"turn":0.011111111111111112,"on":0.019444444444444445,"protocols":0.005555555555555556,"the":0.05277777777777778,"parties":0.019444444444444445,"who":0.002777777777777778,"are":0.013888888888888888,"promised":0.005555555555555556,"receive":0.013888888888888888,"intersection":0.011111111111111112,"called":0.011111111111111112,"s":0.03888888888888889,"other":0.005555555555555556,"sender":0.022222222222222223,"when":0.005555555555555556,"also":0.005555555555555556,"both":0.008333333333333333,"must":0.008333333333333333,"agree":0.005555555555555556,"value":0.019444444444444445,"otherwise":0.002777777777777778,"program":0.002777777777777778,"will":0.002777777777777778,"stop":0.002777777777777778,"if":0.008333333333333333,"only":0.005555555555555556,"could":0.011111111111111112,"result":0.008333333333333333,"while":0.005555555555555556,"any":0.008333333333333333,"third":0.005555555555555556,"not":0.008333333333333333,"see":0.005555555555555556,"so":0.005555555555555556,"set":0.011111111111111112,"true":0.002777777777777778,"wish":0.002777777777777778,"get":0.002777777777777778,"io_type_unspecified":0.008333333333333333,"you":0.013888888888888888,"select":0.002777777777777778,"a":0.002777777777777778,"type":0.002777777777777778,"as":0.005555555555555556,"iotype":0.005555555555555556,"default":0.008333333333333333,"which":0.002777777777777778,"meaningless":0.002777777777777778,"at":0.002777777777777778,"this":0.008333333333333333,"moment":0.002777777777777778,"we":0.008333333333333333,"support":0.002777777777777778,"io_type_file_csv":0.002777777777777778,"advanced_join_type_unspecified":0.008333333333333333,"doesn":0.005555555555555556,"t":0.011111111111111112,"allow":0.002777777777777778,"duplicates":0.005555555555555556,"ids":0.005555555555555556,"inputs":0.002777777777777778,"however":0.002777777777777778,"sometimes":0.002777777777777778,"may":0.002777777777777778,"intend":0.002777777777777778,"have":0.008333333333333333,"perform":0.002777777777777778,"left":0.002777777777777778,"right":0.002777777777777778,"full":0.002777777777777778,"join":0.002777777777777778,"following":0.002777777777777778,"rules":0.002777777777777778,"sql":0.002777777777777778,"advancedjointype":0.002777777777777778,"same":0.002777777777777778,"advanced_join_type_inner_join":0.002777777777777778,"recommendation":0.005555555555555556,"bucket":0.005555555555555556,"size":0.005555555555555556,"shouldn":0.005555555555555556,"unless":0.005555555555555556,"very":0.002777777777777778,"limited":0.002777777777777778,"computation":0.002777777777777778,"resource":0.002777777777777778,"disable_alignment":0.008333333333333333,"turns":0.002777777777777778,"received":0.002777777777777778,"by":0.002777777777777778,"be":0.002777777777777778,"aligned":0.002777777777777778,"order":0.002777777777777778,"match":0.002777777777777778,"save":0.002777777777777778,"time":0.002777777777777778,"retryoptionsproto":0.005555555555555556,"contextdescproto":0.005555555555555556,"proper":0.002777777777777778,"values":0.005555555555555556,"for":0.005555555555555556,"all":0.002777777777777778,"fields":0.002777777777777778,"network":0.002777777777777778,"pretty":0.002777777777777778,"bad":0.002777777777777778,"more":0.002777777777777778,"info":0.002777777777777778,"can":0.002777777777777778,"look":0.002777777777777778,"up":0.002777777777777778,"here":0.005555555555555556},"148":{"how":0.024242424242424242,"to":0.05454545454545454,"enable":0.012121212121212121,"ssl":0.012121212121212121,"we":0.012121212121212121,"support":0.006060606060606061,"mtls":0.006060606060606061,"and":0.04242424242424243,"you":0.024242424242424242,"should":0.006060606060606061,"provide":0.05454545454545454,"proper":0.012121212121212121,"contextdescproto":0.006060606060606061,"enable_ssl":0.01818181818181818,"is":0.024242424242424242,"enabled":0.030303030303030304,"in":0.030303030303030304,"client_ssl_opts":0.01818181818181818,"set":0.024242424242424242,"verify_depth":0.01818181818181818,"peer":0.012121212121212121,"ca":0.012121212121212121,"file":0.024242424242424242,"with":0.030303030303030304,"ca_file_path":0.01818181818181818,"server_ssl_opts":0.01818181818181818,"self":0.012121212121212121,"certificate":0.012121212121212121,"private":0.012121212121212121,"key":0.012121212121212121,"certificate_path":0.01818181818181818,"private_key_path":0.01818181818181818,"must":0.012121212121212121,"these":0.012121212121212121,"settings":0.012121212121212121,"at":0.012121212121212121,"both":0.012121212121212121,"sides":0.012121212121212121,"example":0.01818181818181818,"config":0.024242424242424242,"use":0.012121212121212121,"recovery":0.01818181818181818,"feature":0.006060606060606061,"psi":0.012121212121212121,"v2":0.006060606060606061,"have":0.006060606060606061,"a":0.012121212121212121,"ref":0.006060606060606061,"recoveryconfig":0.024242424242424242,"true":0.012121212121212121,"folder":0.01818181818181818,"provided":0.012121212121212121,"store":0.012121212121212121,"checkpoints":0.012121212121212121,"if":0.006060606060606061,"task":0.012121212121212121,"fails":0.006060606060606061,"just":0.006060606060606061,"restart":0.006060606060606061,"the":0.01818181818181818,"same":0.006060606060606061,"progress":0.006060606060606061,"will":0.006060606060606061,"resume":0.006060606060606061},"149":{"this":0.058823529411764705,"document":0.058823529411764705,"will":0.058823529411764705,"introduce":0.058823529411764705,"the":0.17647058823529413,"psi":0.11764705882352941,"v2":0.11764705882352941,"benchmark":0.058823529411764705,"it":0.058823529411764705,"uses":0.058823529411764705,"version":0.058823529411764705,"of":0.058823529411764705,"interface":0.058823529411764705},"150":{"if":0.02702702702702703,"the":0.05405405405405406,"building":0.02702702702702703,"is":0.02702702702702703,"successful":0.02702702702702703,"you":0.02702702702702703,"will":0.05405405405405406,"find":0.02702702702702703,"an":0.02702702702702703,"executable":0.02702702702702703,"file":0.08108108108108109,"named":0.02702702702702703,"main":0.10810810810810811,"in":0.02702702702702703,"bazel":0.02702702702702703,"bin":0.02702702702702703,"psi":0.05405405405405406,"directory":0.02702702702702703,"we":0.02702702702702703,"use":0.02702702702702703,"combined":0.02702702702702703,"with":0.02702702702702703,"config":0.02702702702702703,"to":0.02702702702702703,"run":0.02702702702702703,"different":0.02702702702702703,"protocols":0.02702702702702703,"such":0.02702702702702703,"as":0.02702702702702703},"151":{"in":0.04,"order":0.04,"to":0.08,"measure":0.04,"the":0.04,"performance":0.04,"of":0.04,"different":0.08,"psi":0.04,"protocols":0.04,"under":0.04,"data":0.08,"scales":0.04,"we":0.04,"need":0.04,"generate":0.04,"dummy":0.04,"through":0.04,"generate_psi":0.08,"py":0.08},"152":{"we":0.07692307692307693,"use":0.07692307692307693,"the":0.07692307692307693,"config":0.07692307692307693,"file":0.07692307692307693,"to":0.07692307692307693,"specify":0.07692307692307693,"different":0.07692307692307693,"psi":0.07692307692307693,"protocols":0.07692307692307693,"and":0.07692307692307693,"input":0.07692307692307693,"data":0.07692307692307693},"153":{},"154":{},"155":{"in":0.03571428571428571,"order":0.03571428571428571,"to":0.07142857142857142,"measure":0.03571428571428571,"the":0.03571428571428571,"psi":0.03571428571428571,"v2":0.03571428571428571,"benchmark":0.03571428571428571,"under":0.03571428571428571,"different":0.03571428571428571,"machine":0.03571428571428571,"configurations":0.07142857142857142,"and":0.07142857142857142,"network":0.03571428571428571,"we":0.03571428571428571,"use":0.03571428571428571,"two":0.03571428571428571,"dockers":0.03571428571428571,"act":0.03571428571428571,"as":0.03571428571428571,"sender":0.03571428571428571,"receiver":0.03571428571428571,"respectively":0.03571428571428571,"alice":0.03571428571428571,"bob":0.03571428571428571},"156":{},"157":{"here":0.02631578947368421,"we":0.02631578947368421,"show":0.02631578947368421,"the":0.07894736842105263,"psi":0.02631578947368421,"v2":0.02631578947368421,"benchmark":0.02631578947368421,"measured":0.02631578947368421,"as":0.02631578947368421,"above":0.02631578947368421,"default":0.05263157894736842,"time":0.05263157894736842,"unit":0.05263157894736842,"is":0.05263157894736842,"seconds":0.05263157894736842,"m":0.07894736842105263,"represents":0.10526315789473684,"minutes":0.05263157894736842,"and":0.05263157894736842,"h":0.07894736842105263,"hours":0.05263157894736842},"158":{"quick":0.1111111111111111,"start":0.1111111111111111,"with":0.1111111111111111,"private":0.1111111111111111,"set":0.1111111111111111,"intersection":0.1111111111111111,"psi":0.1111111111111111,"v1":0.1111111111111111,"apis":0.1111111111111111},"159":{"1":0.007462686567164179,"2":0.007462686567164179,"3":0.007462686567164179,"the":0.026119402985074626,"ecdh":0.03731343283582089,"psi":0.09328358208955224,"is":0.011194029850746268,"favorable":0.0037313432835820895,"if":0.007462686567164179,"bandwidth":0.0037313432835820895,"bottleneck":0.007462686567164179,"computing":0.0037313432835820895,"you":0.0037313432835820895,"should":0.0037313432835820895,"try":0.0037313432835820895,"bark":0.0037313432835820895,"oprf":0.022388059701492536,"based":0.0037313432835820895,"kkrt":0.018656716417910446,"protocolsthreat":0.011194029850746268,"modelparty":0.011194029850746268,"numberpsitypecodeecdh":0.0037313432835820895,"psisemi":0.033582089552238806,"honest2p1ecdh":0.007462686567164179,"honest2p":0.022388059701492536,"kkrtsemi":0.011194029850746268,"honest2p2pcg_psisemi":0.007462686567164179,"honest2p3mini":0.007462686567164179,"psimalicious2p":0.011194029850746268,"dp":0.022388059701492536,"numberpsitypecode":0.007462686567164179,"protocols":0.018656716417910446,"threat":0.011194029850746268,"model":0.022388059701492536,"party":0.007462686567164179,"number":0.007462686567164179,"psitypecode":0.007462686567164179,"honest2p1":0.0037313432835820895,"semi":0.05970149253731343,"honest":0.05970149253731343,"2p":0.04477611940298507,"honest2p2":0.0037313432835820895,"pcg_psisemi":0.0037313432835820895,"honest2p3":0.0037313432835820895,"pcg_psi":0.011194029850746268,"mini":0.014925373134328358,"malicious":0.029850746268656716,"mpc":0.0037313432835820895,"and":0.014925373134328358,"are":0.011194029850746268,"designed":0.0037313432835820895,"for":0.007462686567164179,"specific":0.0037313432835820895,"security":0.007462686567164179,"or":0.0037313432835820895,"models":0.0037313432835820895,"widely":0.0037313432835820895,"considered":0.0037313432835820895,"to":0.0037313432835820895,"capture":0.0037313432835820895,"capabilities":0.0037313432835820895,"of":0.011194029850746268,"adversaries":0.007462686567164179,"adversary":0.029850746268656716,"must":0.0037313432835820895,"not":0.0037313432835820895,"be":0.007462686567164179,"used":0.0037313432835820895,"in":0.0037313432835820895,"environment":0.0037313432835820895,"may":0.0037313432835820895,"attacked":0.0037313432835820895,"leak":0.0037313432835820895,"information":0.0037313432835820895,"our":0.0037313432835820895,"implementation":0.0037313432835820895,"protocol":0.0037313432835820895,"supports":0.0037313432835820895,"multiple":0.0037313432835820895,"ecc":0.0037313432835820895,"curves":0.0037313432835820895,"curve25519":0.011194029850746268,"secp256k1":0.011194029850746268,"fourq":0.011194029850746268,"sm2":0.011194029850746268,"please":0.0037313432835820895,"check":0.0037313432835820895,"introduction":0.007462686567164179,"details":0.0037313432835820895},"160":{"please":0.06896551724137931,"check":0.06896551724137931,"details":0.034482758620689655,"of":0.034482758620689655,"configs":0.034482758620689655,"at":0.06896551724137931,"psi":0.10344827586206896,"v1":0.06896551724137931,"configuration":0.13793103448275862,"to":0.034482758620689655,"launch":0.10344827586206896,"launchconfig":0.034482758620689655,"and":0.034482758620689655,"fillin":0.034482758620689655,"runtime_config":0.06896551724137931,"legacy_psi_config":0.06896551724137931},"161":{"check":0.04,"official":0.04,"release":0.04,"docker":0.04,"image":0.04,"at":0.08,"dockerhub":0.08,"we":0.04,"also":0.04,"have":0.04,"mirrors":0.04,"alibaba":0.04,"cloud":0.04,"secretflow":0.08,"registry":0.04,"cn":0.04,"hangzhou":0.04,"cr":0.04,"aliyuncs":0.04,"com":0.04,"psi":0.04,"anolis8":0.04},"162":{"in":0.11764705882352941,"the":0.23529411764705882,"first":0.058823529411764705,"terminal":0.11764705882352941,"run":0.11764705882352941,"following":0.11764705882352941,"command":0.11764705882352941,"other":0.058823529411764705,"simultaneously":0.058823529411764705},"163":{"you":0.09090909090909091,"could":0.09090909090909091,"build":0.09090909090909091,"psi":0.09090909090909091,"binary":0.18181818181818182,"with":0.18181818181818182,"bazel":0.09090909090909091,"then":0.09090909090909091,"use":0.09090909090909091},"164":{"benchmark":0.16666666666666666,"result":0.16666666666666666,"without":0.16666666666666666,"data":0.16666666666666666,"load":0.16666666666666666,"time":0.16666666666666666},"165":{"2":0.07339449541284404,"4":0.0045871559633027525,"6":0.0045871559633027525,"7":0.0045871559633027525,"9":0.0045871559633027525,"11":0.0045871559633027525,"13":0.0045871559633027525,"15":0.0045871559633027525,"18":0.0045871559633027525,"20":0.013761467889908258,"21":0.009174311926605505,"22":0.009174311926605505,"23":0.013761467889908258,"24":0.01834862385321101,"29":0.0045871559633027525,"31":0.0045871559633027525,"40":0.009174311926605505,"42":0.0045871559633027525,"48":0.0045871559633027525,"65":0.0045871559633027525,"66":0.0045871559633027525,"81":0.0045871559633027525,"85":0.0045871559633027525,"87":0.0045871559633027525,"100":0.0045871559633027525,"139":0.0045871559633027525,"163":0.0045871559633027525,"173":0.0045871559633027525,"202":0.013761467889908258,"208":0.0045871559633027525,"212":0.013761467889908258,"222":0.013761467889908258,"232":0.013761467889908258,"330":0.0045871559633027525,"354":0.0045871559633027525,"666":0.0045871559633027525,"dh":0.0045871559633027525,"psi":0.0045871559633027525,"benchmark":0.0045871559633027525,"code":0.0045871559633027525,"cpu":0.03669724770642202,"limited":0.0022935779816513763,"by":0.0022935779816513763,"docker":0.0022935779816513763,"intel":0.022935779816513763,"r":0.045871559633027525,"xeon":0.022935779816513763,"platinumcpu2":0.013761467889908258,"248269cy":0.0022935779816513763,"50ghzwith":0.009174311926605505,"curve25519":0.013761467889908258,"donna4c40":0.006880733944954129,"181s81":0.006880733944954129,"227s163":0.006880733944954129,"509s330":0.006880733944954129,"466s666":0.006880733944954129,"807s8c20":0.0045871559633027525,"682s42":0.006880733944954129,"054s85":0.006880733944954129,"272s173":0.006880733944954129,"836s354":0.006880733944954129,"842s16c11":0.0045871559633027525,"639s23":0.006880733944954129,"670s48":0.006880733944954129,"965s100":0.006880733944954129,"903s208":0.006880733944954129,"156s":0.011467889908256881,"platinum":0.009174311926605505,"8269cy":0.009174311926605505,"807s":0.006880733944954129,"donna":0.0045871559633027525,"50ghz":0.0022935779816513763,"with":0.0022935779816513763,"4c":0.009174311926605505,"181s":0.0045871559633027525,"227s":0.0045871559633027525,"509s":0.0045871559633027525,"466s":0.0045871559633027525,"8c20":0.0022935779816513763,"842s":0.006880733944954129,"8c":0.009174311926605505,"682s":0.0045871559633027525,"054s":0.0045871559633027525,"272s":0.0045871559633027525,"836s":0.0045871559633027525,"16c11":0.0022935779816513763,"16c":0.009174311926605505,"639s":0.0045871559633027525,"670s":0.0045871559633027525,"965s":0.0045871559633027525,"903s":0.0045871559633027525,"ipp":0.016055045871559634,"crypto":0.016055045871559634,"multi":0.0045871559633027525,"buffer":0.0045871559633027525,"functions":0.0045871559633027525,"248369b":0.0022935779816513763,"70ghzcurve25519":0.009174311926605505,"4c7":0.006880733944954129,"37s15":0.006880733944954129,"32s31":0.006880733944954129,"932s66":0.006880733944954129,"802s139":0.006880733944954129,"994s8c4":0.0045871559633027525,"3s9":0.006880733944954129,"095s18":0.006880733944954129,"919s40":0.006880733944954129,"828s87":0.006880733944954129,"649s16c2":0.0045871559633027525,"921s6":0.006880733944954129,"081s13":0.006880733944954129,"186s29":0.006880733944954129,"614s65":0.006880733944954129,"186s":0.016055045871559634,"8369b":0.009174311926605505,"994s":0.006880733944954129,"70ghz":0.0022935779816513763,"37s":0.0045871559633027525,"32s":0.0045871559633027525,"932s":0.0045871559633027525,"802s":0.0045871559633027525,"8c4":0.0022935779816513763,"649s":0.006880733944954129,"3s":0.0045871559633027525,"095s":0.0045871559633027525,"919s":0.0045871559633027525,"828s":0.0045871559633027525,"16c2":0.0022935779816513763,"921s":0.0045871559633027525,"081s":0.0045871559633027525,"614s":0.0045871559633027525},"166":{"0":0.09523809523809523,"2":0.047619047619047616,"10":0.007326007326007326,"11":0.007326007326007326,"18":0.007326007326007326,"20":0.007326007326007326,"22":0.007326007326007326,"24":0.014652014652014652,"25":0.007326007326007326,"44":0.007326007326007326,"46":0.007326007326007326,"100":0.007326007326007326,"182":0.01098901098901099,"192":0.007326007326007326,"202":0.01098901098901099,"222":0.01098901098901099,"415":0.007326007326007326,"1672":0.007326007326007326,"all":0.003663003663003663,"of":0.003663003663003663,"our":0.003663003663003663,"experiments":0.003663003663003663,"use":0.003663003663003663,"a":0.003663003663003663,"single":0.003663003663003663,"thread":0.003663003663003663,"for":0.003663003663003663,"each":0.003663003663003663,"party":0.003663003663003663,"if":0.003663003663003663,"the":0.007326007326007326,"bandwidth":0.014652014652014652,"is":0.003663003663003663,"enough":0.003663003663003663,"upstream":0.003663003663003663,"could":0.003663003663003663,"try":0.003663003663003663,"to":0.003663003663003663,"perform":0.003663003663003663,"multi":0.003663003663003663,"threading":0.003663003663003663,"optimizations":0.003663003663003663,"limited":0.003663003663003663,"by":0.003663003663003663,"wondershaper":0.007326007326007326,"10mbps":0.01098901098901099,"10240kbps":0.003663003663003663,"100mbps":0.01098901098901099,"102400kbps":0.003663003663003663,"1000mbps":0.003663003663003663,"1024000kbps":0.003663003663003663,"intel":0.003663003663003663,"r":0.007326007326007326,"xeon":0.003663003663003663,"platinum":0.003663003663003663,"8269cy":0.003663003663003663,"cpu":0.003663003663003663,"50ghz":0.003663003663003663,"bandwidthphase2":0.01098901098901099,"24lanoffline0":0.003663003663003663,"012s0":0.054945054945054944,"014sonline0":0.007326007326007326,"495s2":0.01098901098901099,"474s10":0.01098901098901099,"765s44":0.01098901098901099,"368s100mbpsoffline0":0.007326007326007326,"024s0":0.01098901098901099,"014sonline2":0.007326007326007326,"694s11":0.01098901098901099,"048s46":0.01098901098901099,"983s192":0.01098901098901099,"37s10mbpsoffline0":0.007326007326007326,"016s0":0.01098901098901099,"019s0":0.01098901098901099,"0312s0":0.01098901098901099,"018sonline25":0.007326007326007326,"434s100":0.01098901098901099,"68s415":0.01098901098901099,"94s1672":0.01098901098901099,"21s":0.018315018315018316,"phase":0.007326007326007326,"lanoffline0":0.007326007326007326,"014s":0.02197802197802198,"lan":0.007326007326007326,"offline":0.02197802197802198,"012s":0.03663003663003663,"online0":0.003663003663003663,"368s":0.01098901098901099,"online":0.02197802197802198,"495s":0.007326007326007326,"474s":0.007326007326007326,"765s":0.007326007326007326,"100mbpsoffline0":0.003663003663003663,"024s":0.007326007326007326,"online2":0.003663003663003663,"37s":0.01098901098901099,"694s":0.007326007326007326,"048s":0.007326007326007326,"983s":0.007326007326007326,"10mbpsoffline0":0.003663003663003663,"018s":0.01098901098901099,"016s":0.007326007326007326,"019s":0.007326007326007326,"0312s":0.007326007326007326,"online25":0.003663003663003663,"434s":0.007326007326007326,"68s":0.007326007326007326,"94s":0.007326007326007326},"167":{"warning":0.029411764705882353,"kkrt16":0.08823529411764706,"is":0.029411764705882353,"semi":0.029411764705882353,"honest":0.029411764705882353,"psi":0.08823529411764706,"protocols":0.029411764705882353,"and":0.029411764705882353,"may":0.029411764705882353,"be":0.029411764705882353,"attacked":0.029411764705882353,"in":0.029411764705882353,"malicious":0.029411764705882353,"model":0.029411764705882353,"we":0.029411764705882353,"recommend":0.029411764705882353,"using":0.029411764705882353,"protocol":0.029411764705882353,"as":0.029411764705882353,"one":0.058823529411764705,"way":0.029411764705882353,"i":0.029411764705882353,"e":0.029411764705882353,"party":0.029411764705882353,"gets":0.029411764705882353,"the":0.029411764705882353,"final":0.029411764705882353,"intersection":0.029411764705882353,"result":0.029411764705882353}},"type":{"1":{"fragment":1},"2":{"fragment":1},"3":{"fragment":1},"4":{"fragment":1},"5":{"fragment":1},"6":{"fragment":1},"7":{"fragment":1},"8":{"fragment":1},"9":{"fragment":1},"10":{"fragment":1},"11":{"fragment":1},"12":{"fragment":1},"13":{"fragment":1},"14":{"fragment":1},"15":{"fragment":1},"16":{"fragment":1},"17":{"fragment":1},"18":{"fragment":1},"19":{"fragment":1},"20":{"fragment":1},"21":{"fragment":1},"22":{"fragment":1},"23":{"fragment":1},"24":{"fragment":1},"25":{"fragment":1},"26":{"fragment":1},"27":{"fragment":1},"28":{"fragment":1},"29":{"fragment":1},"30":{"fragment":1},"31":{"fragment":1},"32":{"fragment":1},"33":{"fragment":1},"34":{"fragment":1},"35":{"fragment":1},"36":{"fragment":1},"37":{"fragment":1},"38":{"fragment":1},"39":{"fragment":1},"40":{"fragment":1},"41":{"fragment":1},"42":{"fragment":1},"43":{"fragment":1},"44":{"fragment":1},"45":{"fragment":1},"46":{"fragment":1},"47":{"fragment":1},"48":{"fragment":1},"49":{"fragment":1},"50":{"fragment":1},"51":{"fragment":1},"52":{"fragment":1},"53":{"fragment":1},"54":{"fragment":1},"55":{"fragment":1},"56":{"fragment":1},"57":{"fragment":1},"58":{"fragment":1},"59":{"fragment":1},"60":{"fragment":1},"61":{"fragment":1},"62":{"fragment":1},"63":{"fragment":1},"64":{"fragment":1},"65":{"fragment":1},"66":{"fragment":1},"67":{"fragment":1},"68":{"fragment":1},"69":{"fragment":1},"70":{"fragment":1},"71":{"fragment":1},"72":{"fragment":1},"73":{"fragment":1},"74":{"fragment":1},"75":{"fragment":1},"76":{"fragment":1},"77":{"fragment":1},"78":{"fragment":1},"79":{"fragment":1},"80":{"fragment":1},"81":{"fragment":1},"82":{"fragment":1},"83":{"fragment":1},"84":{"fragment":1},"85":{"fragment":1},"86":{"fragment":1},"87":{"fragment":1},"88":{"fragment":1},"89":{"fragment":1},"90":{"fragment":1},"91":{"fragment":1},"92":{"fragment":1},"93":{"fragment":1},"94":{"fragment":1},"95":{"fragment":1},"96":{"fragment":1},"97":{"fragment":1},"98":{"fragment":1},"99":{"fragment":1},"100":{"fragment":1},"101":{"fragment":1},"102":{"fragment":1},"103":{"fragment":1},"104":{"fragment":1},"105":{"fragment":1},"106":{"fragment":1},"107":{"fragment":1},"108":{"fragment":1},"109":{"fragment":1},"110":{"fragment":1},"111":{"fragment":1},"112":{"fragment":1},"113":{"fragment":1},"114":{"fragment":1},"115":{"fragment":1},"116":{"fragment":1},"117":{"fragment":1},"118":{"fragment":1},"119":{"fragment":1},"120":{"fragment":1},"121":{"fragment":1},"122":{"fragment":1},"123":{"fragment":1},"124":{"fragment":1},"125":{"fragment":1},"126":{"fragment":1},"127":{"fragment":1},"128":{"fragment":1},"129":{"fragment":1},"130":{"fragment":1},"131":{"fragment":1},"132":{"fragment":1},"133":{"fragment":1},"134":{"fragment":1},"135":{"fragment":1},"136":{"fragment":1},"137":{"fragment":1},"138":{"fragment":1},"139":{"fragment":1},"140":{"fragment":1},"141":{"fragment":1},"142":{"fragment":1},"143":{"fragment":1},"144":{"fragment":1},"145":{"fragment":1},"146":{"fragment":1},"147":{"fragment":1},"148":{"fragment":1},"149":{"fragment":1},"150":{"fragment":1},"151":{"fragment":1},"152":{"fragment":1},"153":{"fragment":1},"154":{"fragment":1},"155":{"fragment":1},"156":{"fragment":1},"157":{"fragment":1},"158":{"fragment":1},"159":{"fragment":1},"160":{"fragment":1},"161":{"fragment":1},"162":{"fragment":1},"163":{"fragment":1},"164":{"fragment":1},"165":{"fragment":1},"166":{"fragment":1},"167":{"fragment":1}},"symbol.domain":{},"symbol.name":{},"symbol.module":{}},"tokenOccurrences":{"url":{"0":13,"1":1,"2":3,"3":4,"4":9,"5":1,"psi":199,"main":167,"en":167,"welcome":1,"to":1,"secretflow":1,"library":1,"s":1,"documentation":1,"whatsnew":20,"release":6,"notes":1,"v0":18,"0beta":4,"2beta":1,"dev240801":1,"dev240731":1,"dev240521":1,"dev240517":1,"dev240514":1,"dev240401":1,"dev240329":1,"dev240304":1,"dev240222":1,"dev240219":1,"dev240123":1,"dev231228":1,"dev231221":1,"getting_started":18,"getting":1,"started":1,"installation":1,"c":1,"binaries":1,"docker":7,"building":6,"from":5,"source":5,"python":1,"packages":1,"id1":2,"id2":2,"applications":1,"id3":2,"id4":2,"deprecated":2,"easy":1,"system":1,"setup":2,"dev":1,"linux":1,"build":1,"unittest":1,"reporting":1,"an":1,"issue":1,"development":12,"psi_protocol_intro":10,"protocols":3,"introduction":1,"ecdh":4,"3p":1,"kkrt16":1,"differentially":1,"private":1,"unbalanced":1,"oprf":1,"based":1,"labeled":1,"rr22":1,"blazing":1,"fast":1,"reference":66,"api":1,"pir_config":8,"pir":15,"configuration":4,"table":4,"of":4,"contents":4,"messages":4,"apsireceiverconfig":1,"apsisenderconfig":1,"pirresultreport":1,"enums":4,"scalar":4,"value":4,"types":4,"psi_v2_config":21,"v2":3,"debugoptions":1,"ecdhconfig":1,"inputattr":1,"ioconfig":1,"kkrtconfig":1,"outputattr":1,"protocolconfig":1,"psiconfig":2,"recoveryconfig":1,"rr22config":1,"ubpsiconfig":2,"iotype":1,"protocol":1,"advancedjointype":1,"role":1,"mode":2,"psi_config":13,"v1":2,"bucketpsiconfig":1,"dppsiparams":1,"inputparams":1,"memorypsiconfig":1,"outputparams":1,"psiresultreport":1,"curvetype":1,"psitype":1,"launch_config":21,"launch":1,"launchconfig":1,"allocatedports":1,"clusterdefine":1,"party":1,"port":1,"service":1,"taskinputconfig":2,"sfpsiconfigmapentry":1,"contextdescproto":1,"partyproto":1,"retryoptionsproto":1,"ssloptionsproto":1,"user_guide":53,"user":1,"guide":1,"apsi_benchmark":12,"apsi":9,"benchmark":7,"generate":2,"data":5,"prepare":5,"config":9,"file":4,"sender":4,"json":3,"online":1,"receiver":3,"run":4,"with":2,"32c64g":1,"16c32g":1,"limit":2,"bandwidth":2,"and":5,"latency":2,"psi_v2":7,"quickstart":3,"more":1,"examples":2,"ub":1,"supported":2,"keyword":1,"before":1,"start":1,"csv":1,"params":1,"full":1,"bucketized":1,"faq":4,"frequently":1,"asked":1,"questions":1,"issues":2,"feature":1,"psi_v2_benchmark":9,"kkrt":1,"security":1,"tips":1},"title":{"0":13,"1":1,"2":3,"3":4,"4":9,"5":1,"welcome":1,"to":1,"secretflow":2,"psi":86,"library":1,"s":1,"documentation":1,"release":25,"notes":20,"v0":18,"0beta":4,"2beta":1,"dev240801":1,"dev240731":1,"dev240521":1,"dev240517":1,"dev240514":1,"dev240401":1,"dev240329":1,"dev240304":1,"dev240222":1,"dev240219":1,"dev240123":1,"dev231228":1,"dev231221":1,"getting":18,"started":18,"installation":1,"c":1,"binaries":1,"docker":7,"building":6,"from":5,"source":5,"python":1,"packages":1,"spu":1,"applications":1,"scql":1,"secretpad":1,"deprecated":11,"easy":1,"system":1,"setup":1,"dev":1,"linux":1,"build":1,"unittest":1,"reporting":1,"an":1,"issue":1,"development":1,"protocols":12,"introduction":10,"ecdh":4,"3p":1,"kkrt16":1,"differentially":1,"private":1,"unbalanced":1,"oprf":1,"based":1,"labeled":1,"rr22":1,"blazing":1,"fast":1,"reference":2,"api":1,"pir":21,"configuration":63,"table":4,"of":4,"contents":4,"messages":6,"apsireceiverconfig":1,"apsisenderconfig":1,"pirresultreport":1,"enums":6,"scalar":4,"value":4,"types":4,"v2":37,"debugoptions":1,"ecdhconfig":1,"inputattr":1,"ioconfig":1,"kkrtconfig":1,"outputattr":1,"protocolconfig":1,"psiconfig":2,"recoveryconfig":1,"rr22config":1,"ubpsiconfig":2,"iotype":1,"protocol":1,"advancedjointype":1,"role":1,"mode":2,"v1":23,"bucketpsiconfig":1,"dppsiparams":1,"inputparams":1,"memorypsiconfig":1,"outputparams":1,"psiresultreport":1,"curvetype":1,"psitype":1,"launch":21,"launchconfig":1,"allocatedports":1,"clusterdefine":1,"party":1,"port":1,"service":1,"taskinputconfig":2,"sfpsiconfigmapentry":1,"contextdescproto":1,"partyproto":1,"retryoptionsproto":1,"ssloptionsproto":1,"user":1,"guide":1,"apsi":15,"benchmark":26,"generate":2,"data":5,"prepare":5,"config":9,"file":4,"apsi_sender_setup":1,"json":3,"apsi_sender_online":1,"apsi_receiver":2,"run":4,"with":2,"apsi_sender":1,"32c64g":1,"16c32g":1,"limit":2,"bandwidth":2,"and":5,"latency":2,"quickstart":28,"more":1,"examples":2,"ub":1,"supported":2,"keyword":1,"before":1,"start":1,"csv":1,"params":1,"full":1,"bucketized":1,"frequently":3,"asked":3,"questions":3,"faq":3,"issues":2,"feature":1,"sender":1,"receiver":1,"kkrt":1,"security":1,"tips":1},"content":{"0":123,"1":579,"2":257,"3":81,"4":29,"5":18,"6":4,"7":12,"8":12,"9":6,"10":20,"11":10,"12":2,"13":4,"14":2,"15":6,"16":10,"18":4,"20":25,"21":15,"22":17,"23":8,"24":32,"25":2,"26":2,"28":8,"29":2,"30":10,"31":2,"32":2,"35":2,"40":4,"42":4,"44":2,"46":2,"48":12,"50":5,"56":23,"65":2,"66":2,"81":2,"85":2,"86":2,"87":2,"100":4,"128":1,"134":14,"139":2,"144":5,"163":2,"170":2,"173":2,"182":3,"192":2,"202":12,"203":2,"208":2,"212":9,"221":2,"222":12,"224":8,"232":9,"291":4,"308":4,"320":12,"330":2,"354":2,"415":2,"418":2,"435":2,"512":5,"565":5,"666":2,"691":2,"702":2,"799":12,"818":2,"829":2,"896":2,"912":2,"1024":5,"1055":2,"1072":2,"1074":2,"1091":2,"1109":5,"1145":6,"1223":2,"1237":2,"1243":2,"1255":2,"1672":2,"1986":19,"1999":2,"2006":4,"2010":7,"2011":2,"2012":7,"2015":7,"2016":23,"2017":4,"2018":12,"2019":12,"2020":2,"2021":8,"2022":14,"2048":2,"2208":9,"2242":6,"3958":2,"4096":10,"6280":2,"8192":3,"10022":5,"10957":2,"13249":9,"14888":10,"25519":2,"32918":10,"65535":5,"3133956":3,"3134061":3,"3243734":3,"3243836":3,"this":50,"is":184,"the":625,"repo":6,"of":338,"private":51,"set":159,"intersection":89,"psi":505,"and":334,"information":10,"retrieval":1,"pir":64,"from":52,"secretflow":357,"team":1,"which":10,"provides":15,"functionality":2,"for":334,"scql":22,"secretpad":10,"formerly":1,"part":12,"spu":97,"note":12,"feature":30,"prefix":12,"new":11,"features":4,"bugfix":28,"bug":3,"fixes":3,"api":60,"changes":3,"improvement":35,"implementation":9,"delete":4,"skip_duplicates_check":5,"in":325,"psi_v2":20,"config":100,"legacy":2,"ub":6,"function":14,"output":66,"csv":80,"null_rep":2,"can":33,"be":98,"specified":23,"join":43,"done":4,"with":89,"one":28,"receiver":173,"protocol":98,"rr22":32,"enhancement":2,"drop":2,"ic_mode":4,"experimental":29,"params":21,"ecdh":80,"batch_size":6,"apsi":91,"group":18,"mode":38,"tmp":28,"dir":2,"cleanup":2,"refactor":2,"reader":4,"remove":6,"bc22":4,"add":19,"entrypoint":4,"docker":15,"file":172,"allow":7,"passing":4,"json":58,"directly":5,"to":447,"main":131,"fix":24,"ic":4,"sealpir":11,"upgrade":10,"yacl":17,"5b1":2,"download":4,"uri":4,"xz":4,"macos":2,"arm":4,"build":8,"port":48,"again":2,"bucketized":9,"5b0":2,"4b3":2,"uuid":7,"system":7,"temp":2,"folder":18,"use":119,"arrow":7,"typo":2,"check":57,"expose":6,"runlegacypsi":2,"logger":3,"debug":14,"purposes":2,"modify":6,"structure":5,"rfc9380":7,"elligator2":7,"hash_to_curve":7,"malicious":17,"vole":15,"v2":76,"buffer":6,"size":33,"sort":9,"cmd":2,"simpleshuffledbatchprovider":2,"flakiness":2,"psi_test":2,"race":4,"condition":4,"rename":4,"check_duplicates":2,"sort_output":2,"disable_alignment":13,"support":31,"left":15,"right":15,"full":9,"behavior":2,"difference":14,"modified":2,"skip":2,"duplicate":12,"key":55,"if":190,"recovery":19,"checkpoint":8,"exists":2,"syncwait":2,"failure":9,"inner":4,"migrate":2,"kkrt":28,"welcome":1,"library":15,"there":2,"are":72,"multiple":9,"methods":1,"c":149,"binaries":2,"you":64,"could":16,"binary":11,"or":42,"release":17,"image":6,"ci":6,"latest":8,"aarch64":3,"python":20,"packages":2,"warps":10,"as":77,"bindings":5,"call":5,"further":11,"user":6,"friendly":7,"apis":20,"applications":14,"integrates":5,"do":12,"operations":5,"component":18,"we":51,"have":32,"a":464,"developing":1,"recommend":2,"using":39,"it":52,"v1":25,"deprecated":37,"apissupported":1,"protocolsecdh":3,"ecdh_oprf_ub":8,"dp_psi":5,"rr22ecdh":3,"ecdh_oprf_ubcsv":2,"parsersupport":3,"subset":5,"files":34,"apache":5,"all":60,"legal":5,"after":12,"failureunsupportedsupportedsupport":2,"duplicated":5,"keysunsupportedsupportedrelease":2,"dockernot":3,"providedprovidedpython":2,"bindingwith":3,"spuwith":3,"supported":57,"protocols":34,"parser":2,"failureunsupportedsupported":1,"unsupported":4,"keysunsupportedsupported":1,"keys":35,"providedprovided":1,"not":98,"provided":15,"binding":2,"please":44,"official":4,"at":58,"dockerhub":8,"also":9,"mirrors":4,"alibaba":4,"cloud":4,"registry":7,"cn":97,"hangzhou":7,"cr":7,"aliyuncs":7,"com":50,"anolis8":7,"see":3,"building":4,"installation":4,"guidelines":2,"https":178,"www":102,"org":147,"en":90,"docs":90,"reference":25,"py_api":2,"page":7,"source":73,"psi_df":8,"psi_csv":8,"psi_join_df":8,"psi_join_csv":8,"deleted":21,"pir_setup":8,"pir_query":8,"pir_memory_query":8,"configuration":44,"v0":8,"0b0":13,"pir_config":8,"comp_list":4,"quickstart":14,"tutorial":2,"featured":5,"operators":17,"handbook":4,"easy":3,"compile":2,"need":9,"install":1,"gcc":2,"cmake":2,"ninja":2,"nasm":2,"bazel":9,"golang":2,"xxd":2,"lld":2,"perl":2,"version":5,"bazeliskrc":2,"bazelisk":1,"instead":22,"testing":4,"create":1,"an":21,"issue":1,"github":45,"issues":3,"will":45,"look":2,"into":51,"get":49,"back":4,"soon":1,"advanced":3,"topics":1,"related":4,"principles":2,"designs":1,"benchmark":19,"more":49,"introduction":6,"implements":1,"following":7,"semi":30,"honest":30,"based":35,"two":52,"party":133,"hfh99":5,"three":3,"ot":12,"kkrt16":10,"differentially":15,"dp":35,"unbalanced":44,"rs21":5,"dh":4,"due":3,"huberman":3,"franklin":3,"hogg":3,"but":4,"roots":1,"far":1,"meadows":8,"mea86":7,"that":25,"requires":2,"exponentiations":1,"diffie":10,"hellman":10,"proportional":1,"number":65,"items":36,"sets":11,"general":1,"rule":1,"significantly":1,"faster":3,"require":2,"communication":27,"than":53,"some":4,"scenarios":1,"cost":8,"overwhelmingly":1,"important":1,"computation":17,"on":105,"decisional":1,"assumption":3,"agree":6,"g":77,"generator":2,"random":6,"b":509,"cannot":2,"distinguish":2,"ga":32,"gb":32,"gab":16,"ab":196,"gc":16,"several":2,"candidate":1,"groups":6,"widely":2,"used":46,"such":7,"subgroups":1,"multiplication":1,"finite":1,"field":83,"elliptic":24,"curve":34,"practice":1,"carefully":2,"chosen":1,"curves":2,"like":4,"curve25519":23,"ber06":9,"offer":2,"good":8,"balance":1,"between":22,"security":20,"performance":12,"each":87,"element":30,"xix_ixi":10,"its":43,"alice":78,"applies":12,"hash":29,"then":34,"exponentiates":16,"alpha":156,"thus":8,"computing":27,"h":667,"xi":418,"x_i":184,"alphah":12,"sends":55,"i":1326,"1n1":204,"_":145,"n_1":84,"bob":69,"received":9,"previous":8,"step":8,"beta":306,"yiy_iyi":10,"yi":286,"y_i":126,"betah":12,"1n2":88,"n_2":36,"compares":12,"gets":46,"xix_i":6,"x":370,"n1":45,"n":103,"yiy_i":6,"y":403,"n2":20,"module":1,"ec":5,"groupreferencecryptolibcurve25519":1,"libsoidum":6,"ipp":17,"crypto":17,"intel":24,"cpu":22,"avx":5,"ifma":5,"secp256k1":8,"sec2":16,"opensslsm2gbt":2,"2016openssliso":2,"iec":10,"3fourq":2,"fourq":17,"fourqlib":6,"groupreferencecryptolib":2,"cryptolib":2,"openssl":7,"sm2gbt":1,"2016openssl":1,"sm2":7,"gbt":7,"iso":8,"implement":3,"our":7,"own":15,"has":24,"known":1,"leakage":1,"your":18,"risk":2,"assume":3,"charlie":11,"want":4,"perform":3,"3p":1,"addition":1,"final":4,"leaks":1,"s":199,"data":59,"beginning":1,"input":75,"both":14,"shuffled":7,"necessary":2,"shuffle":1,"th":8,"calculates":14,"shuffles":2,"them":4,"randomly":6,"cap":24,"denote":3,"zi":64,"z_i":32,"gamma":48,"finally":3,"z":10,"extension":7,"bark":6,"oprf":65,"cuckoohash":11,"first":27,"requiring":1,"only":59,"minute":1,"case":2,"larger":18,"long":51,"strings":1,"bits":6,"way":4,"stash":1,"less":1,"proposed":2,"psz18":2,"sender":208,"h1":402,"h2":218,"h3":54,"m":147,"h_1":167,"h_2":106,"h_3":24,"rightarrow":8,"inserts":8,"bin":33,"run":25,"fs":48,"ki":78,"f_":24,"k_i":24,"binibin_ibini":4,"values":38,"oprfs":4,"obtains":2,"f":38,"k":106,"binibin_i":3,"bini":3,"ni":2,"bin_i":1,"bi":1,"bases":6,"results":17,"currently":6,"under":8,"test":1,"why":1,"scheme":3,"protects":1,"inputs":2,"privacy":16,"ideal":1,"circuit":4,"typical":1,"variant":1,"allows":1,"secure":10,"e":20,"mpc":2,"he":1,"result":57,"without":4,"revealing":2,"psty19":2,"however":4,"those":1,"expensive":1,"terms":1,"efficiency":1,"utilizing":1,"up":2,"sampling":7,"sub":8,"mechanism":2,"calibrated":1,"noises":1,"concise":1,"value":74,"listed":1,"below":1,"hashed":2,"xxx":4,"yyy":3,"xx":3,"yy":3,"encrypt":25,"process":2,"calculating":1,"xay":6,"ay":3,"xa":23,"encrypts":6,"their":4,"dataset":17,"xax":21,"axa":12,"yby":14,"byb":8,"separately":2,"performs":8,"subsampling":2,"by_":28,"by":46,"meantime":2,"receiving":4,"re":4,"bbb":4,"xabx":7,"xab":57,"samples":8,"permutation":2,"pi":32,"permute":2,"permuted":2,"aby_":7,"abi_":14,"y_":13,"subsamples":2,"finds":2,"corresponding":12,"index":15,"adds":2,"non":6,"reveals":2,"yb":10,"bb":3,"i_":2,"end":3,"ensures":1,"learns":1,"noised":1,"ability":1,"pointing":1,"out":1,"whether":23,"actual":1,"invocations":1,"inevitably":1,"weaken":1,"protection":3,"therefore":2,"strongly":1,"suggest":1,"should":33,"prevent":1,"executions":1,"same":17,"r":267,"xeon":16,"platinum2":3,"24dp":1,"psi9":3,"806s20":3,"134s42":3,"067s86":3,"580s170":3,"359s":5,"platinum":7,"806s":2,"134s":2,"067s":2,"580s":2,"default":84,"strength":1,"epsilon":17,"details":7,"refer":2,"original":3,"paper":1,"ra18":2,"section":1,"introduces":3,"basic":4,"bbcd":2,"relaxes":1,"jl10":2,"against":1,"adversaries":3,"phases":1,"preprocessing":2,"phase":29,"online":28,"authors":1,"introduced":2,"many":16,"optimizations":3,"push":1,"much":12,"possible":1,"oblivious":19,"pseudorandom":9,"client":18,"server":29,"prf":17,"draft":5,"irtf":5,"cfrg":5,"voprf":6,"specifies":1,"poprf":1,"built":1,"upon":6,"prime":8,"order":10,"offline":35,"blind":4,"rir_iri":12,"ri":286,"r_i":99,"rih_1":9,"receives":12,"unblinds":4,"computes":18,"rir_i":6,"somewhat":3,"homomorphic":9,"encryption":10,"she":1,"efficient":53,"labeled":17,"setting":1,"where":8,"other":15,"cmgd":4,"improvements":2,"clr17":2,"chlr18":2,"resulting":1,"improved":6,"running":11,"time":25,"complexity":1,"microsoft":19,"asymmetric":3,"sizes":1,"uses":8,"bfv":1,"fv12":2,"implemented":1,"seal":12,"wraps":1,"keyword":4,"setup":6,"choose":7,"itemparams":7,"tableparams":6,"queryparams":6,"sealparams":6,"updates":4,"si":148,"s_i":61,"hashing":14,"ss_i":9,"ssi":6,"h0":20,"mathcal":84,"h_0":10,"splitting":5,"splits":4,"bundles":12,"denoted":4,"coeffcients":5,"matching":30,"polynomial":45,"bundle":12,"j":83,"over":19,"ft":32,"mathbb":24,"_tft":16,"label":30,"labels":16,"associated":6,"interpolates":6,"rr_i":9,"rri":6,"cuckoo":13,"rrr":8,"cuckootable":12,"bins":6,"functions":10,"packing":7,"packs":6,"fhe":13,"plaintext":6,"windowsing":7,"wise":6,"query":25,"powers":15,"ciphertexts":22,"homomorphically":13,"evaluate":5,"collection":4,"evaluates":8,"desired":4,"evaluated":4,"decrypt":5,"decrypts":4,"needed":19,"outputs":6,"_t":8,"t":24,"rr":3,"parameters":41,"paramsfunction1itemparamsfelts_per_itemhow":1,"batching":5,"slots":5,"represent":6,"item":15,"item_bit_size":10,"plain_modulus_bits":5,"stats_params":5,"log":14,"ns":5,"nr":15,"2tableparamshash_func_countcuckoo":2,"count":20,"hash_func_count":12,"means":10,"essentially":5,"disabling":5,"hashingtable_sizepositive":2,"floor":5,"poly_modulus_degree":7,"felts_per_item":7,"max_items_per_binhow":3,"fit":25,"row":17,"bundles3queryparamsps_low_degreeany":2,"max_items_per_bin":7,"zero":7,"paterson":10,"stockmeyer":10,"algorithm":10,"ps_low_degree":7,"algorithmquery_powershow":2,"ref":6,"challis":5,"robinson":5,"determine":10,"powers4sealparamspoly_modulus_degree2048":2,"8192plain_modulus":2,"_bits":5,"coeff_modulus_bits":5,"paramsfunction":2,"1itemparamsfelts_per_itemhow":1,"1itemparams":1,"felts_per_itemhow":1,"how":10,"2tableparams":1,"hash_func_countcuckoo":1,"table_sizepositive":1,"table_size":2,"positive":2,"3queryparams":1,"ps_low_degreeany":1,"any":16,"query_powershow":1,"query_powers":2,"4sealparams":1,"poly_modulus_degree2048":1,"plain_modulus":3,"okvs":5,"present":2,"significant":1,"along":1,"techniquesfor":1,"reducing":1,"overhead":2,"rs":1,"oblivous":1,"stores":3,"consists":1,"algorithms":1,"encode":43,"decode":2,"takes":2,"list":8,"v":4,"pairs":1,"returns":1,"abstract":1,"gives":1,"correlation":5,"generators":5,"pcgs":1,"generation":1,"transfer":8,"vector":7,"linear":1,"evaluations":1,"sublinear":1,"concretely":1,"computational":1,"pcg":1,"makes":1,"so":8,"called":5,"lpn":6,"errorcorrecting":1,"code":6,"coeds":1,"now":2,"crr21":2,"silver":4,"codes":29,"ldpc":3,"bcgi":2,"expand":5,"accumulate":3,"most":1,"recommended":2,"flaw":1,"leftarrow":8,"kappar":4,"p":82,"l":56,"vec":144,"mathrm":8,"hn":48,"delta":32,"defines":2,"cdot":32,"yx":11,"kappa":4,"o":1,"d":13,"boyle":10,"couteau":12,"gilboa":10,"ishai":10,"compressing":2,"ole":6,"acm":40,"ccs":18,"pages":14,"press":14,"october":4,"kohl":8,"rindal":16,"scholl":8,"round":4,"silent":16,"interactive":4,"november":6,"daniel":4,"bernstein":7,"speed":7,"records":5,"public":2,"cryptography":20,"pkc":2,"springer":8,"verlag":4,"lncs":6,"cited":2,"elette":2,"geoffroy":4,"niv":2,"yuval":2,"lisa":2,"nicolas":2,"resch":2,"peter":10,"correlated":3,"pseudorandomness":2,"crypto2022":2,"baldi":2,"baronio":2,"cristofaro":2,"gasti":2,"tsudik":2,"countering":2,"gattaca":2,"fully":6,"sequenced":2,"human":2,"genomes":2,"conference":6,"computer":4,"communications":4,"pp":15,"ring":2,"chen":4,"huang":2,"laine":6,"lie":2,"mannan":2,"backes":2,"wang":4,"eds":6,"oct":4,"doi":11,"fast":25,"thuraisingham":2,"evans":2,"malkin":2,"xu":2,"nov":2,"kelong":2,"cong":2,"radames":2,"cruz":2,"moreno":2,"mariana":2,"botelho":2,"da":2,"gama":2,"wei":2,"dai":2,"ilia":2,"iliashenko":2,"kim":2,"michael":2,"rosenberg":2,"reduced":2,"proceedings":2,"sigsac":2,"securitynovember":2,"srinivasan":6,"raghuraman":6,"hardness":2,"decoding":2,"structured":2,"crypto2021":2,"arxiv":9,"pdf":48,"costello":2,"longa":2,"four":23,"dimensional":7,"decompositions":7,"q":7,"mersenne":7,"cryptology":4,"eprint":34,"archive":7,"report":6,"iacr":30,"fan":2,"vercauteren":2,"practical":2,"http":35,"bernardo":2,"matt":2,"tad":2,"enhancing":2,"trust":2,"electronic":4,"communities":2,"commerce":2,"jarecki":2,"liu":2,"scn":2,"vol":4,"kolesnikov":2,"kumaresan":2,"rosulek":2,"trieu":2,"batched":12,"cryptographic":7,"matchmaking":7,"absence":7,"continuously":7,"available":7,"third":9,"ieee":11,"symposium":9,"april":2,"pinkas":2,"schneider":2,"zohner":2,"scalable":4,"transactions":2,"tops":2,"resende":2,"aranha":2,"meiklejohn":2,"sako":2,"fc2018":2,"heidelberg":2,"feb":2,"mar":2,"blazing":9,"subfield":2,"titouan":2,"tanguy":2,"convolute":2,"crypto2023":2,"phillipp":2,"schoppmann":4,"eurocrypt2021":2,"sep":2,"research":2,"redmond":2,"wa":2,"standards":7,"sec":7,"secg":9,"gascón":2,"reichert":2,"raykova":2,"distributed":2,"constructions":2,"weng":2,"yang":2,"katz":2,"wolverine":2,"knowledge":2,"proofs":2,"boolean":2,"arithmetic":2,"circuits":2,"sp":7,"ietf":3,"id":21,"html":3,"covers":1,"buffers":1,"message":2,"launch":16,"messages":14,"apsireceiverconfig":9,"apsisenderconfig":9,"pirresultreport":5,"scalar":12,"types":13,"fieldtypedescriptionthreads":2,"uint32number":9,"threads":18,"uselog_file":4,"stringlog":6,"path":62,"booldo":9,"write":10,"console":10,"log_level":10,"stringone":6,"info":14,"warning":11,"error":21,"off":17,"query_file":5,"stringpath":15,"text":49,"containing":10,"per":6,"line":9,"header":5,"output_file":5,"written":5,"params_file":16,"describing":15,"ask":7,"additional":10,"experimental_enable_bucketize":15,"boolmust":3,"experimental_bucket_cnt":11,"uint32must":3,"query_batch_size":5,"uint32the":9,"batch":5,"fieldtypedescription":64,"type":132,"description":85,"uint32":87,"log_file":6,"string":179,"bool":85,"must":46,"junfeng":2,"provide":16,"identical":1,"cli":12,"tab":2,"readme":6,"ov":2,"command":6,"interface":3,"db_file":17,"pair":5,"serialized":15,"senderdb":30,"attempt":10,"load":6,"proceed":5,"read":10,"col":10,"processed":6,"while":7,"second":13,"cols":5,"ignored":8,"no":53,"headers":9,"allowed":9,"required":52,"points":5,"sdb_out_file":5,"stringsave":3,"given":6,"gen_db_only":5,"true":23,"experimental_bucket_folder":15,"turn":14,"nonce_byte_count":5,"bytes":45,"nonce":5,"compress":10,"boolwhether":18,"memory":31,"make":18,"footprint":5,"smaller":20,"increased":5,"save_db_only":5,"save":14,"db":29,"split":8,"buckets":18,"bucket":50,"would":12,"seperate":5,"valid":10,"small":7,"experimental_db_generating_process_num":5,"int32":30,"processes":5,"generating":6,"source_file":7,"stringsource":3,"genenerate":5,"experimental_bucket_group_cnt":5,"task":5,"fieldtypedescriptionmatch_cnt":1,"int64none":7,"match_cnt":4,"int64":20,"none":68,"proto":40,"typenotesc":12,"typejava":12,"typepython":12,"doubledoubledoublefloat":12,"floatfloatfloatfloat":8,"int32uses":8,"variable":48,"length":50,"encoding":64,"inefficient":16,"negative":48,"numbers":32,"likely":16,"sint32":8,"int32intint":24,"int64uses":8,"sint64":8,"int64longint":24,"uint32uses":8,"uint32intint":16,"uint64uses":8,"uint64longint":16,"sint32uses":8,"signed":16,"int":16,"these":28,"efficiently":16,"regular":16,"int32s":8,"sint64uses":8,"int64s":8,"fixed32always":8,"often":16,"greater":17,"fixed64always":8,"eight":16,"uint64":24,"sfixed32always":8,"sfixed64always":8,"boolboolbooleanboolean":8,"stringa":8,"always":14,"contain":18,"utf":8,"encoded":8,"bit":8,"ascii":8,"stringstringstr":8,"unicode":8,"bytesmay":8,"arbitrary":8,"sequence":8,"stringbytestringstr":8,"notes":8,"java":8,"double":16,"debugoptions":11,"ecdhconfig":8,"inputattr":11,"ioconfig":17,"kkrtconfig":8,"outputattr":11,"protocolconfig":8,"psiconfig":28,"recoveryconfig":12,"rr22config":8,"ubpsiconfig":21,"enums":4,"iotype":10,"advancedjointype":12,"role":33,"logging":5,"level":12,"supports":2,"trace":12,"spdlog_level_trace":2,"spdlog_level_debug":2,"spdlog_level_info":2,"warn":2,"spdlog_level_warn":2,"err":2,"spdlog_level_error":2,"critical":2,"spdlog_level_critical":2,"spdlog_level_off":2,"fieldtypedescriptionlogging_level":1,"stringnonetrace_path":2,"stringthe":15,"deafult":5,"logging_level":4,"stringnone":6,"trace_path":3,"configs":22,"fieldtypedescriptioncurve":1,"curvetypenonebatch_size":2,"uint64if":3,"curvetypenone":1,"curvetype":15,"fieldtypedescriptionkeys_unique":1,"boolkeys":3,"unique":10,"false":7,"keys_unique":4,"io":2,"fieldtypedescriptiontype":1,"iotypenonepath":2,"stringrequired":6,"iotypenone":1,"fieldtypedescriptionbucket_size":2,"uint64since":6,"total":10,"may":24,"splitted":10,"bucket_size":23,"indicate":10,"host":13,"limited":14,"otherwise":12,"since":7,"fieldtypedescriptioncsv_null_rep":1,"stringnull":3,"representation":5,"null":7,"csv_null_rep":4,"fieldtypedescriptionprotocol":1,"protocolnonerole":2,"rolenonebroadcast_result":2,"boolreveal":3,"ecdh_config":5,"ecdhconfigfor":3,"kkrt_config":5,"kkrtconfigfor":3,"rr22_config":5,"rr22configfor":3,"protocolnone":1,"rolenone":1,"broadcast_result":27,"reveal":2,"top":1,"psireport":1,"joins":1,"side":9,"fieldtypedescriptionprotocol_config":1,"protocolconfigconfigs":3,"input_config":10,"ioconfigconfigs":6,"output_config":10,"keysrepeated":6,"stringkeys":3,"debug_options":10,"debugoptionslogging":6,"boolit":6,"promised":12,"aligned":11,"recovery_config":5,"recoveryconfigconfigs":3,"advanced_join_type":20,"advancedjointypenoneleft_side":4,"rolerequired":9,"advanced_join_type_left_join":12,"advanced_join_type_right_join":12,"check_hash_digest":5,"boolcheck":3,"digest":5,"parties":35,"equal":5,"early":5,"stop":6,"input_attr":10,"inputattrinput":6,"attributes":20,"output_attr":10,"outputattroutput":6,"protocol_config":4,"repeated":36,"advancedjointypenone":2,"left_side":6,"failed":1,"unexpectedly":1,"network":9,"failures":1,"restart":2,"resume":2,"enabling":1,"extra":2,"disk":2,"ios":1,"space":1,"occupation":1,"fieldtypedescriptionenabled":1,"boolnonefolder":2,"stringstores":3,"status":5,"enabled":9,"boolnone":6,"low_comm_mode":5,"fieldtypedescriptionmode":1,"moderequired":3,"modes":5,"except":5,"mode_offline_gen_cache":22,"ioconfigconfig":3,"origin":10,"servers":22,"mode_offline":17,"mode_full":32,"clients":20,"mode_online":22,"stringjoin":3,"server_secret_key_path":5,"stringservers":3,"cache_path":5,"server_get_result":10,"boolnoneclient_get_result":2,"boolnonedisable_alignment":2,"client_get_result":8,"ioconfigrequired":3,"todo":1,"including":1,"oss":1,"sql":2,"etc":1,"namenumberdescriptionio_type_unspecified0noneio_type_file_csv1local":1,"namenumberdescription":14,"name":33,"io_type_unspecified0noneio_type_file_csv1local":1,"io_type_unspecified0none":1,"io_type_unspecified":5,"io_type_file_csv1local":1,"io_type_file_csv":3,"local":12,"namenumberdescriptionprotocol_unspecified0noneprotocol_ecdh1":1,"oakland":5,"ca":17,"usa":5,"protocol_kkrt2efficient":3,"pdfprotocol_rr223blazing":2,"protocol_unspecified0noneprotocol_ecdh1":1,"protocol_unspecified0none":1,"protocol_unspecified":2,"protocol_ecdh1":1,"protocol_ecdh":2,"protocol_kkrt":2,"protocol_rr223blazing":1,"protocol_rr22":2,"selected":4,"duplicates_check":2,"skipped":2,"revealed":4,"namenumberdescriptionadvanced_join_type_unspecified0noneadvanced_join_type_inner_join1noneadvanced_join_type_left_join2noneadvanced_join_type_right_join3noneadvanced_join_type_full_join4noneadvanced_join_type_difference5none":1,"advanced_join_type_unspecified0noneadvanced_join_type_inner_join1noneadvanced_join_type_left_join2noneadvanced_join_type_right_join3noneadvanced_join_type_full_join4noneadvanced_join_type_difference5none":1,"advanced_join_type_unspecified0none":1,"advanced_join_type_unspecified":5,"advanced_join_type_inner_join1none":1,"advanced_join_type_inner_join":3,"advanced_join_type_left_join2none":1,"advanced_join_type_right_join3none":1,"advanced_join_type_full_join4none":1,"advanced_join_type_full_join":2,"advanced_join_type_difference5none":1,"advanced_join_type_difference":2,"namenumberdescriptionrole_unspecified0nonerole_receiver1receiver":1,"2p":32,"symmetric":10,"receivers":10,"receive":10,"role_sender2sender":3,"senders":9,"participants":5,"apart":5,"role_server3server":3,"role_client4server":3,"role_unspecified0nonerole_receiver1receiver":1,"role_unspecified0none":1,"role_unspecified":2,"role_receiver1receiver":1,"role_receiver":2,"role_sender":2,"role_server":2,"role_client":2,"namenumberdescriptionmode_unspecified0nonemode_offline_gen_cache1servers":1,"generate":13,"cache":20,"stage":29,"mode_offline_transfer_cache2servers":3,"send":12,"mode_offline3run":3,"mode_online4run":3,"mode_full5run":3,"stages":5,"mode_unspecified0nonemode_offline_gen_cache1servers":1,"mode_unspecified0none":1,"mode_unspecified":2,"mode_offline_gen_cache1servers":1,"mode_offline_transfer_cache":2,"bucketpsiconfig":10,"dppsiparams":11,"inputparams":8,"memorypsiconfig":5,"outputparams":8,"psiresultreport":5,"psitype":11,"fieldtypedescriptionpsi_type":2,"psitypethe":6,"receiver_rank":10,"uint32specified":6,"rank":10,"broadcast":10,"input_params":5,"inputparamsthe":3,"output_params":5,"outputparamsthe":3,"curve_type":10,"curvetypeoptional":6,"when":21,"uint32optional":3,"preprocess_path":5,"stringoptional":6,"preprocess":5,"ecdh_secret_key_path":5,"secret":5,"ecdh_oprf":5,"256bit":5,"32bytes":5,"dppsi_params":10,"dppsiparamsoptional":6,"psi_type":8,"optional":29,"fieldtypedescriptionbob_sub_sampling":1,"doublebob":3,"bernoulli_distribution":5,"probability":5,"doubledp":3,"bob_sub_sampling":4,"fieldtypedescriptionpath":2,"select_fieldsrepeated":3,"select":17,"fields":16,"precheck":5,"select_fields":2,"need_sort":5,"fieldtypedescriptionoriginal_count":1,"int64the":6,"intersection_count":5,"self":17,"original_key_count":5,"int64noneintersection_key_count":2,"original_count":4,"intersection_key_count":3,"namenumberdescriptioncurve_invalid_type0nonecurve_255191daniel":1,"recordscurve_fourq2fourq":2,"primecurve_sm23sm2":2,"cryptosystem":5,"ecc":6,"published":10,"chinese":5,"national":5,"standard":5,"3curve_secp256k14parameters":2,"defined":5,"pdfcurve_25519_elligator25curve25519":2,"curve_invalid_type0nonecurve_255191daniel":1,"curve_invalid_type0none":1,"curve_invalid_type":2,"curve_255191daniel":1,"curve_25519":2,"curve_fourq2fourq":1,"curve_fourq":2,"curve_sm23sm2":1,"curve_sm2":2,"curve_secp256k14parameters":1,"curve_secp256k1":2,"curve_25519_elligator25curve25519":1,"curve_25519_elligator2":2,"namenumberdescriptioninvalid_psi_type0noneecdh_psi_2pc1noticed":1,"longer":48,"ddh":5,"psikkrt_psi_2pc2noticed":2,"pdfecdh_psi_3pc4multi":2,"say":5,"notice":15,"cardinarlity":5,"leak":12,"ecdh_psi_npc5iterative":3,"leakkkrt_psi_npc6iterative":2,"leakecdh_oprf_ub_psi_2pc_gen_cache7noticed":2,"ecdh_oprf_ub_psi_2pc_transfer_cache8noticed":3,"ecdh_oprf_ub_psi_2pc_offline9noticed":3,"ecdh_oprf_ub_psi_2pc_online10noticed":3,"ecdh_oprf_ub_psi_2pc_shuffle_online11noticed":3,"shuffling":5,"large":6,"resultdp_psi_2pc12differentially":2,"rr22_fast_psi_2pc13noticed":3,"low":5,"moderr22_lowcomm_psi_2pc14nonerr22_malicious_psi_2pc15none":2,"invalid_psi_type0noneecdh_psi_2pc1noticed":1,"invalid_psi_type0none":1,"invalid_psi_type":2,"ecdh_psi_2pc1noticed":1,"ecdh_psi_2pc":2,"noticed":24,"kkrt_psi_2pc2noticed":1,"kkrt_psi_2pc":2,"ecdh_psi_3pc4multi":1,"ecdh_psi_3pc":2,"multi":5,"ecdh_psi_npc":2,"iterative":4,"kkrt_psi_npc6iterative":1,"kkrt_psi_npc":2,"ecdh_oprf_ub_psi_2pc_gen_cache7noticed":1,"ecdh_oprf_ub_psi_2pc_gen_cache":2,"ecdh_oprf_ub_psi_2pc_transfer_cache":2,"ecdh_oprf_ub_psi_2pc_offline":2,"ecdh_oprf_ub_psi_2pc_online":2,"ecdh_oprf_ub_psi_2pc_shuffle_online":2,"dp_psi_2pc12differentially":1,"dp_psi_2pc":2,"rr22_fast_psi_2pc":2,"rr22_lowcomm_psi_2pc14none":1,"rr22_lowcomm_psi_2pc":2,"rr22_malicious_psi_2pc15none":1,"rr22_malicious_psi_2pc":2,"launchconfig":13,"allocatedports":6,"clusterdefine":6,"service":11,"taskinputconfig":16,"sfpsiconfigmapentry":8,"contextdescproto":12,"partyproto":8,"retryoptionsproto":9,"ssloptionsproto":9,"fieldtypedescriptionlink_config":1,"link":11,"contextdescprotoconfigs":3,"self_link_party":5,"stringwith":3,"link_config":9,"oneof":35,"runtime_config":27,"legacy_psi_config":7,"bucketpsiconfigplease":3,"psi_config":5,"psiconfigplease":3,"ub_psi_config":5,"ubpsiconfigplease":3,"apsi_sender_config":5,"apsisenderconfigplease":3,"apsi_receiver_config":5,"apsireceiverconfignone":3,"represents":11,"allocated":9,"ports":8,"pod":17,"fieldtypedescriptionportsrepeated":1,"portallocated":3,"portsrepeated":2,"fieldtypedescriptionpartiesrepeated":1,"partybasic":3,"self_party_idx":5,"int32index":6,"self_endpoint_idx":5,"endpoint":7,"partiesrepeated":3,"fieldtypedescriptionname":2,"stringname":6,"stringrole":3,"carried":5,"examples":44,"servicesrepeated":3,"servicelist":3,"services":7,"exposed":5,"stringeach":3,"named":7,"int32number":3,"scope":7,"stringscope":3,"cluster":5,"domain":5,"defaults":10,"optionalprotocol":2,"stringprotocol":3,"grpc":5,"address":1,"fieldtypedescriptionport_name":1,"endpointsrepeated":3,"stringendpoint":3,"port_name":4,"endpoints":2,"fieldtypedescriptionsf_psi_config_mapmap":1,"sfpsiconfigmapentrynone":3,"sf_psi_config_mapmap":2,"sf_psi_config_map":2,"map":3,"fieldtypedescriptionkey":1,"stringnonevalue":2,"launchconfignone":3,"fieldtypedescriptionid":2,"optionalpartiesrepeated":2,"partyprotoparty":3,"describes":5,"world":5,"connect_retry_times":5,"uint32connect":6,"mesh":10,"retry":41,"connect_retry_interval_ms":5,"interval":15,"recv_timeout_ms":7,"uint64recv":3,"timeout":5,"milliseconds":5,"connect":4,"recv":7,"max":5,"wait":4,"event":2,"example":5,"begin":2,"timeline":2,"busy":2,"work":2,"above":5,"begins":1,"specific":7,"still":2,"doing":1,"job":1,"exceed":1,"wait_timeout_ms":1,"raise":1,"exception":2,"although":1,"starting":1,"others":1,"very":2,"changed":1,"accordingly":1,"http_max_payload_size":1,"payload":1,"single":7,"request":2,"limit":1,"unpacked":1,"chunks":1,"reassembled":1,"does":3,"affect":1,"wisely":1,"http_timeout_ms":1,"timetout":1,"throttle_window_size":1,"throttle":1,"window":1,"channel":6,"flying":1,"sendasync":2,"block":1,"until":1,"throw":1,"brpc_channel_protocol":1,"brpc":7,"brpc_channel_connection_type":1,"connection":1,"enable_ssl":6,"ssl":6,"options":4,"client_ssl_opts":4,"server_ssl_opts":4,"chunk_parallel_send_size":2,"chunk":1,"parallel":1,"chunked":1,"paralleled":1,"retry_opts":1,"stringnonehost":2,"fieldtypedescriptionmax_retry":1,"uint32max":3,"3retry_interval_ms":2,"uint32time":3,"retries":20,"secondretry_interval_incr_ms":2,"amount":6,"increase":5,"2smax_retry_interval_ms":2,"maximum":10,"10serror_codesrepeated":2,"uint32retry":6,"empty":15,"codeshttp_codesrepeated":2,"codesaggressive_retry":2,"aggressive":5,"made":5,"max_retry":4,"retry_interval_ms":3,"retry_interval_incr_ms":3,"2s":3,"max_retry_interval_ms":3,"10s":3,"error_codesrepeated":1,"error_codes":2,"http_codesrepeated":1,"http_codes":2,"aggressive_retry":3,"fieldtypedescriptioncertificate_path":1,"stringcertificate":3,"pathprivate_key_path":2,"stringprivate":3,"pathverify_depth":2,"int32set":3,"depth":5,"certificate":14,"chain":5,"verification":8,"verificationca_file_path":2,"stringset":3,"trusted":5,"verify":5,"peer":7,"certificate_path":7,"private_key_path":6,"verify_depth":6,"ca_file_path":6,"working":1,"refactoring":1,"frequently":4,"asked":4,"questions":5,"faq":4,"document":2,"successful":2,"find":4,"executable":2,"directory":2,"combined":2,"exampple":1,"measure":5,"different":12,"scales":5,"dummy":2,"next":1,"copy":2,"parameter":3,"achieve":2,"optimal":3,"suitable":2,"scale":3,"here":13,"1m":2,"specify":3,"machine":2,"configurations":3,"containers":1,"act":2,"respectively":2,"apsi_sender":1,"32c64g":1,"measured":2,"described":1,"record":1,"taken":1,"during":1,"completed":1,"additionally":2,"settings":4,"presented":1,"because":1,"quite":1,"complex":1,"lengths":1,"finding":1,"intended":1,"rough":1,"wish":2,"follow":1,"steps":1,"outlined":1,"reproduce":1,"optimize":1,"understanding":1,"inquiries":1,"feel":1,"free":1,"contact":1,"us":1,"ms":3,"millisecond":2,"fixed":1,"conditions":1,"highly":1,"datasets":1,"billion":1,"entries":1,"consideration":1,"displayed":1,"prepare":1,"namelocationdescriptionreceiver":1,"configconfig":6,"receiver_input":10,"configinput":6,"sure":13,"contains":11,"id0":10,"id1":10,"sender_input":10,"namelocationdescription":2,"location":2,"terminal":4,"simultaneously":2,"demo":2,"tree":35,"ecdh_server_offline":8,"ecdh_server_online":8,"ecdh_client_offline":8,"ecdh_client_online":8,"quick":2,"start":2,"retrival":1,"protocolstypeserver":3,"numbersealpir":1,"later":5,"pirsingle":6,"serverapsikeyword":2,"apsikeyword":1,"moment":2,"development":1,"simple":1,"wrapper":1,"famous":1,"going":1,"discuss":1,"content":1,"supposed":1,"aware":1,"exact":2,"arguments":2,"well":2,"brought":1,"layer":2,"integration":2,"try":3,"similar":1,"turned":1,"looks":1,"column":6,"psiparams":2,"share":1,"occurred":1,"blob":2,"appropriate":1,"generates":2,"generated":1,"apsi_sender_setup":3,"responses":1,"queries":1,"apsi_sender_online":3,"apsi_receiver":3,"searching":1,"costly":1,"knows":1,"querying":1,"know":2,"subqueries":1,"subquery":3,"residing":1,"idx":1,"search":1,"assuming":1,"indindiscernibility":1,"degree":1,"ind_degree":9,"sender_data_rows":6,"rows":3,"bucket_num":9,"query_rows":6,"query_rows_per_bucket":6,"collect":1,"popular":1,"users":1,"update":1,"promptly":1,"what":12,"safe":4,"who":1,"program":1,"meaningless":1,"doesn":2,"duplicates":2,"ids":2,"sometimes":1,"intend":1,"rules":1,"recommendation":2,"shouldn":2,"unless":2,"resource":1,"turns":1,"match":1,"proper":3,"pretty":1,"bad":1,"enable":2,"mtls":1,"sides":2,"store":2,"checkpoints":2,"fails":1,"just":1,"progress":1,"introduce":1,"through":1,"generate_psi":2,"py":2,"dockers":1,"show":1,"unit":2,"seconds":2,"minutes":2,"hours":2,"favorable":1,"bandwidth":5,"bottleneck":2,"protocolsthreat":3,"modelparty":3,"numberpsitypecodeecdh":1,"psisemi":9,"honest2p1ecdh":2,"honest2p":6,"kkrtsemi":3,"honest2p2pcg_psisemi":2,"honest2p3mini":2,"psimalicious2p":3,"numberpsitypecode":2,"threat":3,"model":7,"psitypecode":2,"honest2p1":1,"honest2p2":1,"pcg_psisemi":1,"honest2p3":1,"pcg_psi":3,"mini":4,"designed":1,"models":1,"considered":1,"capture":1,"capabilities":1,"adversary":8,"environment":1,"attacked":2,"fillin":1,"platinumcpu2":6,"248269cy":1,"50ghzwith":4,"donna4c40":3,"181s81":3,"227s163":3,"509s330":3,"466s666":3,"807s8c20":2,"682s42":3,"054s85":3,"272s173":3,"836s354":3,"842s16c11":2,"639s23":3,"670s48":3,"965s100":3,"903s208":3,"156s":5,"8269cy":5,"807s":3,"donna":2,"50ghz":2,"4c":4,"181s":2,"227s":2,"509s":2,"466s":2,"8c20":1,"842s":3,"8c":4,"682s":2,"054s":2,"272s":2,"836s":2,"16c11":1,"16c":4,"639s":2,"670s":2,"965s":2,"903s":2,"248369b":1,"70ghzcurve25519":4,"4c7":3,"37s15":3,"32s31":3,"932s66":3,"802s139":3,"994s8c4":2,"3s9":3,"095s18":3,"919s40":3,"828s87":3,"649s16c2":2,"921s6":3,"081s13":3,"186s29":3,"614s65":3,"186s":7,"8369b":4,"994s":3,"70ghz":1,"37s":5,"32s":2,"932s":2,"802s":2,"8c4":1,"649s":3,"3s":2,"095s":2,"919s":2,"828s":2,"16c2":1,"921s":2,"081s":2,"614s":2,"experiments":1,"thread":1,"enough":1,"upstream":1,"threading":1,"wondershaper":2,"10mbps":3,"10240kbps":1,"100mbps":3,"102400kbps":1,"1000mbps":1,"1024000kbps":1,"bandwidthphase2":3,"24lanoffline0":1,"012s0":15,"014sonline0":2,"495s2":3,"474s10":3,"765s44":3,"368s100mbpsoffline0":2,"024s0":3,"014sonline2":2,"694s11":3,"048s46":3,"983s192":3,"37s10mbpsoffline0":2,"016s0":3,"019s0":3,"0312s0":3,"018sonline25":2,"434s100":3,"68s415":3,"94s1672":3,"21s":5,"lanoffline0":2,"014s":6,"lan":2,"012s":10,"online0":1,"368s":3,"495s":2,"474s":2,"765s":2,"100mbpsoffline0":1,"024s":2,"online2":1,"694s":2,"048s":2,"983s":2,"10mbpsoffline0":1,"018s":3,"016s":2,"019s":2,"0312s":2,"online25":1,"434s":2,"68s":2,"94s":2},"type":{"fragment":167},"symbol.domain":{},"symbol.name":{},"symbol.module":{}},"avgFieldLength":{"url":6.92814371257485,"title":4.4011976047904176,"content":209.9520958083834,"type":1,"symbol.domain":0,"symbol.name":0,"symbol.module":0},"fieldLengths":{"url":{"1":10,"2":6,"3":5,"4":7,"5":7,"6":7,"7":8,"8":8,"9":8,"10":8,"11":8,"12":8,"13":8,"14":7,"15":8,"16":8,"17":8,"18":8,"19":8,"20":8,"21":7,"22":6,"23":5,"24":6,"25":6,"26":7,"27":6,"28":5,"29":5,"30":5,"31":5,"32":5,"33":7,"34":5,"35":6,"36":6,"37":5,"38":6,"39":7,"40":5,"41":8,"42":7,"43":8,"44":7,"45":8,"46":7,"47":9,"48":7,"49":9,"50":6,"51":6,"52":7,"53":8,"54":6,"55":6,"56":6,"57":6,"58":6,"59":8,"60":8,"61":8,"62":6,"63":6,"64":6,"65":6,"66":6,"67":6,"68":6,"69":6,"70":6,"71":6,"72":6,"73":6,"74":6,"75":6,"76":6,"77":7,"78":6,"79":7,"80":8,"81":8,"82":8,"83":6,"84":6,"85":6,"86":6,"87":6,"88":6,"89":6,"90":6,"91":6,"92":6,"93":8,"94":7,"95":8,"96":6,"97":6,"98":6,"99":6,"100":6,"101":6,"102":6,"103":6,"104":6,"105":6,"106":7,"107":6,"108":6,"109":6,"110":6,"111":6,"112":6,"113":6,"114":8,"115":6,"116":7,"117":8,"118":7,"119":8,"120":9,"121":9,"122":8,"123":9,"124":8,"125":8,"126":9,"127":6,"128":8,"129":7,"130":9,"131":7,"132":8,"133":7,"134":7,"135":7,"136":7,"137":7,"138":8,"139":7,"140":9,"141":7,"142":8,"143":7,"144":7,"145":7,"146":9,"147":7,"148":7,"149":8,"150":8,"151":7,"152":8,"153":7,"154":7,"155":9,"156":9,"157":6,"158":9,"159":7,"160":9,"161":7,"162":7,"163":8,"164":6,"165":8,"166":8,"167":7},"title":{"1":7,"2":2,"3":3,"4":5,"5":5,"6":5,"7":6,"8":6,"9":6,"10":6,"11":6,"12":6,"13":6,"14":5,"15":6,"16":6,"17":6,"18":6,"19":6,"20":6,"21":5,"22":2,"23":3,"24":4,"25":4,"26":5,"27":4,"28":3,"29":3,"30":3,"31":3,"32":3,"33":5,"34":3,"35":4,"36":4,"37":3,"38":4,"39":5,"40":1,"41":3,"42":5,"43":6,"44":5,"45":6,"46":5,"47":7,"48":5,"49":7,"50":4,"51":2,"52":2,"53":5,"54":3,"55":3,"56":3,"57":3,"58":3,"59":5,"60":3,"61":6,"62":4,"63":4,"64":4,"65":4,"66":4,"67":4,"68":4,"69":4,"70":4,"71":4,"72":4,"73":4,"74":4,"75":4,"76":4,"77":5,"78":4,"79":5,"80":6,"81":3,"82":6,"83":4,"84":4,"85":4,"86":4,"87":4,"88":4,"89":4,"90":4,"91":4,"92":4,"93":6,"94":2,"95":5,"96":3,"97":3,"98":3,"99":3,"100":3,"101":3,"102":3,"103":3,"104":3,"105":3,"106":4,"107":3,"108":3,"109":3,"110":3,"111":3,"112":3,"113":3,"114":5,"115":2,"116":2,"117":5,"118":4,"119":5,"120":4,"121":4,"122":4,"123":6,"124":4,"125":4,"126":6,"127":3,"128":3,"129":5,"130":7,"131":5,"132":6,"133":5,"134":5,"135":2,"136":4,"137":4,"138":5,"139":4,"140":6,"141":4,"142":5,"143":4,"144":4,"145":4,"146":4,"147":6,"148":6,"149":3,"150":6,"151":5,"152":6,"153":5,"154":5,"155":7,"156":7,"157":4,"158":4,"159":6,"160":8,"161":6,"162":6,"163":7,"164":5,"165":7,"166":7,"167":6},"content":{"1":44,"2":0,"3":79,"4":70,"5":39,"6":82,"7":12,"8":22,"9":8,"10":14,"11":48,"12":12,"13":14,"14":42,"15":12,"16":8,"17":22,"18":80,"19":20,"20":84,"21":66,"22":492,"23":0,"24":0,"25":36,"26":4,"27":0,"28":31,"29":1158,"30":0,"31":172,"32":6,"33":8,"34":0,"35":0,"36":6,"37":60,"38":7,"39":20,"40":21,"41":109,"42":2177,"43":1153,"44":1072,"45":1474,"46":0,"47":3322,"48":3637,"49":1791,"50":1544,"51":49,"52":0,"53":26,"54":0,"55":616,"56":1556,"57":27,"58":0,"59":356,"60":0,"61":103,"62":0,"63":111,"64":75,"65":82,"66":45,"67":291,"68":82,"69":134,"70":493,"71":93,"72":305,"73":568,"74":0,"75":44,"76":379,"77":171,"78":284,"79":180,"80":356,"81":0,"82":53,"83":0,"84":452,"85":67,"86":134,"87":230,"88":101,"89":148,"90":0,"91":397,"92":1060,"93":356,"94":27,"95":80,"96":0,"97":289,"98":0,"99":0,"100":35,"101":109,"102":125,"103":249,"104":84,"105":30,"106":41,"107":0,"108":0,"109":432,"110":34,"111":424,"112":250,"113":0,"114":356,"115":86,"116":6,"117":40,"118":76,"119":12,"120":13,"121":0,"122":13,"123":23,"124":4,"125":2,"126":0,"127":220,"128":0,"129":35,"130":327,"131":17,"132":11,"133":14,"134":418,"135":8,"136":69,"137":35,"138":0,"139":127,"140":28,"141":94,"142":178,"143":113,"144":13,"145":209,"146":13,"147":360,"148":165,"149":17,"150":37,"151":25,"152":13,"153":0,"154":0,"155":28,"156":0,"157":38,"158":9,"159":268,"160":29,"161":25,"162":17,"163":11,"164":6,"165":436,"166":273,"167":34},"type":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1,"19":1,"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1,"37":1,"38":1,"39":1,"40":1,"41":1,"42":1,"43":1,"44":1,"45":1,"46":1,"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1,"68":1,"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1,"80":1,"81":1,"82":1,"83":1,"84":1,"85":1,"86":1,"87":1,"88":1,"89":1,"90":1,"91":1,"92":1,"93":1,"94":1,"95":1,"96":1,"97":1,"98":1,"99":1,"100":1,"101":1,"102":1,"103":1,"104":1,"105":1,"106":1,"107":1,"108":1,"109":1,"110":1,"111":1,"112":1,"113":1,"114":1,"115":1,"116":1,"117":1,"118":1,"119":1,"120":1,"121":1,"122":1,"123":1,"124":1,"125":1,"126":1,"127":1,"128":1,"129":1,"130":1,"131":1,"132":1,"133":1,"134":1,"135":1,"136":1,"137":1,"138":1,"139":1,"140":1,"141":1,"142":1,"143":1,"144":1,"145":1,"146":1,"147":1,"148":1,"149":1,"150":1,"151":1,"152":1,"153":1,"154":1,"155":1,"156":1,"157":1,"158":1,"159":1,"160":1,"161":1,"162":1,"163":1,"164":1,"165":1,"166":1,"167":1},"symbol.domain":{},"symbol.name":{},"symbol.module":{}}},"docs":{"docs":{"1":{"url":"/psi/main/en/#welcome-to-secretflow-psi-library-s-documentation","type":"fragment","title":"Welcome to SecretFlow PSI Library’s documentation!","content":"This is the repo of Private Set Intersection(PSI) and Private Information Retrieval(PIR) from SecretFlow team, which provides PSI and PIR functionality for SecretFlow , SCQL  and SecretPad. SecretFlow SCQL SecretPad This repo is formerly psi/pir part from secretflow/spu repo. secretflow/spu  "},"2":{"url":"/psi/main/en/whatsnew#release-notes","type":"fragment","title":"Release notes","content":""},"3":{"url":"/psi/main/en/whatsnew#release","type":"fragment","title":"Release notes - RELEASE","content":"\nNOTE:\n\n[Feature] prefix for new features.\n[Bugfix] prefix for bug fixes.\n[API] prefix for API changes.\n[Improvement] prefix for implementation improvement.\n\n NOTE: \n[Feature] prefix for new features.\n[Bugfix] prefix for bug fixes.\n[API] prefix for API changes.\n[Improvement] prefix for implementation improvement.\n [Feature] prefix for new features. [Feature] [Bugfix] prefix for bug fixes. [Bugfix] [API] prefix for API changes. [API] [Improvement] prefix for implementation improvement. [Improvement] \n[API] delete skip_duplicates_check in psi_v2 config.\n [API] delete skip_duplicates_check in psi_v2 config. skip_duplicates_check "},"4":{"url":"/psi/main/en/whatsnew#v0-5-0beta","type":"fragment","title":"Release notes - v0.5.0beta","content":"\n[API] delete legacy ub psi function.\n[API] output csv null_rep can be specified.\n[Feature] join can be done with one receiver.\n[Feature] join can be done with ub psi protocol.\n[Improvement] RR22 enhancement\n[Drop] ic_mode\n [API] delete legacy ub psi function. [API] output csv null_rep can be specified. [Feature] join can be done with one receiver. [Feature] join can be done with ub psi protocol. [Improvement] RR22 enhancement [Drop] ic_mode "},"5":{"url":"/psi/main/en/whatsnew#v0-4-2beta","type":"fragment","title":"Release notes - v0.4.2beta","content":"\n[API] pir experimental params\n[API] ecdh batch_size\n[Improvement] APSI group mode\n[Improvement] tmp dir cleanup\n[Improvement] refactor csv reader\n [API] pir experimental params [API] ecdh batch_size batch_size [Improvement] APSI group mode [Improvement] tmp dir cleanup [Improvement] refactor csv reader "},"6":{"url":"/psi/main/en/whatsnew#v0-4-0beta","type":"fragment","title":"Release notes - v0.4.0beta","content":"\n[API] remove BC22 protocol\n[API] add entrypoint for docker file.\n[API] allow passing config JSON directly to main.\n[Bugfix] fix ic mode.\n[Bugfix] fix RR22, SealPIR and APSI.\n[Improvement] upgrade yacl to 0.4.5b1.\n[Improvement] upgrade download uri of xz.\n [API] remove BC22 protocol [API] add entrypoint for docker file. [API] allow passing config JSON directly to main. [Bugfix] fix ic mode. [Bugfix] fix RR22, SealPIR and APSI. [Improvement] upgrade yacl to 0.4.5b1. [Improvement] upgrade download uri of xz. "},"7":{"url":"/psi/main/en/whatsnew#v0-4-0-dev240801","type":"fragment","title":"Release notes - v0.4.0.dev240801","content":"\n[Bugfix] Fix MacOS and arm build.\n [Bugfix] Fix MacOS and arm build. "},"8":{"url":"/psi/main/en/whatsnew#v0-4-0-dev240731","type":"fragment","title":"Release notes - v0.4.0.dev240731","content":"\n[Improvement] Port APSI again.\n[Feature] Add Bucketized APSI.\n[API] Remove SealPIR.\n [Improvement] Port APSI again. [Feature] Add Bucketized APSI. [API] Remove SealPIR. "},"9":{"url":"/psi/main/en/whatsnew#v0-4-0-dev240521","type":"fragment","title":"Release notes - v0.4.0.dev240521","content":"\n[API] remove BC22 protocol\n [API] remove BC22 protocol "},"10":{"url":"/psi/main/en/whatsnew#v0-4-0-dev240517","type":"fragment","title":"Release notes - v0.4.0.dev240517","content":"\n[Improvement] upgrade yacl to 0.4.5b0.\n [Improvement] upgrade yacl to 0.4.5b0. "},"11":{"url":"/psi/main/en/whatsnew#v0-4-0-dev240514","type":"fragment","title":"Release notes - v0.4.0.dev240514","content":"\n[API] add entrypoint for docker file.\n[API] allow passing config JSON directly to main.\n[Bugfix] fix ic mode.\n[Bugfix] fix RR22, SealPIR and APSI.\n [API] add entrypoint for docker file. [API] allow passing config JSON directly to main. [Bugfix] fix ic mode. [Bugfix] fix RR22, SealPIR and APSI. "},"12":{"url":"/psi/main/en/whatsnew#v0-4-0-dev240401","type":"fragment","title":"Release notes - v0.4.0.dev240401","content":"\n[Improvement] upgrade download uri of xz.\n [Improvement] upgrade download uri of xz. "},"13":{"url":"/psi/main/en/whatsnew#v0-4-0-dev240329","type":"fragment","title":"Release notes - v0.4.0.dev240329","content":"\n[Improvement] upgrade yacl to 0.4.4b3.\n [Improvement] upgrade yacl to 0.4.4b3. "},"14":{"url":"/psi/main/en/whatsnew#v0-3-0beta","type":"fragment","title":"Release notes - v0.3.0beta","content":"\n[Improvement] add uuid in system temp folder.\n[Improvement] use arrow csv reader in pir.\n[Bugfix] fix typo in psi config check.\n [Improvement] add uuid in system temp folder. [Improvement] use arrow csv reader in pir. [Bugfix] fix typo in psi config check. "},"15":{"url":"/psi/main/en/whatsnew#v0-3-0-dev240304","type":"fragment","title":"Release notes - v0.3.0.dev240304","content":"\n[API] expose ic_mode in RunLegacyPsi api\n [API] expose ic_mode in RunLegacyPsi api "},"16":{"url":"/psi/main/en/whatsnew#v0-3-0-dev240222","type":"fragment","title":"Release notes - v0.3.0.dev240222","content":"\n[API] expose PIR API.\n [API] expose PIR API. "},"17":{"url":"/psi/main/en/whatsnew#v0-3-0-dev240219","type":"fragment","title":"Release notes - v0.3.0.dev240219","content":"\n[Feature] add ecdh logger for debug purposes.\n[API] modify repo structure.\n [Feature] add ecdh logger for debug purposes. [API] modify repo structure. "},"18":{"url":"/psi/main/en/whatsnew#v0-2-0-dev240123","type":"fragment","title":"Release notes - v0.2.0.dev240123","content":"\n[Feature] add RFC9380 25519 elligator2 hash_to_curve.\n[Feature] add malicious vole psi.\n[API] expose ub psi in PSI v2 API.\n[Improvement] Modify buffer size in sort cmd.\n[Bugfix] Fix SimpleShuffledBatchProvider.\n[Bugfix] Fix flakiness in psi_test.\n[Bugfix] Fix race condition in rr22.\n [Feature] add RFC9380 25519 elligator2 hash_to_curve. [Feature] add malicious vole psi. [API] expose ub psi in PSI v2 API. [Improvement] Modify buffer size in sort cmd. [Bugfix] Fix SimpleShuffledBatchProvider. [Bugfix] Fix flakiness in psi_test. [Bugfix] Fix race condition in rr22. "},"19":{"url":"/psi/main/en/whatsnew#v0-2-0-dev231228","type":"fragment","title":"Release notes - v0.2.0.dev231228","content":"\n[Bugfix] Fix RR22 race condition.\n[Improvement] modify sort buffer size.\n [Bugfix] Fix RR22 race condition. [Improvement] modify sort buffer size. "},"20":{"url":"/psi/main/en/whatsnew#v0-2-0-dev231221","type":"fragment","title":"Release notes - v0.2.0.dev231221","content":"\n[API] Rename check_duplicates to skip_duplicates_check.\n[API] Rename sort_output to disable_alignment.\n[Feature] Support left join, right join and full join. The behavior of difference is modified.\n[Feature] Skip duplicate key check if recovery checkpoint exists.\n[Bugfix] Fix duplicate key check.\n[Bugfix] Fix SyncWait.\n [API] Rename check_duplicates to skip_duplicates_check. [API] Rename sort_output to disable_alignment. [Feature] Support left join, right join and full join. The behavior of difference is modified. [Feature] Skip duplicate key check if recovery checkpoint exists. [Bugfix] Fix duplicate key check. [Bugfix] Fix SyncWait. "},"21":{"url":"/psi/main/en/whatsnew#v0-1-0beta","type":"fragment","title":"Release notes - v0.1.0beta","content":"\n[API] Add PSI v2 API.\n[Feature] Add RR22 protocol.\n[Feature] Support recovery from failure in v2 API.\n[Feature] Support inner join in v2 API.\n[Feature] Migrate ECDH, KKRT, RR22 protocol in v2 API.\n [API] Add PSI v2 API. [Feature] Add RR22 protocol. [Feature] Support recovery from failure in v2 API. [Feature] Support inner join in v2 API. [Feature] Migrate ECDH, KKRT, RR22 protocol in v2 API. "},"22":{"url":"/psi/main/en/getting_started#getting-started","type":"fragment","title":"Getting started","content":"Welcome to SecretFlow PSI Library. There are multiple methods to use PSI/PIR. \nC++ binaries, you could build the binary or with release docker image: secretflow/release-ci:latest (secretflow/release-ci-aarch64:latest for ARM).\nPython packages\n\n\nSPU warps the library as Python bindings. You could call PSI/PIR with spu.\nSecretFlow warps SPU further with user-friendly APIs.\n\n\n\nApplications\n\n\nSCQL integrates this library to do JOIN operations.\nSecretPad provides PSI component.\n\n\n\n C++ binaries, you could build the binary or with release docker image: secretflow/release-ci:latest (secretflow/release-ci-aarch64:latest for ARM). secretflow/release-ci:latest secretflow/release-ci-aarch64:latest Python packages\n\n\nSPU warps the library as Python bindings. You could call PSI/PIR with spu.\nSecretFlow warps SPU further with user-friendly APIs.\n\n\n \n\nSPU warps the library as Python bindings. You could call PSI/PIR with spu.\nSecretFlow warps SPU further with user-friendly APIs.\n\n \nSPU warps the library as Python bindings. You could call PSI/PIR with spu.\nSecretFlow warps SPU further with user-friendly APIs.\n SPU warps the library as Python bindings. You could call PSI/PIR with spu. SPU SecretFlow warps SPU further with user-friendly APIs. SecretFlow Applications\n\n\nSCQL integrates this library to do JOIN operations.\nSecretPad provides PSI component.\n\n\n \n\nSCQL integrates this library to do JOIN operations.\nSecretPad provides PSI component.\n\n \nSCQL integrates this library to do JOIN operations.\nSecretPad provides PSI component.\n SCQL integrates this library to do JOIN operations. SCQL SecretPad provides PSI component. SecretPad For PSI, we have a developing v2 PSI, and we recommend using it. PSI v2 PSI PSI v1 APIs(Deprecated)PSI v2 APIsSupported ProtocolsECDH, KKRT, ECDH_OPRF_UB, DP_PSI, RR22ECDH, KKRT, RR22, ECDH_OPRF_UBCSV parserSupport a subset of csv files.Apache Arrow, support all legal csv files.Recovery after failureUnsupportedSupportedSupport duplicated keysUnsupportedSupportedRelease DockerNot providedProvidedPython Bindingwith SPUwith SPU PSI v1 APIs(Deprecated)PSI v2 APIs PSI v1 APIs(Deprecated)PSI v2 APIs  PSI v1 APIs(Deprecated) PSI v1 APIs(Deprecated) PSI v2 APIs PSI v2 APIs Supported ProtocolsECDH, KKRT, ECDH_OPRF_UB, DP_PSI, RR22ECDH, KKRT, RR22, ECDH_OPRF_UBCSV parserSupport a subset of csv files.Apache Arrow, support all legal csv files.Recovery after failureUnsupportedSupportedSupport duplicated keysUnsupportedSupportedRelease DockerNot providedProvidedPython Bindingwith SPUwith SPU Supported ProtocolsECDH, KKRT, ECDH_OPRF_UB, DP_PSI, RR22ECDH, KKRT, RR22, ECDH_OPRF_UB Supported Protocols Supported Protocols ECDH, KKRT, ECDH_OPRF_UB, DP_PSI, RR22 ECDH, KKRT, ECDH_OPRF_UB, DP_PSI, RR22 ECDH, KKRT, RR22, ECDH_OPRF_UB ECDH, KKRT, RR22, ECDH_OPRF_UB CSV parserSupport a subset of csv files.Apache Arrow, support all legal csv files. CSV parser CSV parser Support a subset of csv files. Support a subset of csv files. Apache Arrow, support all legal csv files. Apache Arrow, support all legal csv files. Recovery after failureUnsupportedSupported Recovery after failure Recovery after failure Unsupported Unsupported Supported Supported Support duplicated keysUnsupportedSupported Support duplicated keys Support duplicated keys Unsupported Unsupported Supported Supported Release DockerNot providedProvided Release Docker Release Docker Not provided Not provided Provided Provided Python Bindingwith SPUwith SPU Python Binding Python Binding with SPU with SPU with SPU with SPU "},"23":{"url":"/psi/main/en/getting_started#installation","type":"fragment","title":"Getting started - Installation","content":""},"24":{"url":"/psi/main/en/getting_started#c-binaries","type":"fragment","title":"Getting started - C++ binaries","content":""},"25":{"url":"/psi/main/en/getting_started#release-docker","type":"fragment","title":"Getting started - Release Docker","content":"Please check official release docker image at dockerhub. We also have mirrors at Alibaba Cloud: secretflow-registry.cn-hangzhou.cr.aliyuncs.com/secretflow/psi-anolis8. dockerhub secretflow-registry.cn-hangzhou.cr.aliyuncs.com/secretflow/psi-anolis8 "},"26":{"url":"/psi/main/en/getting_started#building-from-source","type":"fragment","title":"Getting started - Building from Source","content":"Please see Building. Building "},"27":{"url":"/psi/main/en/getting_started#python-packages","type":"fragment","title":"Getting started - Python packages","content":""},"28":{"url":"/psi/main/en/getting_started#id1","type":"fragment","title":"Getting started - SPU","content":"Please check SPU Installation Guidelines. SPU Installation Guidelines APIs: https://www.secretflow.org.cn/en/docs/spu/main/reference/py_api https://www.secretflow.org.cn/en/docs/spu/main/reference/py_api "},"29":{"url":"/psi/main/en/getting_started#id2","type":"fragment","title":"Getting started - SecretFlow","content":"Please check SecretFlow Installation page. SecretFlow Installation page APIs: \n\nPSI v1:\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_df\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_csv\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_df\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_csv\n\n\n\nPSI v2:\nhttps://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_v2\n\n\n\nPIR:\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_setup\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_query\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_memory_query\nPIR Configuration: https://www.secretflow.org.cn/en/docs/psi/v0.5.0b0/reference/pir_config\n\n\n\nComponent: https://www.secretflow.org.cn/en/docs/secretflow/main/component/comp_list#psi\n\n \nPSI v1:\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_df\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_csv\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_df\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_csv\n\n PSI v1:\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_df\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_csv\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_df\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_csv\n PSI v1:\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_df\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_csv\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_df\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_csv\n PSI v1: PSI v1: PSI v1: \n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_df\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_csv\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_df\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_csv\n \n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_df\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_csv\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_df\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_csv\n (Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_df https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_df (Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_csv https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_csv (Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_df https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_df (Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_csv https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_csv \nPSI v2:\nhttps://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_v2\n\n PSI v2:\nhttps://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_v2\n PSI v2:\nhttps://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_v2\n PSI v2: PSI v2: PSI v2: \nhttps://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_v2\n \nhttps://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_v2\n https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_v2 https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_v2 \nPIR:\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_setup\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_query\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_memory_query\nPIR Configuration: https://www.secretflow.org.cn/en/docs/psi/v0.5.0b0/reference/pir_config\n\n PIR:\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_setup\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_query\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_memory_query\nPIR Configuration: https://www.secretflow.org.cn/en/docs/psi/v0.5.0b0/reference/pir_config\n PIR:\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_setup\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_query\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_memory_query\nPIR Configuration: https://www.secretflow.org.cn/en/docs/psi/v0.5.0b0/reference/pir_config\n PIR: PIR: PIR: \n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_setup\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_query\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_memory_query\nPIR Configuration: https://www.secretflow.org.cn/en/docs/psi/v0.5.0b0/reference/pir_config\n \n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_setup\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_query\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_memory_query\nPIR Configuration: https://www.secretflow.org.cn/en/docs/psi/v0.5.0b0/reference/pir_config\n (Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_setup https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_setup (Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_query https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_query (Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_memory_query https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_memory_query PIR Configuration: https://www.secretflow.org.cn/en/docs/psi/v0.5.0b0/reference/pir_config https://www.secretflow.org.cn/en/docs/psi/v0.5.0b0/reference/pir_config \nComponent: https://www.secretflow.org.cn/en/docs/secretflow/main/component/comp_list#psi\n Component: https://www.secretflow.org.cn/en/docs/secretflow/main/component/comp_list#psi https://www.secretflow.org.cn/en/docs/secretflow/main/component/comp_list#psi "},"30":{"url":"/psi/main/en/getting_started#applications","type":"fragment","title":"Getting started - Applications","content":""},"31":{"url":"/psi/main/en/getting_started#id3","type":"fragment","title":"Getting started - SCQL","content":"Please check SCQL Quickstart tutorial. SCQL Quickstart tutorial Featured operators using PSI:\nhttps://www.secretflow.org.cn/en/docs/scql/main/reference/operators#in\nhttps://www.secretflow.org.cn/en/docs/scql/main/reference/operators#join\n Featured operators using PSI:\nhttps://www.secretflow.org.cn/en/docs/scql/main/reference/operators#in\nhttps://www.secretflow.org.cn/en/docs/scql/main/reference/operators#join\n Featured operators using PSI: Featured operators using PSI: Featured operators using PSI: \nhttps://www.secretflow.org.cn/en/docs/scql/main/reference/operators#in\nhttps://www.secretflow.org.cn/en/docs/scql/main/reference/operators#join\n \nhttps://www.secretflow.org.cn/en/docs/scql/main/reference/operators#in\nhttps://www.secretflow.org.cn/en/docs/scql/main/reference/operators#join\n https://www.secretflow.org.cn/en/docs/scql/main/reference/operators#in https://www.secretflow.org.cn/en/docs/scql/main/reference/operators#in https://www.secretflow.org.cn/en/docs/scql/main/reference/operators#join https://www.secretflow.org.cn/en/docs/scql/main/reference/operators#join "},"32":{"url":"/psi/main/en/getting_started#id4","type":"fragment","title":"Getting started - SecretPad","content":"Please check SecretPad handbook. SecretPad handbook "},"33":{"url":"/psi/main/en/getting_started#deprecated-easy-psi","type":"fragment","title":"Getting started - (Deprecated) Easy PSI","content":"Please check Easy PSI handbook. Easy PSI handbook "},"34":{"url":"/psi/main/en/getting_started#building","type":"fragment","title":"Getting started - Building","content":" "},"35":{"url":"/psi/main/en/getting_started#system-setup","type":"fragment","title":"Getting started - System Setup","content":""},"36":{"url":"/psi/main/en/getting_started#dev-docker","type":"fragment","title":"Getting started - Dev Docker","content":"You can use docker to compile:  "},"37":{"url":"/psi/main/en/getting_started#linux","type":"fragment","title":"Getting started - Linux","content":"You need to install: \ngcc>=11.2\ncmake>=3.26\nninja\nnasm>=2.15\npython>=3.8\nbazel\ngolang\nxxd\nlld\nperl>=5.20.3.1\n gcc>=11.2 cmake>=3.26 ninja nasm>=2.15 python>=3.8 bazel golang xxd lld perl>=5.20.3.1 For bazel, please check version in .bazeliskrc or use bazelisk instead. .bazeliskrc "},"38":{"url":"/psi/main/en/getting_started#build-unittest","type":"fragment","title":"Getting started - Build & UnitTest","content":"We use bazel for building and testing:  "},"39":{"url":"/psi/main/en/getting_started#reporting-an-issue","type":"fragment","title":"Getting started - Reporting an Issue","content":"Please create an issue at Github Issues. Github Issues We will look into issues and get back to you soon. "},"40":{"url":"/psi/main/en/development#development","type":"fragment","title":"Development","content":"Advanced topics related to principles, designs, benchmark and more. \nPSI Protocols Introduction\n \nPSI Protocols Introduction\n PSI Protocols Introduction PSI Protocols Introduction "},"41":{"url":"/psi/main/en/development/psi_protocol_intro#psi-protocols-introduction","type":"fragment","title":"PSI Protocols Introduction","content":"SecretFlow SPU implements the following PSI protocols, \nSemi-honest ECDH-based two-party PSI protocol [HFH99]\nSemi-honest ECDH-based three-party PSI protocol\nSemi-honest OT-based two-party PSI protocol [KKRT16]\nDifferentially Private (DP) PSI Protocol [DP-PSI]\nUnbalanced PSI Protocol\nSemi-honest and Malicious VOLE-based two-party PSI protocol [RS21] [RR22]\n Semi-honest ECDH-based two-party PSI protocol [HFH99] [HFH99] Semi-honest ECDH-based three-party PSI protocol Semi-honest OT-based two-party PSI protocol [KKRT16] [KKRT16] Differentially Private (DP) PSI Protocol [DP-PSI] [DP-PSI] Unbalanced PSI Protocol Semi-honest and Malicious VOLE-based two-party PSI protocol [RS21] [RR22] [RS21] [RR22] "},"42":{"url":"/psi/main/en/development/psi_protocol_intro#ecdh-psi","type":"fragment","title":"PSI Protocols Introduction - ECDH-PSI","content":"The semi-honest DH-PSI protocol is due to Huberman, Franklin, and Hogg [HFH99],\nbut with roots as far back as Meadows [Mea86]. It is a semi-honest protocol that\nrequires exponentiations in a Diffie-Hellman group proportional to the number of items in the sets. [HFH99] [Mea86] As a general rule, OT-based PSI protocols are (significantly) faster but require more communication\nthan Diffie-Hellman-based PSI protocols.\nIn some scenarios, communication cost is overwhelmingly more important than computation cost. DH-PSI protocol based on the Decisional Diffie-Hellman assumption: \nAgree on a group G, with a generator g.\nThe assumption: for random a,b,c cannot distinguish (ga,gb,gab)(g^a, g^b, g^{ab})(ga,gb,gab) from (ga,gb,gc)(g^a, g^b, g^c)(ga,gb,gc)\n Agree on a group G, with a generator g. The assumption: for random a,b,c cannot distinguish (ga,gb,gab)(g^a, g^b, g^{ab})(ga,gb,gab) from (ga,gb,gc)(g^a, g^b, g^c)(ga,gb,gc) (ga,gb,gab)(g^a, g^b, g^{ab})(ga,gb,gab) (ga,gb,gab)(g^a, g^b, g^{ab})(ga,gb,gab) (ga,gb,gab)(g^a, g^b, g^{ab}) (ga,gb,gab)(g^a, g^b, g^{ab}) (ga,gb,gab)(g^a, g^b, g^{ab}) (ga,gb,gab) ( ga g a , gb g b , gab g ab a b ) (g^a, g^b, g^{ab}) (ga,gb,gab) (ga,gb,gab)  ( ga g a a a a a  a a ,  gb g b b b b b  b b ,  gab g ab ab ab ab ab  ab ab ab ) (ga,gb,gc)(g^a, g^b, g^c)(ga,gb,gc) (ga,gb,gc)(g^a, g^b, g^c)(ga,gb,gc) (ga,gb,gc)(g^a, g^b, g^c) (ga,gb,gc)(g^a, g^b, g^c) (ga,gb,gc)(g^a, g^b, g^c) (ga,gb,gc) ( ga g a , gb g b , gc g c ) (g^a, g^b, g^c) (ga,gb,gc) (ga,gb,gc)  ( ga g a a a a a  a a ,  gb g b b b b b  b b ,  gc g c c c c c  c c ) Several candidate groups are widely used, such as subgroups of the multiplication group of a finite\nfield and elliptic curve groups. In practice, carefully chosen elliptic curves like\nCurve25519 [Ber06] offer a good balance between security and performance. [Ber06]    \nFor each element xix_ixi​ in its set, Alice applies the hash function and then exponentiates it\nusing its key α\\alphaα, thus computing H(xi)α{H(x_i)}^\\alphaH(xi​)α . Alice sends\n{{H(xi)}α}i=1n1\\{\\{H(x_i)\\}^\\alpha\\}_{i=1}^{n_1}{{H(xi​)}α}i=1n1​​ to Bob.\nFor each element H(xi)α{H(x_i)}^\\alphaH(xi​)α  received from Alice in the previous step, Bob exponentiates\nit using its key β\\betaβ, computing H(xi)αβ{H(x_i)}^{\\alpha\\beta}H(xi​)αβ.\nBob sends {{H(xi)}αβ}i=1n1{\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1}{{H(xi​)}αβ}i=1n1​​ to Alice.\nFor each element yiy_iyi​ in its set, Bob applies the hash function and then exponentiates it\nusing its key β\\betaβ, thus computing H(yi)β{H(y_i)}^\\betaH(yi​)β .\nBob sends the set {{H(yi)}β}i=1n2\\{\\{H(y_i)\\}^\\beta\\}_{i=1}^{n_2}{{H(yi​)}β}i=1n2​​ to Alice.\nFor each element H(yi)β{H(y_i)}^\\betaH(yi​)β  received from Bob in the previous step, Alice exponentiates\nit using its key α\\alphaα, computing H(yi)βα{H(y_i)}^{\\beta\\alpha}H(yi​)βα .\nAlice compares two set {{H(xi)}αβ}i=1n1{\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1}{{H(xi​)}αβ}i=1n1​​\nand {{H(yi)}βα}i=1n2{\\{\\{H(y_i)\\}^{\\beta\\alpha}\\}}_{i=1}^{n_2}{{H(yi​)}βα}i=1n2​​  and gets intersection.\n For each element xix_ixi​ in its set, Alice applies the hash function and then exponentiates it\nusing its key α\\alphaα, thus computing H(xi)α{H(x_i)}^\\alphaH(xi​)α . Alice sends\n{{H(xi)}α}i=1n1\\{\\{H(x_i)\\}^\\alpha\\}_{i=1}^{n_1}{{H(xi​)}α}i=1n1​​ to Bob. xix_ixi​ xix_ixi​ xix_i xix_i xix_i xi xi x i x_i xi​ xi​  xi​ x i​ i​ i​ i i  i i ​    α\\alphaα α\\alphaα α\\alpha α\\alpha α\\alpha α α \\alpha α α  α H(xi)α{H(x_i)}^\\alphaH(xi​)α H(xi)α{H(x_i)}^\\alphaH(xi​)α H(xi)α{H(x_i)}^\\alpha H(xi)α{H(x_i)}^\\alpha H(xi)α{H(x_i)}^\\alpha H(xi)α H(xi)α H(xi) H ( xi x i ) α {H(x_i)}^\\alpha H(xi​)α H(xi​)α  H(xi​)α H(xi​) H ( xi​ x i​ i​ i​ i i  i i ​    ) α α α α α  α α {{H(xi)}α}i=1n1\\{\\{H(x_i)\\}^\\alpha\\}_{i=1}^{n_1}{{H(xi​)}α}i=1n1​​ {{H(xi)}α}i=1n1\\{\\{H(x_i)\\}^\\alpha\\}_{i=1}^{n_1}{{H(xi​)}α}i=1n1​​ {{H(xi)}α}i=1n1\\{\\{H(x_i)\\}^\\alpha\\}_{i=1}^{n_1} {{H(xi)}α}i=1n1\\{\\{H(x_i)\\}^\\alpha\\}_{i=1}^{n_1} {{H(xi)}α}i=1n1\\{\\{H(x_i)\\}^\\alpha\\}_{i=1}^{n_1} {{H(xi)}α}i=1n1 { { H ( xi x i ) }α } α }i=1n1 } i=1 i = 1 n1 n 1 \\{\\{H(x_i)\\}^\\alpha\\}_{i=1}^{n_1} {{H(xi​)}α}i=1n1​​ {{H(xi​)}α}i=1n1​​  {{ H ( xi​ x i​ i​ i​ i i  i i ​    ) }α } α α α α α  α α }i=1n1​​ } i=1n1​​ i=1n1​​ i=1n1​​ i=1n1​ i=1  i=1 i=1 i = 1 n1​  n1​ n1​ n1​ n 1​ 1​ 1​ 1 1  1 1 ​    ​    For each element H(xi)α{H(x_i)}^\\alphaH(xi​)α  received from Alice in the previous step, Bob exponentiates\nit using its key β\\betaβ, computing H(xi)αβ{H(x_i)}^{\\alpha\\beta}H(xi​)αβ.\nBob sends {{H(xi)}αβ}i=1n1{\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1}{{H(xi​)}αβ}i=1n1​​ to Alice. H(xi)α{H(x_i)}^\\alphaH(xi​)α H(xi)α{H(x_i)}^\\alphaH(xi​)α H(xi)α{H(x_i)}^\\alpha H(xi)α{H(x_i)}^\\alpha H(xi)α{H(x_i)}^\\alpha H(xi)α H(xi)α H(xi) H ( xi x i ) α {H(x_i)}^\\alpha H(xi​)α H(xi​)α  H(xi​)α H(xi​) H ( xi​ x i​ i​ i​ i i  i i ​    ) α α α α α  α α β\\betaβ β\\betaβ β\\beta β\\beta β\\beta β β \\beta β β  β H(xi)αβ{H(x_i)}^{\\alpha\\beta}H(xi​)αβ H(xi)αβ{H(x_i)}^{\\alpha\\beta}H(xi​)αβ H(xi)αβ{H(x_i)}^{\\alpha\\beta} H(xi)αβ{H(x_i)}^{\\alpha\\beta} H(xi)αβ{H(x_i)}^{\\alpha\\beta} H(xi)αβ H(xi)αβ H(xi) H ( xi x i ) αβ α β {H(x_i)}^{\\alpha\\beta} H(xi​)αβ H(xi​)αβ  H(xi​)αβ H(xi​) H ( xi​ x i​ i​ i​ i i  i i ​    ) αβ αβ αβ αβ αβ  αβ αβ α β {{H(xi)}αβ}i=1n1{\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1}{{H(xi​)}αβ}i=1n1​​ {{H(xi)}αβ}i=1n1{\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1}{{H(xi​)}αβ}i=1n1​​ {{H(xi)}αβ}i=1n1{\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1} {{H(xi)}αβ}i=1n1{\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1} {{H(xi)}αβ}i=1n1{\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1} {{H(xi)}αβ}i=1n1 {{H(xi)}αβ}i=1n1 {{H(xi)}αβ} { { H ( xi x i ) }αβ } αβ α β } i=1 i = 1 n1 n 1 {\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1} {{H(xi​)}αβ}i=1n1​​ {{H(xi​)}αβ}i=1n1​​  {{H(xi​)}αβ}i=1n1​​ {{H(xi​)}αβ} {{ H ( xi​ x i​ i​ i​ i i  i i ​    ) }αβ } αβ αβ αβ αβ αβ  αβ αβ α β } i=1n1​​ i=1n1​​ i=1n1​​ i=1n1​ i=1  i=1 i=1 i = 1 n1​  n1​ n1​ n1​ n 1​ 1​ 1​ 1 1  1 1 ​    ​    For each element yiy_iyi​ in its set, Bob applies the hash function and then exponentiates it\nusing its key β\\betaβ, thus computing H(yi)β{H(y_i)}^\\betaH(yi​)β .\nBob sends the set {{H(yi)}β}i=1n2\\{\\{H(y_i)\\}^\\beta\\}_{i=1}^{n_2}{{H(yi​)}β}i=1n2​​ to Alice. yiy_iyi​ yiy_iyi​ yiy_i yiy_i yiy_i yi yi y i y_i yi​ yi​  yi​ y i​ i​ i​ i i  i i ​    β\\betaβ β\\betaβ β\\beta β\\beta β\\beta β β \\beta β β  β H(yi)β{H(y_i)}^\\betaH(yi​)β H(yi)β{H(y_i)}^\\betaH(yi​)β H(yi)β{H(y_i)}^\\beta H(yi)β{H(y_i)}^\\beta H(yi)β{H(y_i)}^\\beta H(yi)β H(yi)β H(yi) H ( yi y i ) β {H(y_i)}^\\beta H(yi​)β H(yi​)β  H(yi​)β H(yi​) H ( yi​ y i​ i​ i​ i i  i i ​    ) β β β β β  β β {{H(yi)}β}i=1n2\\{\\{H(y_i)\\}^\\beta\\}_{i=1}^{n_2}{{H(yi​)}β}i=1n2​​ {{H(yi)}β}i=1n2\\{\\{H(y_i)\\}^\\beta\\}_{i=1}^{n_2}{{H(yi​)}β}i=1n2​​ {{H(yi)}β}i=1n2\\{\\{H(y_i)\\}^\\beta\\}_{i=1}^{n_2} {{H(yi)}β}i=1n2\\{\\{H(y_i)\\}^\\beta\\}_{i=1}^{n_2} {{H(yi)}β}i=1n2\\{\\{H(y_i)\\}^\\beta\\}_{i=1}^{n_2} {{H(yi)}β}i=1n2 { { H ( yi y i ) }β } β }i=1n2 } i=1 i = 1 n2 n 2 \\{\\{H(y_i)\\}^\\beta\\}_{i=1}^{n_2} {{H(yi​)}β}i=1n2​​ {{H(yi​)}β}i=1n2​​  {{ H ( yi​ y i​ i​ i​ i i  i i ​    ) }β } β β β β β  β β }i=1n2​​ } i=1n2​​ i=1n2​​ i=1n2​​ i=1n2​ i=1  i=1 i=1 i = 1 n2​  n2​ n2​ n2​ n 2​ 2​ 2​ 2 2  2 2 ​    ​    For each element H(yi)β{H(y_i)}^\\betaH(yi​)β  received from Bob in the previous step, Alice exponentiates\nit using its key α\\alphaα, computing H(yi)βα{H(y_i)}^{\\beta\\alpha}H(yi​)βα . H(yi)β{H(y_i)}^\\betaH(yi​)β H(yi)β{H(y_i)}^\\betaH(yi​)β H(yi)β{H(y_i)}^\\beta H(yi)β{H(y_i)}^\\beta H(yi)β{H(y_i)}^\\beta H(yi)β H(yi)β H(yi) H ( yi y i ) β {H(y_i)}^\\beta H(yi​)β H(yi​)β  H(yi​)β H(yi​) H ( yi​ y i​ i​ i​ i i  i i ​    ) β β β β β  β β α\\alphaα α\\alphaα α\\alpha α\\alpha α\\alpha α α \\alpha α α  α H(yi)βα{H(y_i)}^{\\beta\\alpha}H(yi​)βα H(yi)βα{H(y_i)}^{\\beta\\alpha}H(yi​)βα H(yi)βα{H(y_i)}^{\\beta\\alpha} H(yi)βα{H(y_i)}^{\\beta\\alpha} H(yi)βα{H(y_i)}^{\\beta\\alpha} H(yi)βα H(yi)βα H(yi) H ( yi y i ) βα β α {H(y_i)}^{\\beta\\alpha} H(yi​)βα H(yi​)βα  H(yi​)βα H(yi​) H ( yi​ y i​ i​ i​ i i  i i ​    ) βα βα βα βα βα  βα βα β α Alice compares two set {{H(xi)}αβ}i=1n1{\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1}{{H(xi​)}αβ}i=1n1​​\nand {{H(yi)}βα}i=1n2{\\{\\{H(y_i)\\}^{\\beta\\alpha}\\}}_{i=1}^{n_2}{{H(yi​)}βα}i=1n2​​  and gets intersection. {{H(xi)}αβ}i=1n1{\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1}{{H(xi​)}αβ}i=1n1​​ {{H(xi)}αβ}i=1n1{\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1}{{H(xi​)}αβ}i=1n1​​ {{H(xi)}αβ}i=1n1{\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1} {{H(xi)}αβ}i=1n1{\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1} {{H(xi)}αβ}i=1n1{\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1} {{H(xi)}αβ}i=1n1 {{H(xi)}αβ}i=1n1 {{H(xi)}αβ} { { H ( xi x i ) }αβ } αβ α β } i=1 i = 1 n1 n 1 {\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1} {{H(xi​)}αβ}i=1n1​​ {{H(xi​)}αβ}i=1n1​​  {{H(xi​)}αβ}i=1n1​​ {{H(xi​)}αβ} {{ H ( xi​ x i​ i​ i​ i i  i i ​    ) }αβ } αβ αβ αβ αβ αβ  αβ αβ α β } i=1n1​​ i=1n1​​ i=1n1​​ i=1n1​ i=1  i=1 i=1 i = 1 n1​  n1​ n1​ n1​ n 1​ 1​ 1​ 1 1  1 1 ​    ​    {{H(yi)}βα}i=1n2{\\{\\{H(y_i)\\}^{\\beta\\alpha}\\}}_{i=1}^{n_2}{{H(yi​)}βα}i=1n2​​ {{H(yi)}βα}i=1n2{\\{\\{H(y_i)\\}^{\\beta\\alpha}\\}}_{i=1}^{n_2}{{H(yi​)}βα}i=1n2​​ {{H(yi)}βα}i=1n2{\\{\\{H(y_i)\\}^{\\beta\\alpha}\\}}_{i=1}^{n_2} {{H(yi)}βα}i=1n2{\\{\\{H(y_i)\\}^{\\beta\\alpha}\\}}_{i=1}^{n_2} {{H(yi)}βα}i=1n2{\\{\\{H(y_i)\\}^{\\beta\\alpha}\\}}_{i=1}^{n_2} {{H(yi)}βα}i=1n2 {{H(yi)}βα}i=1n2 {{H(yi)}βα} { { H ( yi y i ) }βα } βα β α } i=1 i = 1 n2 n 2 {\\{\\{H(y_i)\\}^{\\beta\\alpha}\\}}_{i=1}^{n_2} {{H(yi​)}βα}i=1n2​​ {{H(yi​)}βα}i=1n2​​  {{H(yi​)}βα}i=1n2​​ {{H(yi​)}βα} {{ H ( yi​ y i​ i​ i​ i i  i i ​    ) }βα } βα βα βα βα βα  βα βα β α } i=1n2​​ i=1n2​​ i=1n2​​ i=1n2​ i=1  i=1 i=1 i = 1 n2​  n2​ n2​ n2​ n 2​ 2​ 2​ 2 2  2 2 ​    ​    The Elliptic Curve groups, supported in secretflow SPU PSI module. EC groupReferenceCryptoLibCurve25519[Ber06]LibSoidum[ipp-crypto] (Intel® CPU support AVX-512 IFMA)Secp256k1[SEC2-v2]OpenSSLSM2GBT.32918.1-2016OpenSSLISO/IEC 14888-3FourQ[FourQ]FourQlib EC groupReferenceCryptoLib EC groupReferenceCryptoLib EC group EC group Reference Reference CryptoLib CryptoLib Curve25519[Ber06]LibSoidum[ipp-crypto] (Intel® CPU support AVX-512 IFMA)Secp256k1[SEC2-v2]OpenSSLSM2GBT.32918.1-2016OpenSSLISO/IEC 14888-3FourQ[FourQ]FourQlib Curve25519[Ber06]LibSoidum Curve25519 Curve25519 [Ber06] [Ber06] [Ber06] [Ber06] LibSoidum LibSoidum LibSoidum [ipp-crypto] (Intel® CPU support AVX-512 IFMA) [ipp-crypto] (Intel® CPU support AVX-512 IFMA) [ipp-crypto] (Intel® CPU support AVX-512 IFMA) [ipp-crypto] [ipp-crypto] Secp256k1[SEC2-v2]OpenSSL Secp256k1 Secp256k1 [SEC2-v2] [SEC2-v2] [SEC2-v2] [SEC2-v2] OpenSSL OpenSSL OpenSSL SM2GBT.32918.1-2016OpenSSL SM2 SM2 GBT.32918.1-2016 GBT.32918.1-2016 OpenSSL OpenSSL OpenSSL ISO/IEC 14888-3 ISO/IEC 14888-3 ISO/IEC 14888-3 FourQ[FourQ]FourQlib FourQ FourQ [FourQ] [FourQ] [FourQ] [FourQ] FourQlib FourQlib FourQlib "},"43":{"url":"/psi/main/en/development/psi_protocol_intro#ecdh-psi-3p","type":"fragment","title":"PSI Protocols Introduction - ECDH-PSI (3P)","content":"We implement our own three-party PSI protocol based on ECDH. Note that our implementation has known\nleakage, please use at your own risk. Assume Alice, Bob, Charlie (receiver) want to perform 3P PSI, in addition to the final output, our\nprotocol leaks the intersection size of Alice’s data and Bob’s data to Charlie.    Note that at the beginning of ECDH-PSI protocol, we assume the input data from both Alice and Charlie are\nshuffled (It’s not necessary to shuffle Bob’s set). Protocol: \nFor i-th element in its set, Alice calculates H(xi)αH(x_i)^\\alphaH(xi​)α and sends to Bob.\nFor i-th element, Bob calculates H(xi)αβH(x_i)^{\\alpha\\beta}H(xi​)αβ and\nH(yi)βH(y_i)^\\betaH(yi​)β, then shuffles them randomly and sends them to Alice.\nFor i-th element, Alice calculates H(yi)αβH(y_i)^{\\alpha\\beta}H(yi​)αβ and gets the intersection of\nH(xi)αβ∩H(yi)αβH(x_i)^{\\alpha\\beta} \\cap H(y_i)^{\\alpha\\beta}H(xi​)αβ∩H(yi​)αβ (we denote the intersection as\nIαβI^{\\alpha\\beta}Iαβ), then sends IαβI^{\\alpha\\beta}Iαβ to Charlie.\nFor i-th element, Charlie sends H(zi)γH(z_i)^{\\gamma}H(zi​)γ to Bob, Bob calculates and sends to\nAlice H(zi)βγH(z_i)^{\\beta\\gamma}H(zi​)βγ, finally Alice calculates and sends to\nCharlie H(zi)αβγH(z_i)^{\\alpha\\beta\\gamma}H(zi​)αβγ.\nCharlie calculates IαβγI^{\\alpha\\beta\\gamma}Iαβγ and compares IαβγI^{\\alpha\\beta\\gamma}Iαβγ with\nH(zi)αβγH(z_i)^{\\alpha\\beta\\gamma}H(zi​)αβγ.\n For i-th element in its set, Alice calculates H(xi)αH(x_i)^\\alphaH(xi​)α and sends to Bob. H(xi)αH(x_i)^\\alphaH(xi​)α H(xi)αH(x_i)^\\alphaH(xi​)α H(xi)αH(x_i)^\\alpha H(xi)αH(x_i)^\\alpha H(xi)αH(x_i)^\\alpha H(xi)α H ( xi x i )α ) α H(x_i)^\\alpha H(xi​)α H(xi​)α  H ( xi​ x i​ i​ i​ i i  i i ​    )α ) α α α α α  α α For i-th element, Bob calculates H(xi)αβH(x_i)^{\\alpha\\beta}H(xi​)αβ and\nH(yi)βH(y_i)^\\betaH(yi​)β, then shuffles them randomly and sends them to Alice. H(xi)αβH(x_i)^{\\alpha\\beta}H(xi​)αβ H(xi)αβH(x_i)^{\\alpha\\beta}H(xi​)αβ H(xi)αβH(x_i)^{\\alpha\\beta} H(xi)αβH(x_i)^{\\alpha\\beta} H(xi)αβH(x_i)^{\\alpha\\beta} H(xi)αβ H ( xi x i )αβ ) αβ α β H(x_i)^{\\alpha\\beta} H(xi​)αβ H(xi​)αβ  H ( xi​ x i​ i​ i​ i i  i i ​    )αβ ) αβ αβ αβ αβ αβ  αβ αβ α β H(yi)βH(y_i)^\\betaH(yi​)β H(yi)βH(y_i)^\\betaH(yi​)β H(yi)βH(y_i)^\\beta H(yi)βH(y_i)^\\beta H(yi)βH(y_i)^\\beta H(yi)β H ( yi y i )β ) β H(y_i)^\\beta H(yi​)β H(yi​)β  H ( yi​ y i​ i​ i​ i i  i i ​    )β ) β β β β β  β β For i-th element, Alice calculates H(yi)αβH(y_i)^{\\alpha\\beta}H(yi​)αβ and gets the intersection of\nH(xi)αβ∩H(yi)αβH(x_i)^{\\alpha\\beta} \\cap H(y_i)^{\\alpha\\beta}H(xi​)αβ∩H(yi​)αβ (we denote the intersection as\nIαβI^{\\alpha\\beta}Iαβ), then sends IαβI^{\\alpha\\beta}Iαβ to Charlie. H(yi)αβH(y_i)^{\\alpha\\beta}H(yi​)αβ H(yi)αβH(y_i)^{\\alpha\\beta}H(yi​)αβ H(yi)αβH(y_i)^{\\alpha\\beta} H(yi)αβH(y_i)^{\\alpha\\beta} H(yi)αβH(y_i)^{\\alpha\\beta} H(yi)αβ H ( yi y i )αβ ) αβ α β H(y_i)^{\\alpha\\beta} H(yi​)αβ H(yi​)αβ  H ( yi​ y i​ i​ i​ i i  i i ​    )αβ ) αβ αβ αβ αβ αβ  αβ αβ α β H(xi)αβ∩H(yi)αβH(x_i)^{\\alpha\\beta} \\cap H(y_i)^{\\alpha\\beta}H(xi​)αβ∩H(yi​)αβ H(xi)αβ∩H(yi)αβH(x_i)^{\\alpha\\beta} \\cap H(y_i)^{\\alpha\\beta}H(xi​)αβ∩H(yi​)αβ H(xi)αβ∩H(yi)αβH(x_i)^{\\alpha\\beta} \\cap H(y_i)^{\\alpha\\beta} H(xi)αβ∩H(yi)αβH(x_i)^{\\alpha\\beta} \\cap H(y_i)^{\\alpha\\beta} H(xi)αβ∩H(yi)αβH(x_i)^{\\alpha\\beta} \\cap H(y_i)^{\\alpha\\beta} H(xi)αβ∩H(yi)αβ H ( xi x i )αβ ) αβ α β ∩ H ( yi y i )αβ ) αβ α β H(x_i)^{\\alpha\\beta} \\cap H(y_i)^{\\alpha\\beta} H(xi​)αβ∩H(yi​)αβ H(xi​)αβ∩  H ( xi​ x i​ i​ i​ i i  i i ​    )αβ ) αβ αβ αβ αβ αβ  αβ αβ α β  ∩  H(yi​)αβ  H ( yi​ y i​ i​ i​ i i  i i ​    )αβ ) αβ αβ αβ αβ αβ  αβ αβ α β IαβI^{\\alpha\\beta}Iαβ IαβI^{\\alpha\\beta}Iαβ IαβI^{\\alpha\\beta} IαβI^{\\alpha\\beta} IαβI^{\\alpha\\beta} Iαβ Iαβ I αβ α β I^{\\alpha\\beta} Iαβ Iαβ  Iαβ I αβ αβ αβ αβ αβ  αβ αβ α β IαβI^{\\alpha\\beta}Iαβ IαβI^{\\alpha\\beta}Iαβ IαβI^{\\alpha\\beta} IαβI^{\\alpha\\beta} IαβI^{\\alpha\\beta} Iαβ Iαβ I αβ α β I^{\\alpha\\beta} Iαβ Iαβ  Iαβ I αβ αβ αβ αβ αβ  αβ αβ α β For i-th element, Charlie sends H(zi)γH(z_i)^{\\gamma}H(zi​)γ to Bob, Bob calculates and sends to\nAlice H(zi)βγH(z_i)^{\\beta\\gamma}H(zi​)βγ, finally Alice calculates and sends to\nCharlie H(zi)αβγH(z_i)^{\\alpha\\beta\\gamma}H(zi​)αβγ. H(zi)γH(z_i)^{\\gamma}H(zi​)γ H(zi)γH(z_i)^{\\gamma}H(zi​)γ H(zi)γH(z_i)^{\\gamma} H(zi)γH(z_i)^{\\gamma} H(zi)γH(z_i)^{\\gamma} H(zi)γ H ( zi z i )γ ) γ H(z_i)^{\\gamma} H(zi​)γ H(zi​)γ  H ( zi​ z i​ i​ i​ i i  i i ​    )γ ) γ γ γ γ γ  γ γ γ H(zi)βγH(z_i)^{\\beta\\gamma}H(zi​)βγ H(zi)βγH(z_i)^{\\beta\\gamma}H(zi​)βγ H(zi)βγH(z_i)^{\\beta\\gamma} H(zi)βγH(z_i)^{\\beta\\gamma} H(zi)βγH(z_i)^{\\beta\\gamma} H(zi)βγ H ( zi z i )βγ ) βγ β γ H(z_i)^{\\beta\\gamma} H(zi​)βγ H(zi​)βγ  H ( zi​ z i​ i​ i​ i i  i i ​    )βγ ) βγ βγ βγ βγ βγ  βγ βγ β γ H(zi)αβγH(z_i)^{\\alpha\\beta\\gamma}H(zi​)αβγ H(zi)αβγH(z_i)^{\\alpha\\beta\\gamma}H(zi​)αβγ H(zi)αβγH(z_i)^{\\alpha\\beta\\gamma} H(zi)αβγH(z_i)^{\\alpha\\beta\\gamma} H(zi)αβγH(z_i)^{\\alpha\\beta\\gamma} H(zi)αβγ H ( zi z i )αβγ ) αβγ α β γ H(z_i)^{\\alpha\\beta\\gamma} H(zi​)αβγ H(zi​)αβγ  H ( zi​ z i​ i​ i​ i i  i i ​    )αβγ ) αβγ αβγ αβγ αβγ αβγ  αβγ αβγ α β γ Charlie calculates IαβγI^{\\alpha\\beta\\gamma}Iαβγ and compares IαβγI^{\\alpha\\beta\\gamma}Iαβγ with\nH(zi)αβγH(z_i)^{\\alpha\\beta\\gamma}H(zi​)αβγ. IαβγI^{\\alpha\\beta\\gamma}Iαβγ IαβγI^{\\alpha\\beta\\gamma}Iαβγ IαβγI^{\\alpha\\beta\\gamma} IαβγI^{\\alpha\\beta\\gamma} IαβγI^{\\alpha\\beta\\gamma} Iαβγ Iαβγ I αβγ α β γ I^{\\alpha\\beta\\gamma} Iαβγ Iαβγ  Iαβγ I αβγ αβγ αβγ αβγ αβγ  αβγ αβγ α β γ IαβγI^{\\alpha\\beta\\gamma}Iαβγ IαβγI^{\\alpha\\beta\\gamma}Iαβγ IαβγI^{\\alpha\\beta\\gamma} IαβγI^{\\alpha\\beta\\gamma} IαβγI^{\\alpha\\beta\\gamma} Iαβγ Iαβγ I αβγ α β γ I^{\\alpha\\beta\\gamma} Iαβγ Iαβγ  Iαβγ I αβγ αβγ αβγ αβγ αβγ  αβγ αβγ α β γ H(zi)αβγH(z_i)^{\\alpha\\beta\\gamma}H(zi​)αβγ H(zi)αβγH(z_i)^{\\alpha\\beta\\gamma}H(zi​)αβγ H(zi)αβγH(z_i)^{\\alpha\\beta\\gamma} H(zi)αβγH(z_i)^{\\alpha\\beta\\gamma} H(zi)αβγH(z_i)^{\\alpha\\beta\\gamma} H(zi)αβγ H ( zi z i )αβγ ) αβγ α β γ H(z_i)^{\\alpha\\beta\\gamma} H(zi​)αβγ H(zi​)αβγ  H ( zi​ z i​ i​ i​ i i  i i ​    )αβγ ) αβγ αβγ αβγ αβγ αβγ  αβγ αβγ α β γ "},"44":{"url":"/psi/main/en/development/psi_protocol_intro#kkrt16-psi","type":"fragment","title":"PSI Protocols Introduction - KKRT16-PSI","content":"[KKRT16] is semi-honest OT-based PSI, based on OT Extension, BaRK-OPRF and CuckooHash.\n[KKRT16] is the first PSI protocol requiring only one minute for the case of larger sets\n( 2242^{24}224 items each) of long strings (128 bits). [KKRT16] [KKRT16] 2242^{24}224 2242^{24}224 2242^{24} 2242^{24} 2242^{24} 224 224 2 24 2^{24} 224 224  224 2 24 24 24 24 24  24 24 24 We use 3-way stash-less CuckooHash proposed in [PSZ18]. [PSZ18]    \nSender and Receiver Agree on CuckooHash h1,h2,h3:{0,1}∗→[m]h_1,h_2,h_3: {\\{0,1\\}}^{*} \\rightarrow [m]h1​,h2​,h3​:{0,1}∗→[m]\nReceiver inserts each x into bin h1(x)h_1(x)h1​(x), h2(x)h_2(x)h2​(x) or h3(x)h_3(x)h3​(x)\nSender inserts each y into bin h1(y)h_1(y)h1​(y), h2(y)h_2(y)h2​(y) and h3(y)h_3(y)h3​(y)\nRun BaRK-OPRF, Receiver gets Fs,ki(x)F_{s,k_i}(x)Fs,ki​​(x),Sender gets Fs,ki(y)F_{s,k_i}(y)Fs,ki​​(y), for binibin_ibini​\nSender sends all {Fs,ki(y)}\\{F_{s,k_i}(y)\\}{Fs,ki​​(y)} values to Receiver\nReceiver compares two BaRK-OPRFs set and obtains the intersection.\n Sender and Receiver Agree on CuckooHash h1,h2,h3:{0,1}∗→[m]h_1,h_2,h_3: {\\{0,1\\}}^{*} \\rightarrow [m]h1​,h2​,h3​:{0,1}∗→[m] h1,h2,h3:{0,1}∗→[m]h_1,h_2,h_3: {\\{0,1\\}}^{*} \\rightarrow [m]h1​,h2​,h3​:{0,1}∗→[m] h1,h2,h3:{0,1}∗→[m]h_1,h_2,h_3: {\\{0,1\\}}^{*} \\rightarrow [m]h1​,h2​,h3​:{0,1}∗→[m] h1,h2,h3:{0,1}∗→[m]h_1,h_2,h_3: {\\{0,1\\}}^{*} \\rightarrow [m] h1,h2,h3:{0,1}∗→[m]h_1,h_2,h_3: {\\{0,1\\}}^{*} \\rightarrow [m] h1,h2,h3:{0,1}∗→[m]h_1,h_2,h_3: {\\{0,1\\}}^{*} \\rightarrow [m] h1,h2,h3:{0,1}∗→[m] h1 h 1 , h2 h 2 , h3 h 3 : {0,1}∗ {0,1} { 0 , 1 } ∗ → [ m ] h_1,h_2,h_3: {\\{0,1\\}}^{*} \\rightarrow [m] h1​,h2​,h3​:{0,1}∗→[m] h1​,h2​,h3​:  h1​ h 1​ 1​ 1​ 1 1  1 1 ​    ,  h2​ h 2​ 2​ 2​ 2 2  2 2 ​    ,  h3​ h 3​ 3​ 3​ 3 3  3 3 ​     :  {0,1}∗→  {0,1}∗ {0,1} { 0 ,  1 } ∗ ∗ ∗ ∗ ∗  ∗ ∗ ∗  →  [m]  [ m ] Receiver inserts each x into bin h1(x)h_1(x)h1​(x), h2(x)h_2(x)h2​(x) or h3(x)h_3(x)h3​(x) h1(x)h_1(x)h1​(x) h1(x)h_1(x)h1​(x) h1(x)h_1(x) h1(x)h_1(x) h1(x)h_1(x) h1(x) h1 h 1 ( x ) h_1(x) h1​(x) h1​(x)  h1​ h 1​ 1​ 1​ 1 1  1 1 ​    ( x ) h2(x)h_2(x)h2​(x) h2(x)h_2(x)h2​(x) h2(x)h_2(x) h2(x)h_2(x) h2(x)h_2(x) h2(x) h2 h 2 ( x ) h_2(x) h2​(x) h2​(x)  h2​ h 2​ 2​ 2​ 2 2  2 2 ​    ( x ) h3(x)h_3(x)h3​(x) h3(x)h_3(x)h3​(x) h3(x)h_3(x) h3(x)h_3(x) h3(x)h_3(x) h3(x) h3 h 3 ( x ) h_3(x) h3​(x) h3​(x)  h3​ h 3​ 3​ 3​ 3 3  3 3 ​    ( x ) Sender inserts each y into bin h1(y)h_1(y)h1​(y), h2(y)h_2(y)h2​(y) and h3(y)h_3(y)h3​(y) h1(y)h_1(y)h1​(y) h1(y)h_1(y)h1​(y) h1(y)h_1(y) h1(y)h_1(y) h1(y)h_1(y) h1(y) h1 h 1 ( y ) h_1(y) h1​(y) h1​(y)  h1​ h 1​ 1​ 1​ 1 1  1 1 ​    ( y ) h2(y)h_2(y)h2​(y) h2(y)h_2(y)h2​(y) h2(y)h_2(y) h2(y)h_2(y) h2(y)h_2(y) h2(y) h2 h 2 ( y ) h_2(y) h2​(y) h2​(y)  h2​ h 2​ 2​ 2​ 2 2  2 2 ​    ( y ) h3(y)h_3(y)h3​(y) h3(y)h_3(y)h3​(y) h3(y)h_3(y) h3(y)h_3(y) h3(y)h_3(y) h3(y) h3 h 3 ( y ) h_3(y) h3​(y) h3​(y)  h3​ h 3​ 3​ 3​ 3 3  3 3 ​    ( y ) Run BaRK-OPRF, Receiver gets Fs,ki(x)F_{s,k_i}(x)Fs,ki​​(x),Sender gets Fs,ki(y)F_{s,k_i}(y)Fs,ki​​(y), for binibin_ibini​ Fs,ki(x)F_{s,k_i}(x)Fs,ki​​(x) Fs,ki(x)F_{s,k_i}(x)Fs,ki​​(x) Fs,ki(x)F_{s,k_i}(x) Fs,ki(x)F_{s,k_i}(x) Fs,ki(x)F_{s,k_i}(x) Fs,ki(x) Fs,ki F s,ki s , ki k i ( x ) F_{s,k_i}(x) Fs,ki​​(x) Fs,ki​​(x)  Fs,ki​​ F s,ki​​ s,ki​​ s,ki​​ s,ki​ s,ki​  s,ki​ s,ki​ s , ki​ k i​ i​ i​ i i  i i ​    ​    ( x ) Fs,ki(y)F_{s,k_i}(y)Fs,ki​​(y) Fs,ki(y)F_{s,k_i}(y)Fs,ki​​(y) Fs,ki(y)F_{s,k_i}(y) Fs,ki(y)F_{s,k_i}(y) Fs,ki(y)F_{s,k_i}(y) Fs,ki(y) Fs,ki F s,ki s , ki k i ( y ) F_{s,k_i}(y) Fs,ki​​(y) Fs,ki​​(y)  Fs,ki​​ F s,ki​​ s,ki​​ s,ki​​ s,ki​ s,ki​  s,ki​ s,ki​ s , ki​ k i​ i​ i​ i i  i i ​    ​    ( y ) binibin_ibini​ binibin_ibini​ binibin_i binibin_i binibin_i bini b i ni n i bin_i bini​ bini​  bi ni​ n i​ i​ i​ i i  i i ​    Sender sends all {Fs,ki(y)}\\{F_{s,k_i}(y)\\}{Fs,ki​​(y)} values to Receiver {Fs,ki(y)}\\{F_{s,k_i}(y)\\}{Fs,ki​​(y)} {Fs,ki(y)}\\{F_{s,k_i}(y)\\}{Fs,ki​​(y)} {Fs,ki(y)}\\{F_{s,k_i}(y)\\} {Fs,ki(y)}\\{F_{s,k_i}(y)\\} {Fs,ki(y)}\\{F_{s,k_i}(y)\\} {Fs,ki(y)} { Fs,ki F s,ki s , ki k i ( y ) } \\{F_{s,k_i}(y)\\} {Fs,ki​​(y)} {Fs,ki​​(y)}  { Fs,ki​​ F s,ki​​ s,ki​​ s,ki​​ s,ki​ s,ki​  s,ki​ s,ki​ s , ki​ k i​ i​ i​ i i  i i ​    ​    ( y )} Receiver compares two BaRK-OPRFs set and obtains the intersection. "},"45":{"url":"/psi/main/en/development/psi_protocol_intro#differentially-private-psi","type":"fragment","title":"PSI Protocols Introduction - Differentially Private PSI","content":"We also implement a Differentially Private (DP) Private Set Intersection (PSI)\nProtocol. Our implementation bases on ECDH-PSI, and provides: \nDifferentially private PSI results.\n Differentially private PSI results. This feature is currently under test, please use at your own risk! Why PSI with differentially private results? If we want a scheme that protects\nboth the private inputs and output privacy, an ideal way is to use circuit\nPSI, which is a typical PSI variant that allows secure computation (e.g. MPC or\nHE) on the PSI result without revealing it. PSTY19 However those protocols are expensive\nin terms of efficiency. circuit\nPSI PSTY19 DP-PSI is a way of utilizing the up-sampling and sub-sampling mechanism to add\ncalibrated noises to the PSI results, without revealing its concise value. The protocol is listed below, assume Alice has a (hashed and shuffled) set\nXXX and Bob has a (hashed and shuffled) YYY. XXX XXX XX XX XX X X X X X  X YYY YYY YY YY YY Y Y Y Y Y  Y    Note that we use “encrypt” to denote the process of calculating y←xay\\gets\nx^ay←xa. y←xay\\gets\nx^ay←xa y←xay\\gets\nx^ay←xa y←xay\\gets\nx^a y←xay\\gets\nx^a y←xay\\gets\nx^a y←xa y ← xa x a y\\gets\nx^a y←xa y←  y  ←  xa  xa x a a a a a  a a Protocol: \nAlice and Bob first encrypts their own dataset, and gets XaX^aXa and\nYbY^bYb separately.\nAlice sends XaX^aXa to Bob.\nBob performs random subsampling on YbY^bYb, gets Y∗bY_*^bY∗b​ and sends it\nto Alice. In the meantime, on receiving XaX^aXa from Alice, Bob\nre-encrypts it with bbb, gets XabX^{ab}Xab. Then it samples a random\npermutation π\\piπ to permute Alice’s set, and sends permuted\nπ(Xab)\\pi(X^{ab})π(Xab) back to Alice.\nOn receiving Y∗bY_*^bY∗b​ and π(Xab)\\pi(X^{ab})π(Xab) from Bob, Alice re-encrypts\nY∗bY_*^bY∗b​ and gets Y∗abY_*^{ab}Y∗ab​, then calculates the intersection\nI∗ab←π(Xab)∩Y∗abI_*^{ab}\\gets\\pi(X^{ab})\\cap Y_*^{ab}I∗ab​←π(Xab)∩Y∗ab​.\nAlice randomly subsamples the intersection, gets I∗∗abI_{**}^{ab}I∗∗ab​, and\nthen finds their corresponding index in Y∗bY_*^bY∗b​. Then randomly adds\nnon-intersection index to this set.\nAlice sends the index set to Bob, then Bob reveals the final results.\n Alice and Bob first encrypts their own dataset, and gets XaX^aXa and\nYbY^bYb separately. XaX^aXa XaX^aXa XaX^a XaX^a XaX^a Xa Xa X a X^a Xa Xa  Xa X a a a a a  a a YbY^bYb YbY^bYb YbY^b YbY^b YbY^b Yb Yb Y b Y^b Yb Yb  Yb Y b b b b b  b b Alice sends XaX^aXa to Bob. XaX^aXa XaX^aXa XaX^a XaX^a XaX^a Xa Xa X a X^a Xa Xa  Xa X a a a a a  a a Bob performs random subsampling on YbY^bYb, gets Y∗bY_*^bY∗b​ and sends it\nto Alice. In the meantime, on receiving XaX^aXa from Alice, Bob\nre-encrypts it with bbb, gets XabX^{ab}Xab. Then it samples a random\npermutation π\\piπ to permute Alice’s set, and sends permuted\nπ(Xab)\\pi(X^{ab})π(Xab) back to Alice. YbY^bYb YbY^bYb YbY^b YbY^b YbY^b Yb Yb Y b Y^b Yb Yb  Yb Y b b b b b  b b Y∗bY_*^bY∗b​ Y∗bY_*^bY∗b​ Y∗bY_*^b Y∗bY_*^b Y∗bY_*^b Y∗b Y∗b Y ∗ b Y_*^b Y∗b​ Y∗b​  Y∗b​ Y ∗b​ ∗b​ ∗b​ ∗b ∗  ∗ ∗ b  b b ​    XaX^aXa XaX^aXa XaX^a XaX^a XaX^a Xa Xa X a X^a Xa Xa  Xa X a a a a a  a a bbb bbb bb bb bb b b b b b  b XabX^{ab}Xab XabX^{ab}Xab XabX^{ab} XabX^{ab} XabX^{ab} Xab Xab X ab a b X^{ab} Xab Xab  Xab X ab ab ab ab ab  ab ab ab π\\piπ π\\piπ π\\pi π\\pi π\\pi π π \\pi π π  π π(Xab)\\pi(X^{ab})π(Xab) π(Xab)\\pi(X^{ab})π(Xab) π(Xab)\\pi(X^{ab}) π(Xab)\\pi(X^{ab}) π(Xab)\\pi(X^{ab}) π(Xab) π ( Xab X ab a b ) \\pi(X^{ab}) π(Xab) π(Xab)  π ( Xab X ab ab ab ab ab  ab ab ab ) On receiving Y∗bY_*^bY∗b​ and π(Xab)\\pi(X^{ab})π(Xab) from Bob, Alice re-encrypts\nY∗bY_*^bY∗b​ and gets Y∗abY_*^{ab}Y∗ab​, then calculates the intersection\nI∗ab←π(Xab)∩Y∗abI_*^{ab}\\gets\\pi(X^{ab})\\cap Y_*^{ab}I∗ab​←π(Xab)∩Y∗ab​. Y∗bY_*^bY∗b​ Y∗bY_*^bY∗b​ Y∗bY_*^b Y∗bY_*^b Y∗bY_*^b Y∗b Y∗b Y ∗ b Y_*^b Y∗b​ Y∗b​  Y∗b​ Y ∗b​ ∗b​ ∗b​ ∗b ∗  ∗ ∗ b  b b ​    π(Xab)\\pi(X^{ab})π(Xab) π(Xab)\\pi(X^{ab})π(Xab) π(Xab)\\pi(X^{ab}) π(Xab)\\pi(X^{ab}) π(Xab)\\pi(X^{ab}) π(Xab) π ( Xab X ab a b ) \\pi(X^{ab}) π(Xab) π(Xab)  π ( Xab X ab ab ab ab ab  ab ab ab ) Y∗bY_*^bY∗b​ Y∗bY_*^bY∗b​ Y∗bY_*^b Y∗bY_*^b Y∗bY_*^b Y∗b Y∗b Y ∗ b Y_*^b Y∗b​ Y∗b​  Y∗b​ Y ∗b​ ∗b​ ∗b​ ∗b ∗  ∗ ∗ b  b b ​    Y∗abY_*^{ab}Y∗ab​ Y∗abY_*^{ab}Y∗ab​ Y∗abY_*^{ab} Y∗abY_*^{ab} Y∗abY_*^{ab} Y∗ab Y∗ab Y ∗ ab a b Y_*^{ab} Y∗ab​ Y∗ab​  Y∗ab​ Y ∗ab​ ∗ab​ ∗ab​ ∗ab ∗  ∗ ∗ ab  ab ab ab ​    I∗ab←π(Xab)∩Y∗abI_*^{ab}\\gets\\pi(X^{ab})\\cap Y_*^{ab}I∗ab​←π(Xab)∩Y∗ab​ I∗ab←π(Xab)∩Y∗abI_*^{ab}\\gets\\pi(X^{ab})\\cap Y_*^{ab}I∗ab​←π(Xab)∩Y∗ab​ I∗ab←π(Xab)∩Y∗abI_*^{ab}\\gets\\pi(X^{ab})\\cap Y_*^{ab} I∗ab←π(Xab)∩Y∗abI_*^{ab}\\gets\\pi(X^{ab})\\cap Y_*^{ab} I∗ab←π(Xab)∩Y∗abI_*^{ab}\\gets\\pi(X^{ab})\\cap Y_*^{ab} I∗ab←π(Xab)∩Y∗ab I∗ab I ∗ ab a b ← π ( Xab X ab a b ) ∩ Y∗ab Y ∗ ab a b I_*^{ab}\\gets\\pi(X^{ab})\\cap Y_*^{ab} I∗ab​←π(Xab)∩Y∗ab​ I∗ab​←  I∗ab​ I ∗ab​ ∗ab​ ∗ab​ ∗ab ∗  ∗ ∗ ab  ab ab ab ​     ←  π(Xab)∩  π ( Xab X ab ab ab ab ab  ab ab ab )  ∩  Y∗ab​  Y∗ab​ Y ∗ab​ ∗ab​ ∗ab​ ∗ab ∗  ∗ ∗ ab  ab ab ab ​    Alice randomly subsamples the intersection, gets I∗∗abI_{**}^{ab}I∗∗ab​, and\nthen finds their corresponding index in Y∗bY_*^bY∗b​. Then randomly adds\nnon-intersection index to this set. I∗∗abI_{**}^{ab}I∗∗ab​ I∗∗abI_{**}^{ab}I∗∗ab​ I∗∗abI_{**}^{ab} I∗∗abI_{**}^{ab} I∗∗abI_{**}^{ab} I∗∗ab I∗∗ab I ∗∗ ∗ ∗ ab a b I_{**}^{ab} I∗∗ab​ I∗∗ab​  I∗∗ab​ I ∗∗ab​ ∗∗ab​ ∗∗ab​ ∗∗ab ∗∗  ∗∗ ∗∗ ∗∗ ab  ab ab ab ​    Y∗bY_*^bY∗b​ Y∗bY_*^bY∗b​ Y∗bY_*^b Y∗bY_*^b Y∗bY_*^b Y∗b Y∗b Y ∗ b Y_*^b Y∗b​ Y∗b​  Y∗b​ Y ∗b​ ∗b​ ∗b​ ∗b ∗  ∗ ∗ b  b b ​    Alice sends the index set to Bob, then Bob reveals the final results. In the end, this scheme ensures that the receiver (Bob) only learns the noised\nintersection, without the ability of pointing out whether an element is in the\nactual set intersection or not. Note that multiple invocations of DP-PSI inevitably weaken the privacy\nprotection, therefore, we strongly suggest that user should implement a\nprotection mechanism to prevent multiple DP-PSI executions on the same input\nvalue. Intel(R) Xeon(R) Platinum2^202^212^222^232^24DP-PSI9.806s20.134s42.067s86.580s170.359s Intel(R) Xeon(R) Platinum2^202^212^222^232^24 Intel(R) Xeon(R) Platinum2^202^212^222^232^24 Intel(R) Xeon(R) Platinum Intel(R) Xeon(R) Platinum 2^20 2^20 2^21 2^21 2^22 2^22 2^23 2^23 2^24 2^24 DP-PSI9.806s20.134s42.067s86.580s170.359s DP-PSI9.806s20.134s42.067s86.580s170.359s DP-PSI DP-PSI 9.806s 9.806s 20.134s 20.134s 42.067s 42.067s 86.580s 86.580s 170.359s 170.359s For DP, our default privacy protection strength is ϵ=3\\epsilon=3ϵ=3. For more\ndetails, please refer to the original paper: [DP-PSI] ϵ=3\\epsilon=3ϵ=3 ϵ=3\\epsilon=3ϵ=3 ϵ=3\\epsilon=3 ϵ=3\\epsilon=3 ϵ=3\\epsilon=3 ϵ=3 ϵ = 3 \\epsilon=3 ϵ=3 ϵ=  ϵ  =  3  3 [DP-PSI] "},"46":{"url":"/psi/main/en/development/psi_protocol_intro#unbalanced-psi","type":"fragment","title":"PSI Protocols Introduction - Unbalanced PSI","content":""},"47":{"url":"/psi/main/en/development/psi_protocol_intro#ecdh-oprf-based-psi","type":"fragment","title":"PSI Protocols Introduction - Ecdh-OPRF based PSI","content":"[RA18] section 3 introduces Basic Unbalanced PSI(Ecdh-OPRF based) protocol proposed in [BBCD+11] that relaxes\nthe security of the [JL10] to be secure against semi-honest adversaries. The protocol has two phases, the preprocessing phase and the online phase. The\nauthors introduced many optimizations to push as much computation and communication cost to\nthe preprocessing phase as possible. [RA18] [BBCD+11] [JL10] An Oblivious Pseudorandom Function (OPRF) is a two-party protocol between client and server for computing the\noutput of a Pseudorandom Function (PRF). [draft-irtf-cfrg-voprf-10] specifies OPRF, VOPRF, and POPRF protocols\nbuilt upon prime-order groups. [draft-irtf-cfrg-voprf-10]    \nOffline Phase\n\nFor each element yiy_iyi​ in its set, Bob applies PRF using\nprivate key β\\betaβ, i.e. computing H2(yi,H1(yi)β)H_2(y_i,{H_1(y_i)}^\\beta)H2​(yi​,H1​(yi​)β) .\nBob sends {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2}{{H2​(yi​,H1​(yi​)β)}}i=1n2​​ to Alice in shuffled order.\n\n\nOnline Phase\n\nFor each element xix_ixi​ in its set, Alice applies the hash function and then exponentiates\nit using its blind key rir_iri​, thus computing H1(xi)ri{H_1(x_i)}^{r_i}H1​(xi​)ri​. Alice sends\n{{H1(xi)}ri}i=1n1\\{\\{H_1(x_i)\\}^{r_i}\\}_{i=1}^{n_1}{{H1​(xi​)}ri​}i=1n1​​ to Bob.\nFor each element H1(xi)riH_1(x_i)^{r_i}H1​(xi​)ri​ received from Alice in the previous step, Bob exponentiates\nit using its key β\\betaβ, computing H1(xi)riβ{H_1(x_i)}^{r_i\\beta}H1​(xi​)ri​β.\nBob sends {{H1(xi)}{ri}β}i=1n1{\\{\\{H_1(x_i)\\}^{\\{r_i\\}\\beta}\\}}_{i=1}^{n_1}{{H1​(xi​)}{ri​}β}i=1n1​​ to Alice.\nAlice receives {{H1(xi)}riβ}i=1n1{\\{\\{H_1(x_i)\\}^{r_i\\beta}\\}}_{i=1}^{n_1}{{H1​(xi​)}ri​β}i=1n1​​ from Bob, and unblinds it using rir_iri​,\ngets {{{H1(xi)}β}}i=1n1\\{\\{\\{H_1(x_i)\\}^\\beta\\}\\}_{i=1}^{n_1}{{{H1​(xi​)}β}}i=1n1​​, computes OPRF {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1}{{H2​(xi​,H1​(xi​)β)}}i=1n1​​.\nAlice compares two sets {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1}{{H2​(xi​,H1​(xi​)β)}}i=1n1​​\nand {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2}{{H2​(yi​,H1​(yi​)β)}}i=1n2​​ and gets intersection.\n\n\n Offline Phase\n\nFor each element yiy_iyi​ in its set, Bob applies PRF using\nprivate key β\\betaβ, i.e. computing H2(yi,H1(yi)β)H_2(y_i,{H_1(y_i)}^\\beta)H2​(yi​,H1​(yi​)β) .\nBob sends {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2}{{H2​(yi​,H1​(yi​)β)}}i=1n2​​ to Alice in shuffled order.\n\n \nFor each element yiy_iyi​ in its set, Bob applies PRF using\nprivate key β\\betaβ, i.e. computing H2(yi,H1(yi)β)H_2(y_i,{H_1(y_i)}^\\beta)H2​(yi​,H1​(yi​)β) .\nBob sends {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2}{{H2​(yi​,H1​(yi​)β)}}i=1n2​​ to Alice in shuffled order.\n For each element yiy_iyi​ in its set, Bob applies PRF using\nprivate key β\\betaβ, i.e. computing H2(yi,H1(yi)β)H_2(y_i,{H_1(y_i)}^\\beta)H2​(yi​,H1​(yi​)β) . yiy_iyi​ yiy_iyi​ yiy_i yiy_i yiy_i yi yi y i y_i yi​ yi​  yi​ y i​ i​ i​ i i  i i ​    β\\betaβ β\\betaβ β\\beta β\\beta β\\beta β β \\beta β β  β H2(yi,H1(yi)β)H_2(y_i,{H_1(y_i)}^\\beta)H2​(yi​,H1​(yi​)β) H2(yi,H1(yi)β)H_2(y_i,{H_1(y_i)}^\\beta)H2​(yi​,H1​(yi​)β) H2(yi,H1(yi)β)H_2(y_i,{H_1(y_i)}^\\beta) H2(yi,H1(yi)β)H_2(y_i,{H_1(y_i)}^\\beta) H2(yi,H1(yi)β)H_2(y_i,{H_1(y_i)}^\\beta) H2(yi,H1(yi)β) H2 H 2 ( yi y i , H1(yi)β H1(yi) H1 H 1 ( yi y i ) β ) H_2(y_i,{H_1(y_i)}^\\beta) H2​(yi​,H1​(yi​)β) H2​(yi​,H1​(yi​)β)  H2​ H 2​ 2​ 2​ 2 2  2 2 ​    ( yi​ y i​ i​ i​ i i  i i ​    ,  H1​(yi​)β H1​(yi​) H1​ H 1​ 1​ 1​ 1 1  1 1 ​    ( yi​ y i​ i​ i​ i i  i i ​    ) β β β β β  β β ) Bob sends {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2}{{H2​(yi​,H1​(yi​)β)}}i=1n2​​ to Alice in shuffled order. {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2}{{H2​(yi​,H1​(yi​)β)}}i=1n2​​ {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2}{{H2​(yi​,H1​(yi​)β)}}i=1n2​​ {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2} {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2} {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2} {{H2(yi,H1(yi)β)}}i=1n2 { { H2 H 2 ( yi y i , H1(yi)β H1(yi) H1 H 1 ( yi y i ) β ) } }i=1n2 } i=1 i = 1 n2 n 2 \\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2} {{H2​(yi​,H1​(yi​)β)}}i=1n2​​ {{H2​(yi​,H1​(yi​)β)}}i=1n2​​  {{ H2​ H 2​ 2​ 2​ 2 2  2 2 ​    ( yi​ y i​ i​ i​ i i  i i ​    ,  H1​(yi​)β H1​(yi​) H1​ H 1​ 1​ 1​ 1 1  1 1 ​    ( yi​ y i​ i​ i​ i i  i i ​    ) β β β β β  β β )} }i=1n2​​ } i=1n2​​ i=1n2​​ i=1n2​​ i=1n2​ i=1  i=1 i=1 i = 1 n2​  n2​ n2​ n2​ n 2​ 2​ 2​ 2 2  2 2 ​    ​    Online Phase\n\nFor each element xix_ixi​ in its set, Alice applies the hash function and then exponentiates\nit using its blind key rir_iri​, thus computing H1(xi)ri{H_1(x_i)}^{r_i}H1​(xi​)ri​. Alice sends\n{{H1(xi)}ri}i=1n1\\{\\{H_1(x_i)\\}^{r_i}\\}_{i=1}^{n_1}{{H1​(xi​)}ri​}i=1n1​​ to Bob.\nFor each element H1(xi)riH_1(x_i)^{r_i}H1​(xi​)ri​ received from Alice in the previous step, Bob exponentiates\nit using its key β\\betaβ, computing H1(xi)riβ{H_1(x_i)}^{r_i\\beta}H1​(xi​)ri​β.\nBob sends {{H1(xi)}{ri}β}i=1n1{\\{\\{H_1(x_i)\\}^{\\{r_i\\}\\beta}\\}}_{i=1}^{n_1}{{H1​(xi​)}{ri​}β}i=1n1​​ to Alice.\nAlice receives {{H1(xi)}riβ}i=1n1{\\{\\{H_1(x_i)\\}^{r_i\\beta}\\}}_{i=1}^{n_1}{{H1​(xi​)}ri​β}i=1n1​​ from Bob, and unblinds it using rir_iri​,\ngets {{{H1(xi)}β}}i=1n1\\{\\{\\{H_1(x_i)\\}^\\beta\\}\\}_{i=1}^{n_1}{{{H1​(xi​)}β}}i=1n1​​, computes OPRF {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1}{{H2​(xi​,H1​(xi​)β)}}i=1n1​​.\nAlice compares two sets {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1}{{H2​(xi​,H1​(xi​)β)}}i=1n1​​\nand {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2}{{H2​(yi​,H1​(yi​)β)}}i=1n2​​ and gets intersection.\n\n \nFor each element xix_ixi​ in its set, Alice applies the hash function and then exponentiates\nit using its blind key rir_iri​, thus computing H1(xi)ri{H_1(x_i)}^{r_i}H1​(xi​)ri​. Alice sends\n{{H1(xi)}ri}i=1n1\\{\\{H_1(x_i)\\}^{r_i}\\}_{i=1}^{n_1}{{H1​(xi​)}ri​}i=1n1​​ to Bob.\nFor each element H1(xi)riH_1(x_i)^{r_i}H1​(xi​)ri​ received from Alice in the previous step, Bob exponentiates\nit using its key β\\betaβ, computing H1(xi)riβ{H_1(x_i)}^{r_i\\beta}H1​(xi​)ri​β.\nBob sends {{H1(xi)}{ri}β}i=1n1{\\{\\{H_1(x_i)\\}^{\\{r_i\\}\\beta}\\}}_{i=1}^{n_1}{{H1​(xi​)}{ri​}β}i=1n1​​ to Alice.\nAlice receives {{H1(xi)}riβ}i=1n1{\\{\\{H_1(x_i)\\}^{r_i\\beta}\\}}_{i=1}^{n_1}{{H1​(xi​)}ri​β}i=1n1​​ from Bob, and unblinds it using rir_iri​,\ngets {{{H1(xi)}β}}i=1n1\\{\\{\\{H_1(x_i)\\}^\\beta\\}\\}_{i=1}^{n_1}{{{H1​(xi​)}β}}i=1n1​​, computes OPRF {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1}{{H2​(xi​,H1​(xi​)β)}}i=1n1​​.\nAlice compares two sets {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1}{{H2​(xi​,H1​(xi​)β)}}i=1n1​​\nand {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2}{{H2​(yi​,H1​(yi​)β)}}i=1n2​​ and gets intersection.\n For each element xix_ixi​ in its set, Alice applies the hash function and then exponentiates\nit using its blind key rir_iri​, thus computing H1(xi)ri{H_1(x_i)}^{r_i}H1​(xi​)ri​. Alice sends\n{{H1(xi)}ri}i=1n1\\{\\{H_1(x_i)\\}^{r_i}\\}_{i=1}^{n_1}{{H1​(xi​)}ri​}i=1n1​​ to Bob. xix_ixi​ xix_ixi​ xix_i xix_i xix_i xi xi x i x_i xi​ xi​  xi​ x i​ i​ i​ i i  i i ​    rir_iri​ rir_iri​ rir_i rir_i rir_i ri ri r i r_i ri​ ri​  ri​ r i​ i​ i​ i i  i i ​    H1(xi)ri{H_1(x_i)}^{r_i}H1​(xi​)ri​ H1(xi)ri{H_1(x_i)}^{r_i}H1​(xi​)ri​ H1(xi)ri{H_1(x_i)}^{r_i} H1(xi)ri{H_1(x_i)}^{r_i} H1(xi)ri{H_1(x_i)}^{r_i} H1(xi)ri H1(xi)ri H1(xi) H1 H 1 ( xi x i ) ri r i {H_1(x_i)}^{r_i} H1​(xi​)ri​ H1​(xi​)ri​  H1​(xi​)ri​ H1​(xi​) H1​ H 1​ 1​ 1​ 1 1  1 1 ​    ( xi​ x i​ i​ i​ i i  i i ​    ) ri​ ri​ ri​ ri​ ri​  ri​ ri​ ri​ r i​ i​ i​ i i  i i ​    {{H1(xi)}ri}i=1n1\\{\\{H_1(x_i)\\}^{r_i}\\}_{i=1}^{n_1}{{H1​(xi​)}ri​}i=1n1​​ {{H1(xi)}ri}i=1n1\\{\\{H_1(x_i)\\}^{r_i}\\}_{i=1}^{n_1}{{H1​(xi​)}ri​}i=1n1​​ {{H1(xi)}ri}i=1n1\\{\\{H_1(x_i)\\}^{r_i}\\}_{i=1}^{n_1} {{H1(xi)}ri}i=1n1\\{\\{H_1(x_i)\\}^{r_i}\\}_{i=1}^{n_1} {{H1(xi)}ri}i=1n1\\{\\{H_1(x_i)\\}^{r_i}\\}_{i=1}^{n_1} {{H1(xi)}ri}i=1n1 { { H1 H 1 ( xi x i ) }ri } ri r i }i=1n1 } i=1 i = 1 n1 n 1 \\{\\{H_1(x_i)\\}^{r_i}\\}_{i=1}^{n_1} {{H1​(xi​)}ri​}i=1n1​​ {{H1​(xi​)}ri​}i=1n1​​  {{ H1​ H 1​ 1​ 1​ 1 1  1 1 ​    ( xi​ x i​ i​ i​ i i  i i ​    ) }ri​ } ri​ ri​ ri​ ri​ ri​  ri​ ri​ ri​ r i​ i​ i​ i i  i i ​    }i=1n1​​ } i=1n1​​ i=1n1​​ i=1n1​​ i=1n1​ i=1  i=1 i=1 i = 1 n1​  n1​ n1​ n1​ n 1​ 1​ 1​ 1 1  1 1 ​    ​    For each element H1(xi)riH_1(x_i)^{r_i}H1​(xi​)ri​ received from Alice in the previous step, Bob exponentiates\nit using its key β\\betaβ, computing H1(xi)riβ{H_1(x_i)}^{r_i\\beta}H1​(xi​)ri​β.\nBob sends {{H1(xi)}{ri}β}i=1n1{\\{\\{H_1(x_i)\\}^{\\{r_i\\}\\beta}\\}}_{i=1}^{n_1}{{H1​(xi​)}{ri​}β}i=1n1​​ to Alice. H1(xi)riH_1(x_i)^{r_i}H1​(xi​)ri​ H1(xi)riH_1(x_i)^{r_i}H1​(xi​)ri​ H1(xi)riH_1(x_i)^{r_i} H1(xi)riH_1(x_i)^{r_i} H1(xi)riH_1(x_i)^{r_i} H1(xi)ri H1 H 1 ( xi x i )ri ) ri r i H_1(x_i)^{r_i} H1​(xi​)ri​ H1​(xi​)ri​  H1​ H 1​ 1​ 1​ 1 1  1 1 ​    ( xi​ x i​ i​ i​ i i  i i ​    )ri​ ) ri​ ri​ ri​ ri​ ri​  ri​ ri​ ri​ r i​ i​ i​ i i  i i ​    β\\betaβ β\\betaβ β\\beta β\\beta β\\beta β β \\beta β β  β H1(xi)riβ{H_1(x_i)}^{r_i\\beta}H1​(xi​)ri​β H1(xi)riβ{H_1(x_i)}^{r_i\\beta}H1​(xi​)ri​β H1(xi)riβ{H_1(x_i)}^{r_i\\beta} H1(xi)riβ{H_1(x_i)}^{r_i\\beta} H1(xi)riβ{H_1(x_i)}^{r_i\\beta} H1(xi)riβ H1(xi)riβ H1(xi) H1 H 1 ( xi x i ) riβ ri r i β {H_1(x_i)}^{r_i\\beta} H1​(xi​)ri​β H1​(xi​)ri​β  H1​(xi​)ri​β H1​(xi​) H1​ H 1​ 1​ 1​ 1 1  1 1 ​    ( xi​ x i​ i​ i​ i i  i i ​    ) ri​β ri​β ri​β ri​β ri​β  ri​β ri​β ri​ r i​ i​ i​ i i  i i ​    β {{H1(xi)}{ri}β}i=1n1{\\{\\{H_1(x_i)\\}^{\\{r_i\\}\\beta}\\}}_{i=1}^{n_1}{{H1​(xi​)}{ri​}β}i=1n1​​ {{H1(xi)}{ri}β}i=1n1{\\{\\{H_1(x_i)\\}^{\\{r_i\\}\\beta}\\}}_{i=1}^{n_1}{{H1​(xi​)}{ri​}β}i=1n1​​ {{H1(xi)}{ri}β}i=1n1{\\{\\{H_1(x_i)\\}^{\\{r_i\\}\\beta}\\}}_{i=1}^{n_1} {{H1(xi)}{ri}β}i=1n1{\\{\\{H_1(x_i)\\}^{\\{r_i\\}\\beta}\\}}_{i=1}^{n_1} {{H1(xi)}{ri}β}i=1n1{\\{\\{H_1(x_i)\\}^{\\{r_i\\}\\beta}\\}}_{i=1}^{n_1} {{H1(xi)}{ri}β}i=1n1 {{H1(xi)}{ri}β}i=1n1 {{H1(xi)}{ri}β} { { H1 H 1 ( xi x i ) }{ri}β } {ri}β { ri r i } β } i=1 i = 1 n1 n 1 {\\{\\{H_1(x_i)\\}^{\\{r_i\\}\\beta}\\}}_{i=1}^{n_1} {{H1​(xi​)}{ri​}β}i=1n1​​ {{H1​(xi​)}{ri​}β}i=1n1​​  {{H1​(xi​)}{ri​}β}i=1n1​​ {{H1​(xi​)}{ri​}β} {{ H1​ H 1​ 1​ 1​ 1 1  1 1 ​    ( xi​ x i​ i​ i​ i i  i i ​    ) }{ri​}β } {ri​}β {ri​}β {ri​}β {ri​}β {ri​}β  {ri​}β {ri​}β { ri​ r i​ i​ i​ i i  i i ​    } β } i=1n1​​ i=1n1​​ i=1n1​​ i=1n1​ i=1  i=1 i=1 i = 1 n1​  n1​ n1​ n1​ n 1​ 1​ 1​ 1 1  1 1 ​    ​    Alice receives {{H1(xi)}riβ}i=1n1{\\{\\{H_1(x_i)\\}^{r_i\\beta}\\}}_{i=1}^{n_1}{{H1​(xi​)}ri​β}i=1n1​​ from Bob, and unblinds it using rir_iri​,\ngets {{{H1(xi)}β}}i=1n1\\{\\{\\{H_1(x_i)\\}^\\beta\\}\\}_{i=1}^{n_1}{{{H1​(xi​)}β}}i=1n1​​, computes OPRF {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1}{{H2​(xi​,H1​(xi​)β)}}i=1n1​​. {{H1(xi)}riβ}i=1n1{\\{\\{H_1(x_i)\\}^{r_i\\beta}\\}}_{i=1}^{n_1}{{H1​(xi​)}ri​β}i=1n1​​ {{H1(xi)}riβ}i=1n1{\\{\\{H_1(x_i)\\}^{r_i\\beta}\\}}_{i=1}^{n_1}{{H1​(xi​)}ri​β}i=1n1​​ {{H1(xi)}riβ}i=1n1{\\{\\{H_1(x_i)\\}^{r_i\\beta}\\}}_{i=1}^{n_1} {{H1(xi)}riβ}i=1n1{\\{\\{H_1(x_i)\\}^{r_i\\beta}\\}}_{i=1}^{n_1} {{H1(xi)}riβ}i=1n1{\\{\\{H_1(x_i)\\}^{r_i\\beta}\\}}_{i=1}^{n_1} {{H1(xi)}riβ}i=1n1 {{H1(xi)}riβ}i=1n1 {{H1(xi)}riβ} { { H1 H 1 ( xi x i ) }riβ } riβ ri r i β } i=1 i = 1 n1 n 1 {\\{\\{H_1(x_i)\\}^{r_i\\beta}\\}}_{i=1}^{n_1} {{H1​(xi​)}ri​β}i=1n1​​ {{H1​(xi​)}ri​β}i=1n1​​  {{H1​(xi​)}ri​β}i=1n1​​ {{H1​(xi​)}ri​β} {{ H1​ H 1​ 1​ 1​ 1 1  1 1 ​    ( xi​ x i​ i​ i​ i i  i i ​    ) }ri​β } ri​β ri​β ri​β ri​β ri​β  ri​β ri​β ri​ r i​ i​ i​ i i  i i ​    β } i=1n1​​ i=1n1​​ i=1n1​​ i=1n1​ i=1  i=1 i=1 i = 1 n1​  n1​ n1​ n1​ n 1​ 1​ 1​ 1 1  1 1 ​    ​    rir_iri​ rir_iri​ rir_i rir_i rir_i ri ri r i r_i ri​ ri​  ri​ r i​ i​ i​ i i  i i ​    {{{H1(xi)}β}}i=1n1\\{\\{\\{H_1(x_i)\\}^\\beta\\}\\}_{i=1}^{n_1}{{{H1​(xi​)}β}}i=1n1​​ {{{H1(xi)}β}}i=1n1\\{\\{\\{H_1(x_i)\\}^\\beta\\}\\}_{i=1}^{n_1}{{{H1​(xi​)}β}}i=1n1​​ {{{H1(xi)}β}}i=1n1\\{\\{\\{H_1(x_i)\\}^\\beta\\}\\}_{i=1}^{n_1} {{{H1(xi)}β}}i=1n1\\{\\{\\{H_1(x_i)\\}^\\beta\\}\\}_{i=1}^{n_1} {{{H1(xi)}β}}i=1n1\\{\\{\\{H_1(x_i)\\}^\\beta\\}\\}_{i=1}^{n_1} {{{H1(xi)}β}}i=1n1 { { { H1 H 1 ( xi x i ) }β } β } }i=1n1 } i=1 i = 1 n1 n 1 \\{\\{\\{H_1(x_i)\\}^\\beta\\}\\}_{i=1}^{n_1} {{{H1​(xi​)}β}}i=1n1​​ {{{H1​(xi​)}β}}i=1n1​​  {{{ H1​ H 1​ 1​ 1​ 1 1  1 1 ​    ( xi​ x i​ i​ i​ i i  i i ​    ) }β } β β β β β  β β } }i=1n1​​ } i=1n1​​ i=1n1​​ i=1n1​​ i=1n1​ i=1  i=1 i=1 i = 1 n1​  n1​ n1​ n1​ n 1​ 1​ 1​ 1 1  1 1 ​    ​    {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1}{{H2​(xi​,H1​(xi​)β)}}i=1n1​​ {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1}{{H2​(xi​,H1​(xi​)β)}}i=1n1​​ {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1} {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1} {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1} {{H2(xi,H1(xi)β)}}i=1n1 { { H2 H 2 ( xi x i , H1(xi)β H1(xi) H1 H 1 ( xi x i ) β ) } }i=1n1 } i=1 i = 1 n1 n 1 \\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1} {{H2​(xi​,H1​(xi​)β)}}i=1n1​​ {{H2​(xi​,H1​(xi​)β)}}i=1n1​​  {{ H2​ H 2​ 2​ 2​ 2 2  2 2 ​    ( xi​ x i​ i​ i​ i i  i i ​    ,  H1​(xi​)β H1​(xi​) H1​ H 1​ 1​ 1​ 1 1  1 1 ​    ( xi​ x i​ i​ i​ i i  i i ​    ) β β β β β  β β )} }i=1n1​​ } i=1n1​​ i=1n1​​ i=1n1​​ i=1n1​ i=1  i=1 i=1 i = 1 n1​  n1​ n1​ n1​ n 1​ 1​ 1​ 1 1  1 1 ​    ​    Alice compares two sets {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1}{{H2​(xi​,H1​(xi​)β)}}i=1n1​​\nand {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2}{{H2​(yi​,H1​(yi​)β)}}i=1n2​​ and gets intersection. {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1}{{H2​(xi​,H1​(xi​)β)}}i=1n1​​ {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1}{{H2​(xi​,H1​(xi​)β)}}i=1n1​​ {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1} {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1} {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1} {{H2(xi,H1(xi)β)}}i=1n1 { { H2 H 2 ( xi x i , H1(xi)β H1(xi) H1 H 1 ( xi x i ) β ) } }i=1n1 } i=1 i = 1 n1 n 1 \\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1} {{H2​(xi​,H1​(xi​)β)}}i=1n1​​ {{H2​(xi​,H1​(xi​)β)}}i=1n1​​  {{ H2​ H 2​ 2​ 2​ 2 2  2 2 ​    ( xi​ x i​ i​ i​ i i  i i ​    ,  H1​(xi​)β H1​(xi​) H1​ H 1​ 1​ 1​ 1 1  1 1 ​    ( xi​ x i​ i​ i​ i i  i i ​    ) β β β β β  β β )} }i=1n1​​ } i=1n1​​ i=1n1​​ i=1n1​​ i=1n1​ i=1  i=1 i=1 i = 1 n1​  n1​ n1​ n1​ n 1​ 1​ 1​ 1 1  1 1 ​    ​    {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2}{{H2​(yi​,H1​(yi​)β)}}i=1n2​​ {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2}{{H2​(yi​,H1​(yi​)β)}}i=1n2​​ {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2} {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2} {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2} {{H2(yi,H1(yi)β)}}i=1n2 { { H2 H 2 ( yi y i , H1(yi)β H1(yi) H1 H 1 ( yi y i ) β ) } }i=1n2 } i=1 i = 1 n2 n 2 \\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2} {{H2​(yi​,H1​(yi​)β)}}i=1n2​​ {{H2​(yi​,H1​(yi​)β)}}i=1n2​​  {{ H2​ H 2​ 2​ 2​ 2 2  2 2 ​    ( yi​ y i​ i​ i​ i i  i i ​    ,  H1​(yi​)β H1​(yi​) H1​ H 1​ 1​ 1​ 1 1  1 1 ​    ( yi​ y i​ i​ i​ i i  i i ​    ) β β β β β  β β )} }i=1n2​​ } i=1n2​​ i=1n2​​ i=1n2​​ i=1n2​ i=1  i=1 i=1 i = 1 n2​  n2​ n2​ n2​ n 2​ 2​ 2​ 2 2  2 2 ​    ​    "},"48":{"url":"/psi/main/en/development/psi_protocol_intro#labeled-psi","type":"fragment","title":"PSI Protocols Introduction - Labeled PSI","content":"Somewhat homomorphic encryption (SHE) can be used to build efficient (labeled) Private Set Intersection\nprotocols in the unbalanced setting, where one of the sets is much larger than the other.\n[CMGD+21] introduces several optimizations and improvements to the protocols of\n[CLR17], [CHLR18], resulting in improved running time and improved communication complexity in the\nsender’s set size. [CMGD+21] [CLR17] [CHLR18] Microsoft APSI (Asymmetric PSI)  library provides a PSI functionality\nfor asymmetric set sizes based on the latest [CMGD+21].  APSI uses the BFV([FV12]) encryption scheme implemented\nin the Microsoft [SEAL] library. APSI (Asymmetric PSI) [CMGD+21] [FV12] [SEAL] SecretFlow SPU wraps APSI library, can be used for APSI \nUnbalanced PSI\nMalicious PSI\nLabeled PSI\nKeyword PIR\n Unbalanced PSI Malicious PSI Labeled PSI Keyword PIR    \nSetup Phase\n\nChoose ItemParams, TableParams, QueryParams, SEALParams.\nSender’s OPRF: The sender samples a key β\\betaβ for the OPRF, updates its items set\nto {{H2(si,H1(si)β)}}si∈S\\{\\{H_2(s_i,{H_1(s_i)}^\\beta)\\}\\}_{s_i\\in S}{{H2​(si​,H1​(si​)β)}}si​∈S​.\nSender’s Hashing: Sender inserts all si∈Ss_i\\in Ssi​∈S into the sets B[h0(si)]\\mathcal{B}[h_0(s_i)]B[h0​(si​)],\nB[h1(si)]\\mathcal{B}[h_1(s_i)]B[h1​(si​)] and B[h2(si)]\\mathcal{B}[h_2(s_i)]B[h2​(si​)].\nSplitting: For each set B[i]\\mathcal{B}[i]B[i], the sender splits it into bin bundles, denoted as\nB[i,1]\\mathcal{B}[i,1]B[i,1], …, B[i,k]\\mathcal{B}[i,k]B[i,k].\nComputing Coeffcients:\n\nMatching Polynomial: For each bin bundle B[i,j]\\mathcal{B}[i,j]B[i,j], the sender computes the\nmatching polynomial over Ft\\mathbb{F}_tFt​.\nLabel Polynomial: If the sender has labels associated with its set, then for each bin bundle\nB[i,j]\\mathcal{B}[i,j]B[i,j], the sender interpolates the label polynomial over Ft\\mathbb{F}_tFt​.\n\n\n\n\nIntersection Phase\n\nReceiver Encrypt ri∈Rr_i \\in Rri​∈R.\n\nReceiver’s OPRF: Receiver and Sender run ecdh-OPRF protocol, get\n{{H2(ri,H1(ri)β)}}ri∈R\\{\\{H_2(r_i,{H_1(r_i)}^\\beta)\\}\\}_{r_i\\in R}{{H2​(ri​,H1​(ri​)β)}}ri​∈R​.\nReceiver’s CuckooHash: Receiver performs cuckoo hashing on the set RRR into CuckooTable C with m bins\nusing h1; h2; h3 has the hash functions.\nPacking: Receiver packs items in CuckooTable C into a FHE plaintext polynomial.\nWindowsing: the receiver computes the component-wise query powers.\nEncrypt: The receiver uses FHE.Encrypt to encrypt query powers and sends the ciphertexts to the sender.\n\n\nSender Homomorphically evaluate Matching Polynomial: The sender receives the collection of\nciphertexts and homomorphically evaluates Matching Polynomial. If Labeled PSI is desired, Sender homomorphically evaluates\nLabel Polynomial. The sender sends evaluated ciphertexts to Receiver.\nReceiver Decrypt and Get result: receiver receives and decrypts the matching ciphertexts, and labels\nciphertexts if needed, outputs the matching set and labels.\n\n\n Setup Phase\n\nChoose ItemParams, TableParams, QueryParams, SEALParams.\nSender’s OPRF: The sender samples a key β\\betaβ for the OPRF, updates its items set\nto {{H2(si,H1(si)β)}}si∈S\\{\\{H_2(s_i,{H_1(s_i)}^\\beta)\\}\\}_{s_i\\in S}{{H2​(si​,H1​(si​)β)}}si​∈S​.\nSender’s Hashing: Sender inserts all si∈Ss_i\\in Ssi​∈S into the sets B[h0(si)]\\mathcal{B}[h_0(s_i)]B[h0​(si​)],\nB[h1(si)]\\mathcal{B}[h_1(s_i)]B[h1​(si​)] and B[h2(si)]\\mathcal{B}[h_2(s_i)]B[h2​(si​)].\nSplitting: For each set B[i]\\mathcal{B}[i]B[i], the sender splits it into bin bundles, denoted as\nB[i,1]\\mathcal{B}[i,1]B[i,1], …, B[i,k]\\mathcal{B}[i,k]B[i,k].\nComputing Coeffcients:\n\nMatching Polynomial: For each bin bundle B[i,j]\\mathcal{B}[i,j]B[i,j], the sender computes the\nmatching polynomial over Ft\\mathbb{F}_tFt​.\nLabel Polynomial: If the sender has labels associated with its set, then for each bin bundle\nB[i,j]\\mathcal{B}[i,j]B[i,j], the sender interpolates the label polynomial over Ft\\mathbb{F}_tFt​.\n\n\n\n \nChoose ItemParams, TableParams, QueryParams, SEALParams.\nSender’s OPRF: The sender samples a key β\\betaβ for the OPRF, updates its items set\nto {{H2(si,H1(si)β)}}si∈S\\{\\{H_2(s_i,{H_1(s_i)}^\\beta)\\}\\}_{s_i\\in S}{{H2​(si​,H1​(si​)β)}}si​∈S​.\nSender’s Hashing: Sender inserts all si∈Ss_i\\in Ssi​∈S into the sets B[h0(si)]\\mathcal{B}[h_0(s_i)]B[h0​(si​)],\nB[h1(si)]\\mathcal{B}[h_1(s_i)]B[h1​(si​)] and B[h2(si)]\\mathcal{B}[h_2(s_i)]B[h2​(si​)].\nSplitting: For each set B[i]\\mathcal{B}[i]B[i], the sender splits it into bin bundles, denoted as\nB[i,1]\\mathcal{B}[i,1]B[i,1], …, B[i,k]\\mathcal{B}[i,k]B[i,k].\nComputing Coeffcients:\n\nMatching Polynomial: For each bin bundle B[i,j]\\mathcal{B}[i,j]B[i,j], the sender computes the\nmatching polynomial over Ft\\mathbb{F}_tFt​.\nLabel Polynomial: If the sender has labels associated with its set, then for each bin bundle\nB[i,j]\\mathcal{B}[i,j]B[i,j], the sender interpolates the label polynomial over Ft\\mathbb{F}_tFt​.\n\n\n Choose ItemParams, TableParams, QueryParams, SEALParams. Choose ItemParams Sender’s OPRF: The sender samples a key β\\betaβ for the OPRF, updates its items set\nto {{H2(si,H1(si)β)}}si∈S\\{\\{H_2(s_i,{H_1(s_i)}^\\beta)\\}\\}_{s_i\\in S}{{H2​(si​,H1​(si​)β)}}si​∈S​. Sender’s OPRF β\\betaβ β\\betaβ β\\beta β\\beta β\\beta β β \\beta β β  β {{H2(si,H1(si)β)}}si∈S\\{\\{H_2(s_i,{H_1(s_i)}^\\beta)\\}\\}_{s_i\\in S}{{H2​(si​,H1​(si​)β)}}si​∈S​ {{H2(si,H1(si)β)}}si∈S\\{\\{H_2(s_i,{H_1(s_i)}^\\beta)\\}\\}_{s_i\\in S}{{H2​(si​,H1​(si​)β)}}si​∈S​ {{H2(si,H1(si)β)}}si∈S\\{\\{H_2(s_i,{H_1(s_i)}^\\beta)\\}\\}_{s_i\\in S} {{H2(si,H1(si)β)}}si∈S\\{\\{H_2(s_i,{H_1(s_i)}^\\beta)\\}\\}_{s_i\\in S} {{H2(si,H1(si)β)}}si∈S\\{\\{H_2(s_i,{H_1(s_i)}^\\beta)\\}\\}_{s_i\\in S} {{H2(si,H1(si)β)}}si∈S { { H2 H 2 ( si s i , H1(si)β H1(si) H1 H 1 ( si s i ) β ) } }si∈S } si∈S si s i ∈ S \\{\\{H_2(s_i,{H_1(s_i)}^\\beta)\\}\\}_{s_i\\in S} {{H2​(si​,H1​(si​)β)}}si​∈S​ {{H2​(si​,H1​(si​)β)}}si​∈S​  {{ H2​ H 2​ 2​ 2​ 2 2  2 2 ​    ( si​ s i​ i​ i​ i i  i i ​    ,  H1​(si​)β H1​(si​) H1​ H 1​ 1​ 1​ 1 1  1 1 ​    ( si​ s i​ i​ i​ i i  i i ​    ) β β β β β  β β )} }si​∈S​ } si​∈S​ si​∈S​ si​∈S​ si​∈S si​∈S  si​∈S si​∈S si​ s i​ i​ i​ i i  i i ​    ∈ S ​    Sender’s Hashing: Sender inserts all si∈Ss_i\\in Ssi​∈S into the sets B[h0(si)]\\mathcal{B}[h_0(s_i)]B[h0​(si​)],\nB[h1(si)]\\mathcal{B}[h_1(s_i)]B[h1​(si​)] and B[h2(si)]\\mathcal{B}[h_2(s_i)]B[h2​(si​)]. Sender’s Hashing si∈Ss_i\\in Ssi​∈S si∈Ss_i\\in Ssi​∈S si∈Ss_i\\in S si∈Ss_i\\in S si∈Ss_i\\in S si∈S si s i ∈ S s_i\\in S si​∈S si​∈  si​ s i​ i​ i​ i i  i i ​     ∈  S  S B[h0(si)]\\mathcal{B}[h_0(s_i)]B[h0​(si​)] B[h0(si)]\\mathcal{B}[h_0(s_i)]B[h0​(si​)] B[h0(si)]\\mathcal{B}[h_0(s_i)] B[h0(si)]\\mathcal{B}[h_0(s_i)] B[h0(si)]\\mathcal{B}[h_0(s_i)] B[h0(si)] B [ h0 h 0 ( si s i ) ] \\mathcal{B}[h_0(s_i)] B[h0​(si​)] B[h0​(si​)]  B [ h0​ h 0​ 0​ 0​ 0 0  0 0 ​    ( si​ s i​ i​ i​ i i  i i ​    )] B[h1(si)]\\mathcal{B}[h_1(s_i)]B[h1​(si​)] B[h1(si)]\\mathcal{B}[h_1(s_i)]B[h1​(si​)] B[h1(si)]\\mathcal{B}[h_1(s_i)] B[h1(si)]\\mathcal{B}[h_1(s_i)] B[h1(si)]\\mathcal{B}[h_1(s_i)] B[h1(si)] B [ h1 h 1 ( si s i ) ] \\mathcal{B}[h_1(s_i)] B[h1​(si​)] B[h1​(si​)]  B [ h1​ h 1​ 1​ 1​ 1 1  1 1 ​    ( si​ s i​ i​ i​ i i  i i ​    )] B[h2(si)]\\mathcal{B}[h_2(s_i)]B[h2​(si​)] B[h2(si)]\\mathcal{B}[h_2(s_i)]B[h2​(si​)] B[h2(si)]\\mathcal{B}[h_2(s_i)] B[h2(si)]\\mathcal{B}[h_2(s_i)] B[h2(si)]\\mathcal{B}[h_2(s_i)] B[h2(si)] B [ h2 h 2 ( si s i ) ] \\mathcal{B}[h_2(s_i)] B[h2​(si​)] B[h2​(si​)]  B [ h2​ h 2​ 2​ 2​ 2 2  2 2 ​    ( si​ s i​ i​ i​ i i  i i ​    )] Splitting: For each set B[i]\\mathcal{B}[i]B[i], the sender splits it into bin bundles, denoted as\nB[i,1]\\mathcal{B}[i,1]B[i,1], …, B[i,k]\\mathcal{B}[i,k]B[i,k]. Splitting B[i]\\mathcal{B}[i]B[i] B[i]\\mathcal{B}[i]B[i] B[i]\\mathcal{B}[i] B[i]\\mathcal{B}[i] B[i]\\mathcal{B}[i] B[i] B [ i ] \\mathcal{B}[i] B[i] B[i]  B [ i ] B[i,1]\\mathcal{B}[i,1]B[i,1] B[i,1]\\mathcal{B}[i,1]B[i,1] B[i,1]\\mathcal{B}[i,1] B[i,1]\\mathcal{B}[i,1] B[i,1]\\mathcal{B}[i,1] B[i,1] B [ i , 1 ] \\mathcal{B}[i,1] B[i,1] B[i,1]  B [ i ,  1 ] B[i,k]\\mathcal{B}[i,k]B[i,k] B[i,k]\\mathcal{B}[i,k]B[i,k] B[i,k]\\mathcal{B}[i,k] B[i,k]\\mathcal{B}[i,k] B[i,k]\\mathcal{B}[i,k] B[i,k] B [ i , k ] \\mathcal{B}[i,k] B[i,k] B[i,k]  B [ i ,  k ] Computing Coeffcients:\n\nMatching Polynomial: For each bin bundle B[i,j]\\mathcal{B}[i,j]B[i,j], the sender computes the\nmatching polynomial over Ft\\mathbb{F}_tFt​.\nLabel Polynomial: If the sender has labels associated with its set, then for each bin bundle\nB[i,j]\\mathcal{B}[i,j]B[i,j], the sender interpolates the label polynomial over Ft\\mathbb{F}_tFt​.\n\n Computing Coeffcients \nMatching Polynomial: For each bin bundle B[i,j]\\mathcal{B}[i,j]B[i,j], the sender computes the\nmatching polynomial over Ft\\mathbb{F}_tFt​.\nLabel Polynomial: If the sender has labels associated with its set, then for each bin bundle\nB[i,j]\\mathcal{B}[i,j]B[i,j], the sender interpolates the label polynomial over Ft\\mathbb{F}_tFt​.\n Matching Polynomial: For each bin bundle B[i,j]\\mathcal{B}[i,j]B[i,j], the sender computes the\nmatching polynomial over Ft\\mathbb{F}_tFt​. Matching Polynomial B[i,j]\\mathcal{B}[i,j]B[i,j] B[i,j]\\mathcal{B}[i,j]B[i,j] B[i,j]\\mathcal{B}[i,j] B[i,j]\\mathcal{B}[i,j] B[i,j]\\mathcal{B}[i,j] B[i,j] B [ i , j ] \\mathcal{B}[i,j] B[i,j] B[i,j]  B [ i ,  j ] Ft\\mathbb{F}_tFt​ Ft\\mathbb{F}_tFt​ Ft\\mathbb{F}_t Ft\\mathbb{F}_t Ft\\mathbb{F}_t Ft Ft F t \\mathbb{F}_t Ft​ Ft​  Ft​ F t​ t​ t​ t t  t t ​    Label Polynomial: If the sender has labels associated with its set, then for each bin bundle\nB[i,j]\\mathcal{B}[i,j]B[i,j], the sender interpolates the label polynomial over Ft\\mathbb{F}_tFt​. Label Polynomial B[i,j]\\mathcal{B}[i,j]B[i,j] B[i,j]\\mathcal{B}[i,j]B[i,j] B[i,j]\\mathcal{B}[i,j] B[i,j]\\mathcal{B}[i,j] B[i,j]\\mathcal{B}[i,j] B[i,j] B [ i , j ] \\mathcal{B}[i,j] B[i,j] B[i,j]  B [ i ,  j ] Ft\\mathbb{F}_tFt​ Ft\\mathbb{F}_tFt​ Ft\\mathbb{F}_t Ft\\mathbb{F}_t Ft\\mathbb{F}_t Ft Ft F t \\mathbb{F}_t Ft​ Ft​  Ft​ F t​ t​ t​ t t  t t ​    Intersection Phase\n\nReceiver Encrypt ri∈Rr_i \\in Rri​∈R.\n\nReceiver’s OPRF: Receiver and Sender run ecdh-OPRF protocol, get\n{{H2(ri,H1(ri)β)}}ri∈R\\{\\{H_2(r_i,{H_1(r_i)}^\\beta)\\}\\}_{r_i\\in R}{{H2​(ri​,H1​(ri​)β)}}ri​∈R​.\nReceiver’s CuckooHash: Receiver performs cuckoo hashing on the set RRR into CuckooTable C with m bins\nusing h1; h2; h3 has the hash functions.\nPacking: Receiver packs items in CuckooTable C into a FHE plaintext polynomial.\nWindowsing: the receiver computes the component-wise query powers.\nEncrypt: The receiver uses FHE.Encrypt to encrypt query powers and sends the ciphertexts to the sender.\n\n\nSender Homomorphically evaluate Matching Polynomial: The sender receives the collection of\nciphertexts and homomorphically evaluates Matching Polynomial. If Labeled PSI is desired, Sender homomorphically evaluates\nLabel Polynomial. The sender sends evaluated ciphertexts to Receiver.\nReceiver Decrypt and Get result: receiver receives and decrypts the matching ciphertexts, and labels\nciphertexts if needed, outputs the matching set and labels.\n\n \nReceiver Encrypt ri∈Rr_i \\in Rri​∈R.\n\nReceiver’s OPRF: Receiver and Sender run ecdh-OPRF protocol, get\n{{H2(ri,H1(ri)β)}}ri∈R\\{\\{H_2(r_i,{H_1(r_i)}^\\beta)\\}\\}_{r_i\\in R}{{H2​(ri​,H1​(ri​)β)}}ri​∈R​.\nReceiver’s CuckooHash: Receiver performs cuckoo hashing on the set RRR into CuckooTable C with m bins\nusing h1; h2; h3 has the hash functions.\nPacking: Receiver packs items in CuckooTable C into a FHE plaintext polynomial.\nWindowsing: the receiver computes the component-wise query powers.\nEncrypt: The receiver uses FHE.Encrypt to encrypt query powers and sends the ciphertexts to the sender.\n\n\nSender Homomorphically evaluate Matching Polynomial: The sender receives the collection of\nciphertexts and homomorphically evaluates Matching Polynomial. If Labeled PSI is desired, Sender homomorphically evaluates\nLabel Polynomial. The sender sends evaluated ciphertexts to Receiver.\nReceiver Decrypt and Get result: receiver receives and decrypts the matching ciphertexts, and labels\nciphertexts if needed, outputs the matching set and labels.\n Receiver Encrypt ri∈Rr_i \\in Rri​∈R.\n\nReceiver’s OPRF: Receiver and Sender run ecdh-OPRF protocol, get\n{{H2(ri,H1(ri)β)}}ri∈R\\{\\{H_2(r_i,{H_1(r_i)}^\\beta)\\}\\}_{r_i\\in R}{{H2​(ri​,H1​(ri​)β)}}ri​∈R​.\nReceiver’s CuckooHash: Receiver performs cuckoo hashing on the set RRR into CuckooTable C with m bins\nusing h1; h2; h3 has the hash functions.\nPacking: Receiver packs items in CuckooTable C into a FHE plaintext polynomial.\nWindowsing: the receiver computes the component-wise query powers.\nEncrypt: The receiver uses FHE.Encrypt to encrypt query powers and sends the ciphertexts to the sender.\n\n ri∈Rr_i \\in Rri​∈R ri∈Rr_i \\in Rri​∈R ri∈Rr_i \\in R ri∈Rr_i \\in R ri∈Rr_i \\in R ri∈R ri r i ∈ R r_i \\in R ri​∈R ri​∈  ri​ r i​ i​ i​ i i  i i ​     ∈  R  R \nReceiver’s OPRF: Receiver and Sender run ecdh-OPRF protocol, get\n{{H2(ri,H1(ri)β)}}ri∈R\\{\\{H_2(r_i,{H_1(r_i)}^\\beta)\\}\\}_{r_i\\in R}{{H2​(ri​,H1​(ri​)β)}}ri​∈R​.\nReceiver’s CuckooHash: Receiver performs cuckoo hashing on the set RRR into CuckooTable C with m bins\nusing h1; h2; h3 has the hash functions.\nPacking: Receiver packs items in CuckooTable C into a FHE plaintext polynomial.\nWindowsing: the receiver computes the component-wise query powers.\nEncrypt: The receiver uses FHE.Encrypt to encrypt query powers and sends the ciphertexts to the sender.\n Receiver’s OPRF: Receiver and Sender run ecdh-OPRF protocol, get\n{{H2(ri,H1(ri)β)}}ri∈R\\{\\{H_2(r_i,{H_1(r_i)}^\\beta)\\}\\}_{r_i\\in R}{{H2​(ri​,H1​(ri​)β)}}ri​∈R​. Receiver’s OPRF {{H2(ri,H1(ri)β)}}ri∈R\\{\\{H_2(r_i,{H_1(r_i)}^\\beta)\\}\\}_{r_i\\in R}{{H2​(ri​,H1​(ri​)β)}}ri​∈R​ {{H2(ri,H1(ri)β)}}ri∈R\\{\\{H_2(r_i,{H_1(r_i)}^\\beta)\\}\\}_{r_i\\in R}{{H2​(ri​,H1​(ri​)β)}}ri​∈R​ {{H2(ri,H1(ri)β)}}ri∈R\\{\\{H_2(r_i,{H_1(r_i)}^\\beta)\\}\\}_{r_i\\in R} {{H2(ri,H1(ri)β)}}ri∈R\\{\\{H_2(r_i,{H_1(r_i)}^\\beta)\\}\\}_{r_i\\in R} {{H2(ri,H1(ri)β)}}ri∈R\\{\\{H_2(r_i,{H_1(r_i)}^\\beta)\\}\\}_{r_i\\in R} {{H2(ri,H1(ri)β)}}ri∈R { { H2 H 2 ( ri r i , H1(ri)β H1(ri) H1 H 1 ( ri r i ) β ) } }ri∈R } ri∈R ri r i ∈ R \\{\\{H_2(r_i,{H_1(r_i)}^\\beta)\\}\\}_{r_i\\in R} {{H2​(ri​,H1​(ri​)β)}}ri​∈R​ {{H2​(ri​,H1​(ri​)β)}}ri​∈R​  {{ H2​ H 2​ 2​ 2​ 2 2  2 2 ​    ( ri​ r i​ i​ i​ i i  i i ​    ,  H1​(ri​)β H1​(ri​) H1​ H 1​ 1​ 1​ 1 1  1 1 ​    ( ri​ r i​ i​ i​ i i  i i ​    ) β β β β β  β β )} }ri​∈R​ } ri​∈R​ ri​∈R​ ri​∈R​ ri​∈R ri​∈R  ri​∈R ri​∈R ri​ r i​ i​ i​ i i  i i ​    ∈ R ​    Receiver’s CuckooHash: Receiver performs cuckoo hashing on the set RRR into CuckooTable C with m bins\nusing h1; h2; h3 has the hash functions. Receiver’s CuckooHash RRR RRR RR RR RR R R R R R  R Packing: Receiver packs items in CuckooTable C into a FHE plaintext polynomial. Packing Windowsing: the receiver computes the component-wise query powers. Windowsing Encrypt: The receiver uses FHE.Encrypt to encrypt query powers and sends the ciphertexts to the sender. Encrypt FHE.Encrypt Sender Homomorphically evaluate Matching Polynomial: The sender receives the collection of\nciphertexts and homomorphically evaluates Matching Polynomial. If Labeled PSI is desired, Sender homomorphically evaluates\nLabel Polynomial. The sender sends evaluated ciphertexts to Receiver. Sender Homomorphically evaluate Matching Polynomial Receiver Decrypt and Get result: receiver receives and decrypts the matching ciphertexts, and labels\nciphertexts if needed, outputs the matching set and labels. Receiver Decrypt and Get result Labeled PSI Parameters Paramsfunction1ItemParamsfelts_per_itemhow many Microsoft SEAL batching slots should represent each item\n= item_bit_size / plain_modulus_bits\nitem_bit_size = stats_params + log(ns)+log(nr)2TableParamshash_func_countcuckoo hash count. if nr>1,hash_func_count = 3\nnr=1-> hash_func_count=1 means essentially disabling cuckoo hashingtable_sizepositive multiple of floor(poly_modulus_degree/felts_per_item)max_items_per_binhow many items fit into each row of the sender’s bin bundles3QueryParamsps_low_degreeany number between 0 and max_items_per_bin\nIf set to zero, the Paterson-Stockmeyer algorithm is not used\nps_low_degree > 1, use Paterson-Stockmeyer algorithmquery_powershow many items fit into each row of the sender’s bin bundles\nref Challis and Robinson (2010) to determine good source powers4SEALParamspoly_modulus_degree2048 /  4096 / 8192plain_modulus(_bits)16(65535) / 22(bits)coeff_modulus_bits{48} / {48, 30, 30} / {56, 56, 56, 50} Paramsfunction Paramsfunction  Params Params function function 1ItemParamsfelts_per_itemhow many Microsoft SEAL batching slots should represent each item\n= item_bit_size / plain_modulus_bits\nitem_bit_size = stats_params + log(ns)+log(nr)2TableParamshash_func_countcuckoo hash count. if nr>1,hash_func_count = 3\nnr=1-> hash_func_count=1 means essentially disabling cuckoo hashingtable_sizepositive multiple of floor(poly_modulus_degree/felts_per_item)max_items_per_binhow many items fit into each row of the sender’s bin bundles3QueryParamsps_low_degreeany number between 0 and max_items_per_bin\nIf set to zero, the Paterson-Stockmeyer algorithm is not used\nps_low_degree > 1, use Paterson-Stockmeyer algorithmquery_powershow many items fit into each row of the sender’s bin bundles\nref Challis and Robinson (2010) to determine good source powers4SEALParamspoly_modulus_degree2048 /  4096 / 8192plain_modulus(_bits)16(65535) / 22(bits)coeff_modulus_bits{48} / {48, 30, 30} / {56, 56, 56, 50} 1ItemParams 1 1 ItemParams ItemParams   felts_per_itemhow many Microsoft SEAL batching slots should represent each item\n= item_bit_size / plain_modulus_bits\nitem_bit_size = stats_params + log(ns)+log(nr)  felts_per_item felts_per_item how many Microsoft SEAL batching slots should represent each item\n= item_bit_size / plain_modulus_bits\nitem_bit_size = stats_params + log(ns)+log(nr) how many Microsoft SEAL batching slots should represent each item\n= item_bit_size / plain_modulus_bits\nitem_bit_size = stats_params + log(ns)+log(nr) 2TableParams 2 2 TableParams TableParams   hash_func_countcuckoo hash count. if nr>1,hash_func_count = 3\nnr=1-> hash_func_count=1 means essentially disabling cuckoo hashing  hash_func_count hash_func_count cuckoo hash count. if nr>1,hash_func_count = 3\nnr=1-> hash_func_count=1 means essentially disabling cuckoo hashing cuckoo hash count. if nr>1,hash_func_count = 3\nnr=1-> hash_func_count=1 means essentially disabling cuckoo hashing table_sizepositive multiple of floor(poly_modulus_degree/felts_per_item)  table_size table_size positive multiple of floor(poly_modulus_degree/felts_per_item) positive multiple of floor(poly_modulus_degree/felts_per_item) max_items_per_binhow many items fit into each row of the sender’s bin bundles  max_items_per_bin max_items_per_bin how many items fit into each row of the sender’s bin bundles how many items fit into each row of the sender’s bin bundles 3QueryParams 3 3 QueryParams QueryParams   ps_low_degreeany number between 0 and max_items_per_bin\nIf set to zero, the Paterson-Stockmeyer algorithm is not used\nps_low_degree > 1, use Paterson-Stockmeyer algorithm  ps_low_degree ps_low_degree any number between 0 and max_items_per_bin\nIf set to zero, the Paterson-Stockmeyer algorithm is not used\nps_low_degree > 1, use Paterson-Stockmeyer algorithm any number between 0 and max_items_per_bin\nIf set to zero, the Paterson-Stockmeyer algorithm is not used\nps_low_degree > 1, use Paterson-Stockmeyer algorithm query_powershow many items fit into each row of the sender’s bin bundles\nref Challis and Robinson (2010) to determine good source powers  query_powers query_powers how many items fit into each row of the sender’s bin bundles\nref Challis and Robinson (2010) to determine good source powers how many items fit into each row of the sender’s bin bundles\nref Challis and Robinson (2010) to determine good source powers 4SEALParams 4 4 SEALParams SEALParams   poly_modulus_degree2048 /  4096 / 8192  poly_modulus_degree poly_modulus_degree 2048 /  4096 / 8192 2048 /  4096 / 8192 plain_modulus(_bits)16(65535) / 22(bits)  plain_modulus(_bits) plain_modulus(_bits) 16(65535) / 22(bits) 16(65535) / 22(bits) coeff_modulus_bits{48} / {48, 30, 30} / {56, 56, 56, 50}  coeff_modulus_bits coeff_modulus_bits {48} / {48, 30, 30} / {56, 56, 56, 50} {48} / {48, 30, 30} / {56, 56, 56, 50} "},"49":{"url":"/psi/main/en/development/psi_protocol_intro#rr22-blazing-fast-psi","type":"fragment","title":"PSI Protocols Introduction - RR22 Blazing Fast PSI","content":"[RS21] introduced an efficient PSI protocol based on OKVS and VOLE. [RR22] present significant improvements\nto the OKVS data structure along with new techniquesfor further reducing the communication overhead of [RS]21. [RS21] [RR22] Oblivous Key-Value Stores(OKVS) consists of algorithms Encode and Decode. Encode takes a list of key-value (k,v)\npairs as input and returns an abstract data structure S. Decode takes such a data structure S and a key k’ as\ninput, and gives some output v’. Pseudorandom correlation generators(PCGs) allow for the efficient generation of\noblivious transfer (OT) and vector oblivious linear evaluations (VOLE)\nwith sublinear communication and concretely good computational overhead.\nPCG makes use of a so-called LPN-friendly errorcorrecting code.\nsecretflow/YACL  provides VOLE code implementation.\nLPN-friendly coeds now support [CRR21] silver codes(LDPC) and [BCGI+22] Expand-Accumulate Codes.\nSilver is Most efficient, but not recommended to use due to its security flaw. secretflow/YACL [CRR21] [BCGI+22] Semi-honest Protocol:    \nThe Receiver samples r←{0,1}κr \\leftarrow \\{0,1\\}^\\kappar←{0,1}κ and computes\nP⃗:=Encode(L,r)\\vec{P} :=  \\mathrm{Encode} (L,r)P:=Encode(L,r) where\nL:={(Hn∗m(x,r),H(x))∣x∈X}L := \\{(H^{n*m}(x,r),H(x))|x \\in X\\}L:={(Hn∗m(x,r),H(x))∣x∈X}.\nSender and Receiver Run (sub)VOLE protocol, Sender gets Δ\\DeltaΔ and\nB⃗\\vec{B}B, Receiver gets A⃗\\vec{A}A and C⃗\\vec{C}C, such that:\nC⃗=Δ∗A′⃗+B⃗\\vec{C}=\\Delta *\\vec{A'}+\\vec{B}C=Δ∗A′+B.\nReceiver sends r,A⃗=A′⃗+P⃗r, \\vec{A}=\\vec{A'}+\\vec{P}r,A=A′+P to Sender. Sender defines\nK⃗=B⃗+Δ⋅A⃗\\vec{K}=\\vec{B}+\\Delta \\cdot \\vec{A}K=B+Δ⋅A.\nSender sends Y′=Hn∗m(Y⃗,r)⋅K⃗−Δ⋅H(Y⃗)Y'=H^{n*m}(\\vec{Y},r)\\cdot \\vec{K}-\\Delta \\cdot H(\\vec{Y})Y′=Hn∗m(Y,r)⋅K−Δ⋅H(Y)\nto the Receiver.\nReceiver compares X′=Hn∗m(X⃗,r)⋅C⃗X'=H^{n*m}(\\vec{X},r)\\cdot \\vec{C}X′=Hn∗m(X,r)⋅C and Y′Y'Y′, outputs\nintersection result X∩YX \\cap YX∩Y.\n The Receiver samples r←{0,1}κr \\leftarrow \\{0,1\\}^\\kappar←{0,1}κ and computes\nP⃗:=Encode(L,r)\\vec{P} :=  \\mathrm{Encode} (L,r)P:=Encode(L,r) where\nL:={(Hn∗m(x,r),H(x))∣x∈X}L := \\{(H^{n*m}(x,r),H(x))|x \\in X\\}L:={(Hn∗m(x,r),H(x))∣x∈X}. r←{0,1}κr \\leftarrow \\{0,1\\}^\\kappar←{0,1}κ r←{0,1}κr \\leftarrow \\{0,1\\}^\\kappar←{0,1}κ r←{0,1}κr \\leftarrow \\{0,1\\}^\\kappa r←{0,1}κr \\leftarrow \\{0,1\\}^\\kappa r←{0,1}κr \\leftarrow \\{0,1\\}^\\kappa r←{0,1}κ r ← { 0 , 1 }κ } κ r \\leftarrow \\{0,1\\}^\\kappa r←{0,1}κ r←  r  ←  {0,1}κ  { 0 ,  1 }κ } κ κ κ κ κ  κ κ P⃗:=Encode(L,r)\\vec{P} :=  \\mathrm{Encode} (L,r)P:=Encode(L,r) P⃗:=Encode(L,r)\\vec{P} :=  \\mathrm{Encode} (L,r)P:=Encode(L,r) P⃗:=Encode(L,r)\\vec{P} :=  \\mathrm{Encode} (L,r) P⃗:=Encode(L,r)\\vec{P} :=  \\mathrm{Encode} (L,r) P⃗:=Encode(L,r)\\vec{P} :=  \\mathrm{Encode} (L,r) P⃗:=Encode(L,r) P⃗ P ⃗ : = Encode E n c o d e ( L , r ) \\vec{P} :=  \\mathrm{Encode} (L,r) P:=Encode(L,r) P:=  P P P P P  P        :=  Encode(L,r)  Encode Encode ( L ,  r ) L:={(Hn∗m(x,r),H(x))∣x∈X}L := \\{(H^{n*m}(x,r),H(x))|x \\in X\\}L:={(Hn∗m(x,r),H(x))∣x∈X} L:={(Hn∗m(x,r),H(x))∣x∈X}L := \\{(H^{n*m}(x,r),H(x))|x \\in X\\}L:={(Hn∗m(x,r),H(x))∣x∈X} L:={(Hn∗m(x,r),H(x))∣x∈X}L := \\{(H^{n*m}(x,r),H(x))|x \\in X\\} L:={(Hn∗m(x,r),H(x))∣x∈X}L := \\{(H^{n*m}(x,r),H(x))|x \\in X\\} L:={(Hn∗m(x,r),H(x))∣x∈X}L := \\{(H^{n*m}(x,r),H(x))|x \\in X\\} L:={(Hn∗m(x,r),H(x))∣x∈X} L : = { ( Hn∗m H n∗m n ∗ m ( x , r ) , H ( x ) ) ∣ x ∈ X } L := \\{(H^{n*m}(x,r),H(x))|x \\in X\\} L:={(Hn∗m(x,r),H(x))∣x∈X} L:=  L  :=  {(Hn∗m(x,r),H(x))∣x∈  {( Hn∗m H n∗m n∗m n∗m n∗m n∗m  n∗m n∗m n ∗ m ( x ,  r ) ,  H ( x )) ∣ x  ∈  X}  X } Sender and Receiver Run (sub)VOLE protocol, Sender gets Δ\\DeltaΔ and\nB⃗\\vec{B}B, Receiver gets A⃗\\vec{A}A and C⃗\\vec{C}C, such that:\nC⃗=Δ∗A′⃗+B⃗\\vec{C}=\\Delta *\\vec{A'}+\\vec{B}C=Δ∗A′+B. Δ\\DeltaΔ Δ\\DeltaΔ Δ\\Delta Δ\\Delta Δ\\Delta Δ Δ \\Delta Δ Δ  Δ B⃗\\vec{B}B B⃗\\vec{B}B B⃗\\vec{B} B⃗\\vec{B} B⃗\\vec{B} B⃗ B⃗ B ⃗ \\vec{B} B B  B B B B B  B       A⃗\\vec{A}A A⃗\\vec{A}A A⃗\\vec{A} A⃗\\vec{A} A⃗\\vec{A} A⃗ A⃗ A ⃗ \\vec{A} A A  A A A A A  A       C⃗\\vec{C}C C⃗\\vec{C}C C⃗\\vec{C} C⃗\\vec{C} C⃗\\vec{C} C⃗ C⃗ C ⃗ \\vec{C} C C  C C C C C  C       C⃗=Δ∗A′⃗+B⃗\\vec{C}=\\Delta *\\vec{A'}+\\vec{B}C=Δ∗A′+B C⃗=Δ∗A′⃗+B⃗\\vec{C}=\\Delta *\\vec{A'}+\\vec{B}C=Δ∗A′+B C⃗=Δ∗A′⃗+B⃗\\vec{C}=\\Delta *\\vec{A'}+\\vec{B} C⃗=Δ∗A′⃗+B⃗\\vec{C}=\\Delta *\\vec{A'}+\\vec{B} C⃗=Δ∗A′⃗+B⃗\\vec{C}=\\Delta *\\vec{A'}+\\vec{B} C⃗=Δ∗A′⃗+B⃗ C⃗ C ⃗ = Δ ∗ A′⃗ A′ A ′ ⃗ + B⃗ B ⃗ \\vec{C}=\\Delta *\\vec{A'}+\\vec{B} C=Δ∗A′+B C=  C C C C C  C        =  Δ∗  Δ  ∗  A′+  A′ A′ A′ A′ A′  A′ A ′ ′ ′ ′ ′  ′ ′ ′        +  B  B B B B B  B       Receiver sends r,A⃗=A′⃗+P⃗r, \\vec{A}=\\vec{A'}+\\vec{P}r,A=A′+P to Sender. Sender defines\nK⃗=B⃗+Δ⋅A⃗\\vec{K}=\\vec{B}+\\Delta \\cdot \\vec{A}K=B+Δ⋅A. r,A⃗=A′⃗+P⃗r, \\vec{A}=\\vec{A'}+\\vec{P}r,A=A′+P r,A⃗=A′⃗+P⃗r, \\vec{A}=\\vec{A'}+\\vec{P}r,A=A′+P r,A⃗=A′⃗+P⃗r, \\vec{A}=\\vec{A'}+\\vec{P} r,A⃗=A′⃗+P⃗r, \\vec{A}=\\vec{A'}+\\vec{P} r,A⃗=A′⃗+P⃗r, \\vec{A}=\\vec{A'}+\\vec{P} r,A⃗=A′⃗+P⃗ r , A⃗ A ⃗ = A′⃗ A′ A ′ ⃗ + P⃗ P ⃗ r, \\vec{A}=\\vec{A'}+\\vec{P} r,A=A′+P r,A=  r ,  A A A A A  A        =  A′+  A′ A′ A′ A′ A′  A′ A ′ ′ ′ ′ ′  ′ ′ ′        +  P  P P P P P  P       K⃗=B⃗+Δ⋅A⃗\\vec{K}=\\vec{B}+\\Delta \\cdot \\vec{A}K=B+Δ⋅A K⃗=B⃗+Δ⋅A⃗\\vec{K}=\\vec{B}+\\Delta \\cdot \\vec{A}K=B+Δ⋅A K⃗=B⃗+Δ⋅A⃗\\vec{K}=\\vec{B}+\\Delta \\cdot \\vec{A} K⃗=B⃗+Δ⋅A⃗\\vec{K}=\\vec{B}+\\Delta \\cdot \\vec{A} K⃗=B⃗+Δ⋅A⃗\\vec{K}=\\vec{B}+\\Delta \\cdot \\vec{A} K⃗=B⃗+Δ⋅A⃗ K⃗ K ⃗ = B⃗ B ⃗ + Δ ⋅ A⃗ A ⃗ \\vec{K}=\\vec{B}+\\Delta \\cdot \\vec{A} K=B+Δ⋅A K=  K K K K K  K        =  B+  B B B B B  B        +  Δ⋅  Δ  ⋅  A  A A A A A  A       Sender sends Y′=Hn∗m(Y⃗,r)⋅K⃗−Δ⋅H(Y⃗)Y'=H^{n*m}(\\vec{Y},r)\\cdot \\vec{K}-\\Delta \\cdot H(\\vec{Y})Y′=Hn∗m(Y,r)⋅K−Δ⋅H(Y)\nto the Receiver. Y′=Hn∗m(Y⃗,r)⋅K⃗−Δ⋅H(Y⃗)Y'=H^{n*m}(\\vec{Y},r)\\cdot \\vec{K}-\\Delta \\cdot H(\\vec{Y})Y′=Hn∗m(Y,r)⋅K−Δ⋅H(Y) Y′=Hn∗m(Y⃗,r)⋅K⃗−Δ⋅H(Y⃗)Y'=H^{n*m}(\\vec{Y},r)\\cdot \\vec{K}-\\Delta \\cdot H(\\vec{Y})Y′=Hn∗m(Y,r)⋅K−Δ⋅H(Y) Y′=Hn∗m(Y⃗,r)⋅K⃗−Δ⋅H(Y⃗)Y'=H^{n*m}(\\vec{Y},r)\\cdot \\vec{K}-\\Delta \\cdot H(\\vec{Y}) Y′=Hn∗m(Y⃗,r)⋅K⃗−Δ⋅H(Y⃗)Y'=H^{n*m}(\\vec{Y},r)\\cdot \\vec{K}-\\Delta \\cdot H(\\vec{Y}) Y′=Hn∗m(Y⃗,r)⋅K⃗−Δ⋅H(Y⃗)Y'=H^{n*m}(\\vec{Y},r)\\cdot \\vec{K}-\\Delta \\cdot H(\\vec{Y}) Y′=Hn∗m(Y⃗,r)⋅K⃗−Δ⋅H(Y⃗) Y′ Y ′ = Hn∗m H n∗m n ∗ m ( Y⃗ Y ⃗ , r ) ⋅ K⃗ K ⃗ − Δ ⋅ H ( Y⃗ Y ⃗ ) Y'=H^{n*m}(\\vec{Y},r)\\cdot \\vec{K}-\\Delta \\cdot H(\\vec{Y}) Y′=Hn∗m(Y,r)⋅K−Δ⋅H(Y) Y′=  Y′ Y ′ ′ ′ ′ ′  ′ ′ ′  =  Hn∗m(Y,r)⋅  Hn∗m H n∗m n∗m n∗m n∗m n∗m  n∗m n∗m n ∗ m ( Y Y Y Y Y  Y       ,  r )  ⋅  K−  K K K K K  K        −  Δ⋅  Δ  ⋅  H(Y)  H ( Y Y Y Y Y  Y       ) Receiver compares X′=Hn∗m(X⃗,r)⋅C⃗X'=H^{n*m}(\\vec{X},r)\\cdot \\vec{C}X′=Hn∗m(X,r)⋅C and Y′Y'Y′, outputs\nintersection result X∩YX \\cap YX∩Y. X′=Hn∗m(X⃗,r)⋅C⃗X'=H^{n*m}(\\vec{X},r)\\cdot \\vec{C}X′=Hn∗m(X,r)⋅C X′=Hn∗m(X⃗,r)⋅C⃗X'=H^{n*m}(\\vec{X},r)\\cdot \\vec{C}X′=Hn∗m(X,r)⋅C X′=Hn∗m(X⃗,r)⋅C⃗X'=H^{n*m}(\\vec{X},r)\\cdot \\vec{C} X′=Hn∗m(X⃗,r)⋅C⃗X'=H^{n*m}(\\vec{X},r)\\cdot \\vec{C} X′=Hn∗m(X⃗,r)⋅C⃗X'=H^{n*m}(\\vec{X},r)\\cdot \\vec{C} X′=Hn∗m(X⃗,r)⋅C⃗ X′ X ′ = Hn∗m H n∗m n ∗ m ( X⃗ X ⃗ , r ) ⋅ C⃗ C ⃗ X'=H^{n*m}(\\vec{X},r)\\cdot \\vec{C} X′=Hn∗m(X,r)⋅C X′=  X′ X ′ ′ ′ ′ ′  ′ ′ ′  =  Hn∗m(X,r)⋅  Hn∗m H n∗m n∗m n∗m n∗m n∗m  n∗m n∗m n ∗ m ( X X X X X  X       ,  r )  ⋅  C  C C C C C  C       Y′Y'Y′ Y′Y'Y′ Y′Y' Y′Y' Y′Y' Y′ Y′ Y ′ Y' Y′ Y′  Y′ Y ′ ′ ′ ′ ′  ′ ′ ′ X∩YX \\cap YX∩Y X∩YX \\cap YX∩Y X∩YX \\cap Y X∩YX \\cap Y X∩YX \\cap Y X∩Y X ∩ Y X \\cap Y X∩Y X∩  X  ∩  Y  Y "},"50":{"url":"/psi/main/en/development/psi_protocol_intro#reference","type":"fragment","title":"PSI Protocols Introduction - Reference","content":"E. Boyle, G. Couteau, N. Gilboa, and Y. Ishai. Compressing vector OLE. In ACM CCS 2018,\npages 896–912. ACM Press, October 2018. E. Boyle, G. Couteau, N. Gilboa, and Y. Ishai. Compressing vector OLE. In ACM CCS 2018,\npages 896–912. ACM Press, October 2018. E. Boyle, G. Couteau, N. Gilboa, Y. Ishai, L. Kohl, P. Rindal, and P. Scholl. Efficient two-round\nOT extension and silent non-interactive secure computation. In ACM CCS 2019, pages 291–308.\nACM Press, November 2019. E. Boyle, G. Couteau, N. Gilboa, Y. Ishai, L. Kohl, P. Rindal, and P. Scholl. Efficient two-round\nOT extension and silent non-interactive secure computation. In ACM CCS 2019, pages 291–308.\nACM Press, November 2019. E. Boyle, G. Couteau, N. Gilboa, Y. Ishai, L. Kohl, P. Rindal, and P. Scholl.\nEfficient two-round OT extension and silent non-interactive secure computation. In ACM CCS 2019,\npages 291–308. ACM Press, November 2019. E. Boyle, G. Couteau, N. Gilboa, Y. Ishai, L. Kohl, P. Rindal, and P. Scholl.\nEfficient two-round OT extension and silent non-interactive secure computation. In ACM CCS 2019,\npages 291–308. ACM Press, November 2019. Daniel J. Bernstein. Curve25519: new diffie-hellman speed records. In In Public\nKey Cryptography (PKC), Springer-Verlag LNCS 3958, page 2006, 2006. (Cited on page 4.) Daniel J. Bernstein. Curve25519: new diffie-hellman speed records. In In Public\nKey Cryptography (PKC), Springer-Verlag LNCS 3958, page 2006, 2006. (Cited on page 4.) Elette Boyle, Geoffroy Couteau, Niv Gilboa, Yuval Ishai, Lisa Kohl, Nicolas Resch, Peter Scholl.\nCorrelated Pseudorandomness from Expand-Accumulate Codes. Crypto2022. Elette Boyle, Geoffroy Couteau, Niv Gilboa, Yuval Ishai, Lisa Kohl, Nicolas Resch, Peter Scholl.\nCorrelated Pseudorandomness from Expand-Accumulate Codes. Crypto2022. Baldi, P., Baronio, R., Cristofaro, E.D., Gasti, P., Tsudik, G.: Countering GATTACA:\nEfficient and Secure Testing of Fully-sequenced Human Genomes. In: ACM\nConference on Computer and Communications Security. pp. 691–702. ACM (2011). Baldi, P., Baronio, R., Cristofaro, E.D., Gasti, P., Tsudik, G.: Countering GATTACA:\nEfficient and Secure Testing of Fully-sequenced Human Genomes. In: ACM\nConference on Computer and Communications Security. pp. 691–702. ACM (2011). G. Couteau, Y. Ishai, L. Kohl, E. Boyle, P. Scholl, and N. Gilboa. Efficient pseudorandom\ncorrelation generators from ring-lpn. Springer-Verlag, 2020. G. Couteau, Y. Ishai, L. Kohl, E. Boyle, P. Scholl, and N. Gilboa. Efficient pseudorandom\ncorrelation generators from ring-lpn. Springer-Verlag, 2020. Chen, H., Huang, Z., Laine, K., Rindal, P.: Labeled PSI from fully homomorphic encryption with malicious\nsecurity. In: Lie, D., Mannan, M., Backes, M., Wang, X. (eds.) ACM CCS 2018. pp. 1223{1237. ACM Press (Oct\n2018). https://doi.org/10.1145/3243734.3243836 Chen, H., Huang, Z., Laine, K., Rindal, P.: Labeled PSI from fully homomorphic encryption with malicious\nsecurity. In: Lie, D., Mannan, M., Backes, M., Wang, X. (eds.) ACM CCS 2018. pp. 1223{1237. ACM Press (Oct\n2018). https://doi.org/10.1145/3243734.3243836 https://doi.org/10.1145/3243734.3243836 Chen, H., Laine, K., Rindal, P.: Fast private set intersection from homomorphic encryption. In: Thuraisingham,\nB.M., Evans, D., Malkin, T., Xu, D. (eds.) ACM CCS 2017. pp. 1243{1255. ACM Press (Oct / Nov 2017).\nhttps://doi.org/10.1145/3133956.3134061 Chen, H., Laine, K., Rindal, P.: Fast private set intersection from homomorphic encryption. In: Thuraisingham,\nB.M., Evans, D., Malkin, T., Xu, D. (eds.) ACM CCS 2017. pp. 1243{1255. ACM Press (Oct / Nov 2017).\nhttps://doi.org/10.1145/3133956.3134061 https://doi.org/10.1145/3133956.3134061 Kelong Cong, Radames Cruz Moreno, Mariana Botelho da Gama, Wei Dai, Ilia Iliashenko, Kim Laine,\nMichael Rosenberg. Labeled PSI from Homomorphic Encryption with Reduced Computation and Communication\nCCS’21: Proceedings of the 2021 ACM SIGSAC Conference on Computer and Communications SecurityNovember 2021 Kelong Cong, Radames Cruz Moreno, Mariana Botelho da Gama, Wei Dai, Ilia Iliashenko, Kim Laine,\nMichael Rosenberg. Labeled PSI from Homomorphic Encryption with Reduced Computation and Communication\nCCS’21: Proceedings of the 2021 ACM SIGSAC Conference on Computer and Communications SecurityNovember 2021 Geoffroy Couteau, Peter Rindal, and Srinivasan Raghuraman. Silver: Silent VOLE and Oblivious Transfer\nfrom Hardness of Decoding Structured LDPC Codes. Crypto2021. Geoffroy Couteau, Peter Rindal, and Srinivasan Raghuraman. Silver: Silent VOLE and Oblivious Transfer\nfrom Hardness of Decoding Structured LDPC Codes. Crypto2021. Differentially-Private PSI https://arxiv.org/pdf/2208.13249.pdf Differentially-Private PSI https://arxiv.org/pdf/2208.13249.pdf https://arxiv.org/pdf/2208.13249.pdf Costello, C., Longa, P.: Fourq: four-dimensional decompositions on a q-curve over the mersenne prime.\nCryptology ePrint Archive, Report 2015/565 (2015), https://eprint.iacr.org/2015/565 Costello, C., Longa, P.: Fourq: four-dimensional decompositions on a q-curve over the mersenne prime.\nCryptology ePrint Archive, Report 2015/565 (2015), https://eprint.iacr.org/2015/565 https://eprint.iacr.org/2015/565 Fan, J., Vercauteren, F.: Somewhat practical fully homomorphic encryption. Cryptology ePrint Archive,\nReport 2012/144 (2012), http://eprint.iacr.org/2012/144.pdf Fan, J., Vercauteren, F.: Somewhat practical fully homomorphic encryption. Cryptology ePrint Archive,\nReport 2012/144 (2012), http://eprint.iacr.org/2012/144.pdf http://eprint.iacr.org/2012/144.pdf Bernardo A. Huberman, Matt Franklin, and Tad Hogg. Enhancing privacy and trust in electronic\ncommunities. In ACM CONFERENCE ON ELECTRONIC COMMERCE. ACM, 1999. Bernardo A. Huberman, Matt Franklin, and Tad Hogg. Enhancing privacy and trust in electronic\ncommunities. In ACM CONFERENCE ON ELECTRONIC COMMERCE. ACM, 1999. https://github.com/intel/ipp-crypto/ https://github.com/intel/ipp-crypto/ https://github.com/intel/ipp-crypto/ Jarecki, S., Liu, X.: Fast Secure Computation of Set Intersection. In: SCN. LNCS,\nvol. 6280, pp. 418–435. Springer (2010) Jarecki, S., Liu, X.: Fast Secure Computation of Set Intersection. In: SCN. LNCS,\nvol. 6280, pp. 418–435. Springer (2010) V. Kolesnikov, R. Kumaresan, M. Rosulek, and N. Trieu. Efficient batched oblivious PRF with\napplications to private set intersection. In ACM CCS 2016, pages 818–829. ACM Press, October 2016. V. Kolesnikov, R. Kumaresan, M. Rosulek, and N. Trieu. Efficient batched oblivious PRF with\napplications to private set intersection. In ACM CCS 2016, pages 818–829. ACM Press, October 2016. C. Meadows. A more efficient cryptographic matchmaking protocol for use in the absence of a\ncontinuously available third party. In 1986 IEEE Symposium on Security and Privacy, pages 134–134, April 1986. C. Meadows. A more efficient cryptographic matchmaking protocol for use in the absence of a\ncontinuously available third party. In 1986 IEEE Symposium on Security and Privacy, pages 134–134, April 1986. B. Pinkas, T. Schneider, and M. Zohner. Scalable private set intersection based on ot extension.\nACM Transactions on Privacy and Security (TOPS), 21(2)–35, 2018. B. Pinkas, T. Schneider, and M. Zohner. Scalable private set intersection based on ot extension.\nACM Transactions on Privacy and Security (TOPS), 21(2)–35, 2018. Resende, A.C.D., Aranha, D.F.: Faster unbalanced private set intersection. In: Meiklejohn, S.,\nSako, K. (eds.) FC2018. LNCS, vol. 10957, pp. 203{221. Springer, Heidelberg (Feb / Mar 2018) Resende, A.C.D., Aranha, D.F.: Faster unbalanced private set intersection. In: Meiklejohn, S.,\nSako, K. (eds.) FC2018. LNCS, vol. 10957, pp. 203{221. Springer, Heidelberg (Feb / Mar 2018) Srinivasan Raghuraman and Peter Rindal. Blazing Fast PSI from Improved OKVS and Subfield VOLE. CCS’22. Srinivasan Raghuraman and Peter Rindal. Blazing Fast PSI from Improved OKVS and Subfield VOLE. CCS’22. Srinivasan Raghuraman, Peter Rindal, Titouan Tanguy. Expand-Convolute Codes for Pseudorandom\nCorrelation Generators from LPN. Crypto2023. Srinivasan Raghuraman, Peter Rindal, Titouan Tanguy. Expand-Convolute Codes for Pseudorandom\nCorrelation Generators from LPN. Crypto2023. Peter Rindal and Phillipp Schoppmann. VOLE-PSI: fast OPRF and circuit-psi from vector-ole. EUROCRYPT2021. Peter Rindal and Phillipp Schoppmann. VOLE-PSI: fast OPRF and circuit-psi from vector-ole. EUROCRYPT2021. Microsoft SEAL (release 4.0). https://github.com/Microsoft/SEAL (Sep 2022),\nmicrosoft Research, Redmond, WA. Microsoft SEAL (release 4.0). https://github.com/Microsoft/SEAL (Sep 2022),\nmicrosoft Research, Redmond, WA. https://github.com/Microsoft/SEAL Standards for Efficient Cryptography (SEC) <http://www.secg.org/sec2-v2.pdf> Standards for Efficient Cryptography (SEC) <http://www.secg.org/sec2-v2.pdf> http://www.secg.org/sec2-v2.pdf P. Schoppmann, A. Gascón, L. Reichert, and M. Raykova. Distributed vector-OLE: Improved\nconstructions and implementation. In ACM CCS 2019, pages 1055–1072. ACM Press, November 2019. P. Schoppmann, A. Gascón, L. Reichert, and M. Raykova. Distributed vector-OLE: Improved\nconstructions and implementation. In ACM CCS 2019, pages 1055–1072. ACM Press, November 2019. C. Weng, K. Yang, J. Katz, and X. Wang. Wolverine: fast, scalable, and communication-efficient\nzero-knowledge proofs for boolean and arithmetic circuits. In 2021 IEEE Symposium on Security\nand Privacy (SP), pages 1074–1091. IEEE, 2021. C. Weng, K. Yang, J. Katz, and X. Wang. Wolverine: fast, scalable, and communication-efficient\nzero-knowledge proofs for boolean and arithmetic circuits. In 2021 IEEE Symposium on Security\nand Privacy (SP), pages 1074–1091. IEEE, 2021. Oblivious Pseudorandom Functions (OPRFs) using Prime-Order Groups.\nhttps://www.ietf.org/archive/id/draft-irtf-cfrg-voprf-10.html Oblivious Pseudorandom Functions (OPRFs) using Prime-Order Groups.\nhttps://www.ietf.org/archive/id/draft-irtf-cfrg-voprf-10.html https://www.ietf.org/archive/id/draft-irtf-cfrg-voprf-10.html "},"51":{"url":"/psi/main/en/reference#api-reference","type":"fragment","title":"API reference","content":"This page covers all Protocol Buffers message as APIs. \nPSI v1 Configuration\nPSI v2 Configuration\nPIR Configuration\nLaunch Configuration\n \nPSI v1 Configuration\nPSI v2 Configuration\nPIR Configuration\nLaunch Configuration\n PSI v1 Configuration PSI v1 Configuration PSI v2 Configuration PSI v2 Configuration PIR Configuration PIR Configuration Launch Configuration Launch Configuration "},"52":{"url":"/psi/main/en/reference/pir_config#pir-configuration","type":"fragment","title":"PIR Configuration","content":""},"53":{"url":"/psi/main/en/reference/pir_config#table-of-contents","type":"fragment","title":"PIR Configuration - Table of Contents","content":"\nMessages\n\nApsiReceiverConfig\nApsiSenderConfig\nPirResultReport\n\n\nScalar Value Types\n Messages\n\nApsiReceiverConfig\nApsiSenderConfig\nPirResultReport\n\n \nApsiReceiverConfig\nApsiSenderConfig\nPirResultReport\n ApsiReceiverConfig ApsiReceiverConfig ApsiSenderConfig ApsiSenderConfig PirResultReport PirResultReport Scalar Value Types Scalar Value Types  "},"54":{"url":"/psi/main/en/reference/pir_config#messages","type":"fragment","title":"PIR Configuration - Messages","content":""},"55":{"url":"/psi/main/en/reference/pir_config#apsireceiverconfig","type":"fragment","title":"PIR Configuration - ApsiReceiverConfig","content":"FieldTypeDescriptionthreads uint32Number of threads to uselog_file stringLog file path. For APSI only.silent boolDo not write output to console. For APSI only.log_level stringOne of ‘all’, ‘debug’, ‘info’ (default), ‘warning’, ‘error’, ‘off’. For APSI only.query_file stringPath to a text file containing query data (one per line). Header is not needed.output_file stringPath to a file where intersection result will be written.params_file stringPath to a JSON file describing the parameters to be used by the sender. If not set, receiver will ask sender, which results in additional communication.experimental_enable_bucketize boolMust be same as sender config.experimental_bucket_cnt uint32Must be same as sender config.query_batch_size uint32The number of query in a batch. default 1. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description threads uint32Number of threads to uselog_file stringLog file path. For APSI only.silent boolDo not write output to console. For APSI only.log_level stringOne of ‘all’, ‘debug’, ‘info’ (default), ‘warning’, ‘error’, ‘off’. For APSI only.query_file stringPath to a text file containing query data (one per line). Header is not needed.output_file stringPath to a file where intersection result will be written.params_file stringPath to a JSON file describing the parameters to be used by the sender. If not set, receiver will ask sender, which results in additional communication.experimental_enable_bucketize boolMust be same as sender config.experimental_bucket_cnt uint32Must be same as sender config.query_batch_size uint32The number of query in a batch. default 1. threads uint32Number of threads to use threads threads  uint32  uint32  uint32  uint32 Number of threads to use Number of threads to use log_file stringLog file path. For APSI only. log_file log_file  string  string  string  string Log file path. For APSI only. Log file path. For APSI only. silent boolDo not write output to console. For APSI only. silent silent  bool  bool  bool  bool Do not write output to console. For APSI only. Do not write output to console. For APSI only. log_level stringOne of ‘all’, ‘debug’, ‘info’ (default), ‘warning’, ‘error’, ‘off’. For APSI only. log_level log_level  string  string  string  string One of ‘all’, ‘debug’, ‘info’ (default), ‘warning’, ‘error’, ‘off’. For APSI only. One of ‘all’, ‘debug’, ‘info’ (default), ‘warning’, ‘error’, ‘off’. For APSI only. query_file stringPath to a text file containing query data (one per line). Header is not needed. query_file query_file  string  string  string  string Path to a text file containing query data (one per line). Header is not needed. Path to a text file containing query data (one per line). Header is not needed. output_file stringPath to a file where intersection result will be written. output_file output_file  string  string  string  string Path to a file where intersection result will be written. Path to a file where intersection result will be written. params_file stringPath to a JSON file describing the parameters to be used by the sender. If not set, receiver will ask sender, which results in additional communication. params_file params_file  string  string  string  string Path to a JSON file describing the parameters to be used by the sender. If not set, receiver will ask sender, which results in additional communication. Path to a JSON file describing the parameters to be used by the sender. If not set, receiver will ask sender, which results in additional communication. experimental_enable_bucketize boolMust be same as sender config. experimental_enable_bucketize experimental_enable_bucketize  bool  bool  bool  bool Must be same as sender config. Must be same as sender config. experimental_bucket_cnt uint32Must be same as sender config. experimental_bucket_cnt experimental_bucket_cnt  uint32  uint32  uint32  uint32 Must be same as sender config. Must be same as sender config. query_batch_size uint32The number of query in a batch. default 1. query_batch_size query_batch_size  uint32  uint32  uint32  uint32 The number of query in a batch. default 1. The number of query in a batch. default 1.  "},"56":{"url":"/psi/main/en/reference/pir_config#apsisenderconfig","type":"fragment","title":"PIR Configuration - ApsiSenderConfig","content":"NOTE(junfeng): We provide a config identical to original APSI CLI.\nPlease check\nhttps://github.com/microsoft/APSI?tab=readme-ov-file#command-line-interface-cli\nfor details. https://github.com/microsoft/APSI?tab=readme-ov-file#command-line-interface-cli FieldTypeDescriptionthreads uint32Number of threads to uselog_file stringLog file path. For APSI only.silent boolDo not write output to console. For APSI only.log_level stringOne of ‘all’, ‘debug’, ‘info’ (default), ‘warning’, ‘error’, ‘off’. For APSI only.db_file stringPath to a CSV file describing the sender’s dataset (an item-label pair on each row) or a file containing a serialized SenderDB; the CLI will first attempt to load the data as a serialized SenderDB, and – upon failure – will proceed to attempt to read it as a CSV file For CSV File: 1. the first col is processed as item while the second col as label. OTHER COLS ARE IGNORED. 2. NO HEADERS ARE ALLOWED.params_file stringPath to a JSON file describing the parameters to be used by the sender. Not required if db_file points to a serialized SenderDB.sdb_out_file stringSave the SenderDB in the given file. Required if gen_db_only is set true. Use experimental_bucket_folder instead if you turn experimental_enable_bucketize on.nonce_byte_count uint32Number of bytes used for the nonce in labeled mode (default is 16)compress boolWhether to compress the SenderDB in memory; this will make the memory footprint smaller at the cost of increased computation.save_db_only boolWhether to save sender db only.experimental_enable_bucketize bool[experimental] Whether to split data in buckets and Each bucket would be a seperate SenderDB. If set, experimental_bucket_folder must be a valid folder.experimental_bucket_cnt uint32[experimental] The number of bucket to fit data.experimental_bucket_folder string[experimental] Folder to save bucketized small csv files and db files.experimental_db_generating_process_num int32[experimental] The number of processes to use for generating db.source_file stringSource file used to genenerate sender db. Currently only support csv file.experimental_bucket_group_cnt int32[experimental] The number of group of bucket, each group has a db_file, default 1024. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description threads uint32Number of threads to uselog_file stringLog file path. For APSI only.silent boolDo not write output to console. For APSI only.log_level stringOne of ‘all’, ‘debug’, ‘info’ (default), ‘warning’, ‘error’, ‘off’. For APSI only.db_file stringPath to a CSV file describing the sender’s dataset (an item-label pair on each row) or a file containing a serialized SenderDB; the CLI will first attempt to load the data as a serialized SenderDB, and – upon failure – will proceed to attempt to read it as a CSV file For CSV File: 1. the first col is processed as item while the second col as label. OTHER COLS ARE IGNORED. 2. NO HEADERS ARE ALLOWED.params_file stringPath to a JSON file describing the parameters to be used by the sender. Not required if db_file points to a serialized SenderDB.sdb_out_file stringSave the SenderDB in the given file. Required if gen_db_only is set true. Use experimental_bucket_folder instead if you turn experimental_enable_bucketize on.nonce_byte_count uint32Number of bytes used for the nonce in labeled mode (default is 16)compress boolWhether to compress the SenderDB in memory; this will make the memory footprint smaller at the cost of increased computation.save_db_only boolWhether to save sender db only.experimental_enable_bucketize bool[experimental] Whether to split data in buckets and Each bucket would be a seperate SenderDB. If set, experimental_bucket_folder must be a valid folder.experimental_bucket_cnt uint32[experimental] The number of bucket to fit data.experimental_bucket_folder string[experimental] Folder to save bucketized small csv files and db files.experimental_db_generating_process_num int32[experimental] The number of processes to use for generating db.source_file stringSource file used to genenerate sender db. Currently only support csv file.experimental_bucket_group_cnt int32[experimental] The number of group of bucket, each group has a db_file, default 1024. threads uint32Number of threads to use threads threads  uint32  uint32  uint32  uint32 Number of threads to use Number of threads to use log_file stringLog file path. For APSI only. log_file log_file  string  string  string  string Log file path. For APSI only. Log file path. For APSI only. silent boolDo not write output to console. For APSI only. silent silent  bool  bool  bool  bool Do not write output to console. For APSI only. Do not write output to console. For APSI only. log_level stringOne of ‘all’, ‘debug’, ‘info’ (default), ‘warning’, ‘error’, ‘off’. For APSI only. log_level log_level  string  string  string  string One of ‘all’, ‘debug’, ‘info’ (default), ‘warning’, ‘error’, ‘off’. For APSI only. One of ‘all’, ‘debug’, ‘info’ (default), ‘warning’, ‘error’, ‘off’. For APSI only. db_file stringPath to a CSV file describing the sender’s dataset (an item-label pair on each row) or a file containing a serialized SenderDB; the CLI will first attempt to load the data as a serialized SenderDB, and – upon failure – will proceed to attempt to read it as a CSV file For CSV File: 1. the first col is processed as item while the second col as label. OTHER COLS ARE IGNORED. 2. NO HEADERS ARE ALLOWED. db_file db_file  string  string  string  string Path to a CSV file describing the sender’s dataset (an item-label pair on each row) or a file containing a serialized SenderDB; the CLI will first attempt to load the data as a serialized SenderDB, and – upon failure – will proceed to attempt to read it as a CSV file For CSV File: 1. the first col is processed as item while the second col as label. OTHER COLS ARE IGNORED. 2. NO HEADERS ARE ALLOWED. Path to a CSV file describing the sender’s dataset (an item-label pair on each row) or a file containing a serialized SenderDB; the CLI will first attempt to load the data as a serialized SenderDB, and – upon failure – will proceed to attempt to read it as a CSV file For CSV File: 1. the first col is processed as item while the second col as label. OTHER COLS ARE IGNORED. 2. NO HEADERS ARE ALLOWED. params_file stringPath to a JSON file describing the parameters to be used by the sender. Not required if db_file points to a serialized SenderDB. params_file params_file  string  string  string  string Path to a JSON file describing the parameters to be used by the sender. Not required if db_file points to a serialized SenderDB. Path to a JSON file describing the parameters to be used by the sender. Not required if db_file points to a serialized SenderDB. sdb_out_file stringSave the SenderDB in the given file. Required if gen_db_only is set true. Use experimental_bucket_folder instead if you turn experimental_enable_bucketize on. sdb_out_file sdb_out_file  string  string  string  string Save the SenderDB in the given file. Required if gen_db_only is set true. Use experimental_bucket_folder instead if you turn experimental_enable_bucketize on. Save the SenderDB in the given file. Required if gen_db_only is set true. Use experimental_bucket_folder instead if you turn experimental_enable_bucketize on. nonce_byte_count uint32Number of bytes used for the nonce in labeled mode (default is 16) nonce_byte_count nonce_byte_count  uint32  uint32  uint32  uint32 Number of bytes used for the nonce in labeled mode (default is 16) Number of bytes used for the nonce in labeled mode (default is 16) compress boolWhether to compress the SenderDB in memory; this will make the memory footprint smaller at the cost of increased computation. compress compress  bool  bool  bool  bool Whether to compress the SenderDB in memory; this will make the memory footprint smaller at the cost of increased computation. Whether to compress the SenderDB in memory; this will make the memory footprint smaller at the cost of increased computation. save_db_only boolWhether to save sender db only. save_db_only save_db_only  bool  bool  bool  bool Whether to save sender db only. Whether to save sender db only. experimental_enable_bucketize bool[experimental] Whether to split data in buckets and Each bucket would be a seperate SenderDB. If set, experimental_bucket_folder must be a valid folder. experimental_enable_bucketize experimental_enable_bucketize  bool  bool  bool  bool [experimental] Whether to split data in buckets and Each bucket would be a seperate SenderDB. If set, experimental_bucket_folder must be a valid folder. [experimental] Whether to split data in buckets and Each bucket would be a seperate SenderDB. If set, experimental_bucket_folder must be a valid folder. experimental_bucket_cnt uint32[experimental] The number of bucket to fit data. experimental_bucket_cnt experimental_bucket_cnt  uint32  uint32  uint32  uint32 [experimental] The number of bucket to fit data. [experimental] The number of bucket to fit data. experimental_bucket_folder string[experimental] Folder to save bucketized small csv files and db files. experimental_bucket_folder experimental_bucket_folder  string  string  string  string [experimental] Folder to save bucketized small csv files and db files. [experimental] Folder to save bucketized small csv files and db files. experimental_db_generating_process_num int32[experimental] The number of processes to use for generating db. experimental_db_generating_process_num experimental_db_generating_process_num  int32  int32  int32  int32 [experimental] The number of processes to use for generating db. [experimental] The number of processes to use for generating db. source_file stringSource file used to genenerate sender db. Currently only support csv file. source_file source_file  string  string  string  string Source file used to genenerate sender db. Currently only support csv file. Source file used to genenerate sender db. Currently only support csv file. experimental_bucket_group_cnt int32[experimental] The number of group of bucket, each group has a db_file, default 1024. experimental_bucket_group_cnt experimental_bucket_group_cnt  int32  int32  int32  int32 [experimental] The number of group of bucket, each group has a db_file, default 1024. [experimental] The number of group of bucket, each group has a db_file, default 1024.  "},"57":{"url":"/psi/main/en/reference/pir_config#pirresultreport","type":"fragment","title":"PIR Configuration - PirResultReport","content":"The report of pir task. FieldTypeDescriptionmatch_cnt int64none FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description match_cnt int64none match_cnt int64none match_cnt match_cnt  int64  int64  int64  int64 none none  "},"58":{"url":"/psi/main/en/reference/pir_config#enums","type":"fragment","title":"PIR Configuration - Enums","content":" "},"59":{"url":"/psi/main/en/reference/pir_config#scalar-value-types","type":"fragment","title":"PIR Configuration - Scalar Value Types","content":".proto TypeNotesC++ TypeJava TypePython Type doubledoubledoublefloat floatfloatfloatfloat int32Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.int32intint int64Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.int64longint/long uint32Uses variable-length encoding.uint32intint/long uint64Uses variable-length encoding.uint64longint/long sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.int32intint sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.int64longint/long fixed32Always four bytes. More efficient than uint32 if values are often greater than 2^28.uint32intint fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^56.uint64longint/long sfixed32Always four bytes.int32intint sfixed64Always eight bytes.int64longint/long boolboolbooleanboolean stringA string must always contain UTF-8 encoded or 7-bit ASCII text.stringStringstr/unicode bytesMay contain any arbitrary sequence of bytes.stringByteStringstr .proto TypeNotesC++ TypeJava TypePython Type .proto TypeNotesC++ TypeJava TypePython Type .proto Type .proto Type Notes Notes C++ Type C++ Type Java Type Java Type Python Type Python Type  doubledoubledoublefloat floatfloatfloatfloat int32Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.int32intint int64Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.int64longint/long uint32Uses variable-length encoding.uint32intint/long uint64Uses variable-length encoding.uint64longint/long sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.int32intint sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.int64longint/long fixed32Always four bytes. More efficient than uint32 if values are often greater than 2^28.uint32intint fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^56.uint64longint/long sfixed32Always four bytes.int32intint sfixed64Always eight bytes.int64longint/long boolboolbooleanboolean stringA string must always contain UTF-8 encoded or 7-bit ASCII text.stringStringstr/unicode bytesMay contain any arbitrary sequence of bytes.stringByteStringstr  doubledoubledoublefloat  double  double  "},"60":{"url":"/psi/main/en/reference/psi_v2_config#psi-v2-configuration","type":"fragment","title":"PSI v2 Configuration","content":""},"61":{"url":"/psi/main/en/reference/psi_v2_config#table-of-contents","type":"fragment","title":"PSI v2 Configuration - Table of Contents","content":"\nMessages\n\nDebugOptions\nEcdhConfig\nInputAttr\nIoConfig\nKkrtConfig\nOutputAttr\nProtocolConfig\nPsiConfig\nRecoveryConfig\nRr22Config\nUbPsiConfig\n\n\nEnums\n\nIoType\nProtocol\nPsiConfig.AdvancedJoinType\nRole\nUbPsiConfig.Mode\n\n\nScalar Value Types\n Messages\n\nDebugOptions\nEcdhConfig\nInputAttr\nIoConfig\nKkrtConfig\nOutputAttr\nProtocolConfig\nPsiConfig\nRecoveryConfig\nRr22Config\nUbPsiConfig\n\n \nDebugOptions\nEcdhConfig\nInputAttr\nIoConfig\nKkrtConfig\nOutputAttr\nProtocolConfig\nPsiConfig\nRecoveryConfig\nRr22Config\nUbPsiConfig\n DebugOptions DebugOptions EcdhConfig EcdhConfig InputAttr InputAttr IoConfig IoConfig KkrtConfig KkrtConfig OutputAttr OutputAttr ProtocolConfig ProtocolConfig PsiConfig PsiConfig RecoveryConfig RecoveryConfig Rr22Config Rr22Config UbPsiConfig UbPsiConfig Enums\n\nIoType\nProtocol\nPsiConfig.AdvancedJoinType\nRole\nUbPsiConfig.Mode\n\n \nIoType\nProtocol\nPsiConfig.AdvancedJoinType\nRole\nUbPsiConfig.Mode\n IoType IoType Protocol Protocol PsiConfig.AdvancedJoinType PsiConfig.AdvancedJoinType Role Role UbPsiConfig.Mode UbPsiConfig.Mode Scalar Value Types Scalar Value Types  "},"62":{"url":"/psi/main/en/reference/psi_v2_config#messages","type":"fragment","title":"PSI v2 Configuration - Messages","content":""},"63":{"url":"/psi/main/en/reference/psi_v2_config#debugoptions","type":"fragment","title":"PSI v2 Configuration - DebugOptions","content":"Logging level for default logger.\nDefault to info.\nSupports: \ntrace: SPDLOG_LEVEL_TRACE\ndebug: SPDLOG_LEVEL_DEBUG\ninfo: SPDLOG_LEVEL_INFO\nwarn: SPDLOG_LEVEL_WARN\nerr: SPDLOG_LEVEL_ERROR\ncritical: SPDLOG_LEVEL_CRITICAL\noff: SPDLOG_LEVEL_OFF\n trace: SPDLOG_LEVEL_TRACE debug: SPDLOG_LEVEL_DEBUG info: SPDLOG_LEVEL_INFO warn: SPDLOG_LEVEL_WARN err: SPDLOG_LEVEL_ERROR critical: SPDLOG_LEVEL_CRITICAL off: SPDLOG_LEVEL_OFF FieldTypeDescriptionlogging_level stringnonetrace_path stringThe path of trace. Deafult to /tmp/psi.trace FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description logging_level stringnonetrace_path stringThe path of trace. Deafult to /tmp/psi.trace logging_level stringnone logging_level logging_level  string  string  string  string none none trace_path stringThe path of trace. Deafult to /tmp/psi.trace trace_path trace_path  string  string  string  string The path of trace. Deafult to /tmp/psi.trace The path of trace. Deafult to /tmp/psi.trace  "},"64":{"url":"/psi/main/en/reference/psi_v2_config#ecdhconfig","type":"fragment","title":"PSI v2 Configuration - EcdhConfig","content":"Configs for ECDH protocol. FieldTypeDescriptioncurve psi.CurveTypenonebatch_size uint64If not set, use default value: 4096. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description curve psi.CurveTypenonebatch_size uint64If not set, use default value: 4096. curve psi.CurveTypenone curve curve  psi.CurveType  psi.CurveType  psi.CurveType  psi.CurveType none none batch_size uint64If not set, use default value: 4096. batch_size batch_size  uint64  uint64  uint64  uint64 If not set, use default value: 4096. If not set, use default value: 4096.  "},"65":{"url":"/psi/main/en/reference/psi_v2_config#inputattr","type":"fragment","title":"PSI v2 Configuration - InputAttr","content":"FieldTypeDescriptionkeys_unique boolKeys in input file are unique. If not set, use default value: false. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description keys_unique boolKeys in input file are unique. If not set, use default value: false. keys_unique boolKeys in input file are unique. If not set, use default value: false. keys_unique keys_unique  bool  bool  bool  bool Keys in input file are unique. If not set, use default value: false. Keys in input file are unique. If not set, use default value: false.  "},"66":{"url":"/psi/main/en/reference/psi_v2_config#ioconfig","type":"fragment","title":"PSI v2 Configuration - IoConfig","content":"IO configuration. FieldTypeDescriptiontype IoTypenonepath stringRequired for FILE. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description type IoTypenonepath stringRequired for FILE. type IoTypenone type type  IoType  IoType  IoType none none path stringRequired for FILE. path path  string  string  string  string Required for FILE. Required for FILE.  "},"67":{"url":"/psi/main/en/reference/psi_v2_config#kkrtconfig","type":"fragment","title":"PSI v2 Configuration - KkrtConfig","content":"Configs for KKRT protocol FieldTypeDescriptionbucket_size uint64Since the total input may not fit in memory, the input may be splitted into buckets. bucket_size indicate the number of items in each bucket. If the memory of host is limited, you should set a smaller bucket size. Otherwise, you should use a larger one. If not set, use default value: 1 << 20. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description bucket_size uint64Since the total input may not fit in memory, the input may be splitted into buckets. bucket_size indicate the number of items in each bucket. If the memory of host is limited, you should set a smaller bucket size. Otherwise, you should use a larger one. If not set, use default value: 1 << 20. bucket_size uint64Since the total input may not fit in memory, the input may be splitted into buckets. bucket_size indicate the number of items in each bucket. If the memory of host is limited, you should set a smaller bucket size. Otherwise, you should use a larger one. If not set, use default value: 1 << 20. bucket_size bucket_size  uint64  uint64  uint64  uint64 Since the total input may not fit in memory, the input may be splitted into buckets. bucket_size indicate the number of items in each bucket. If the memory of host is limited, you should set a smaller bucket size. Otherwise, you should use a larger one. If not set, use default value: 1 << 20. Since the total input may not fit in memory, the input may be splitted into buckets. bucket_size indicate the number of items in each bucket. If the memory of host is limited, you should set a smaller bucket size. Otherwise, you should use a larger one. If not set, use default value: 1 << 20.  "},"68":{"url":"/psi/main/en/reference/psi_v2_config#outputattr","type":"fragment","title":"PSI v2 Configuration - OutputAttr","content":"FieldTypeDescriptioncsv_null_rep stringNull representation in output csv file. If not set, use default value: “NULL”. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description csv_null_rep stringNull representation in output csv file. If not set, use default value: “NULL”. csv_null_rep stringNull representation in output csv file. If not set, use default value: “NULL”. csv_null_rep csv_null_rep  string  string  string  string Null representation in output csv file. If not set, use default value: “NULL”. Null representation in output csv file. If not set, use default value: “NULL”.  "},"69":{"url":"/psi/main/en/reference/psi_v2_config#protocolconfig","type":"fragment","title":"PSI v2 Configuration - ProtocolConfig","content":"Any items related to PSI protocols. FieldTypeDescriptionprotocol Protocolnonerole Rolenonebroadcast_result boolReveal result to sender.ecdh_config EcdhConfigFor ECDH protocol.kkrt_config KkrtConfigFor KKRT protocol.rr22_config Rr22ConfigFor RR22 protocol. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description protocol Protocolnonerole Rolenonebroadcast_result boolReveal result to sender.ecdh_config EcdhConfigFor ECDH protocol.kkrt_config KkrtConfigFor KKRT protocol.rr22_config Rr22ConfigFor RR22 protocol. protocol Protocolnone protocol protocol  Protocol  Protocol  Protocol none none role Rolenone role role  Role  Role  Role none none broadcast_result boolReveal result to sender. broadcast_result broadcast_result  bool  bool  bool  bool Reveal result to sender. Reveal result to sender. ecdh_config EcdhConfigFor ECDH protocol. ecdh_config ecdh_config  EcdhConfig  EcdhConfig  EcdhConfig For ECDH protocol. For ECDH protocol. kkrt_config KkrtConfigFor KKRT protocol. kkrt_config kkrt_config  KkrtConfig  KkrtConfig  KkrtConfig For KKRT protocol. For KKRT protocol. rr22_config Rr22ConfigFor RR22 protocol. rr22_config rr22_config  Rr22Config  Rr22Config  Rr22Config For RR22 protocol. For RR22 protocol.  "},"70":{"url":"/psi/main/en/reference/psi_v2_config#psiconfig","type":"fragment","title":"PSI v2 Configuration - PsiConfig","content":"The top level of Configs.\nrun(PsiConfig)->PsiReport Advanced Joins\nType: Inner Join\ne.g. If input of receiver is  and input of sender is  After inner join.\nThe output of receiver is:  The output of sender is  Type: Left Join\nAfter left join.\nThe output of left side is:  The output of right side is  Type: Right Join\nAfter right join.\nThe output of left side is:  The output of right side is  Type: Full Join\nAfter full join.\nThe output of left side is:  The output of right side is  Type: Difference\nAfter difference.\nThe output of left side is:  The output of right side is  FieldTypeDescriptionprotocol_config ProtocolConfigConfigs for protocols.input_config IoConfigConfigs for input.output_config IoConfigConfigs for output.keysrepeated stringkeys for intersection.debug_options DebugOptionsLogging level.disable_alignment boolIt true, output is not promised to be aligned.recovery_config RecoveryConfigConfigs for recovery.advanced_join_type PsiConfig.AdvancedJoinTypenoneleft_side RoleRequired if advanced_join_type is ADVANCED_JOIN_TYPE_LEFT_JOIN or ADVANCED_JOIN_TYPE_RIGHT_JOIN.check_hash_digest boolCheck if hash digest of keys from parties are equal to determine whether to early-stop.input_attr InputAttrInput attributes.output_attr OutputAttrOutput attributes. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description protocol_config ProtocolConfigConfigs for protocols.input_config IoConfigConfigs for input.output_config IoConfigConfigs for output.keysrepeated stringkeys for intersection.debug_options DebugOptionsLogging level.disable_alignment boolIt true, output is not promised to be aligned.recovery_config RecoveryConfigConfigs for recovery.advanced_join_type PsiConfig.AdvancedJoinTypenoneleft_side RoleRequired if advanced_join_type is ADVANCED_JOIN_TYPE_LEFT_JOIN or ADVANCED_JOIN_TYPE_RIGHT_JOIN.check_hash_digest boolCheck if hash digest of keys from parties are equal to determine whether to early-stop.input_attr InputAttrInput attributes.output_attr OutputAttrOutput attributes. protocol_config ProtocolConfigConfigs for protocols. protocol_config protocol_config  ProtocolConfig  ProtocolConfig  ProtocolConfig Configs for protocols. Configs for protocols. input_config IoConfigConfigs for input. input_config input_config  IoConfig  IoConfig  IoConfig Configs for input. Configs for input. output_config IoConfigConfigs for output. output_config output_config  IoConfig  IoConfig  IoConfig Configs for output. Configs for output. keysrepeated stringkeys for intersection. keys keys repeated string repeated string repeated string repeated string keys for intersection. keys for intersection. debug_options DebugOptionsLogging level. debug_options debug_options  DebugOptions  DebugOptions  DebugOptions Logging level. Logging level. disable_alignment boolIt true, output is not promised to be aligned. disable_alignment disable_alignment  bool  bool  bool  bool It true, output is not promised to be aligned. It true, output is not promised to be aligned. recovery_config RecoveryConfigConfigs for recovery. recovery_config recovery_config  RecoveryConfig  RecoveryConfig  RecoveryConfig Configs for recovery. Configs for recovery. advanced_join_type PsiConfig.AdvancedJoinTypenone advanced_join_type advanced_join_type  PsiConfig.AdvancedJoinType  PsiConfig.AdvancedJoinType  PsiConfig.AdvancedJoinType none none left_side RoleRequired if advanced_join_type is ADVANCED_JOIN_TYPE_LEFT_JOIN or ADVANCED_JOIN_TYPE_RIGHT_JOIN. left_side left_side  Role  Role  Role Required if advanced_join_type is ADVANCED_JOIN_TYPE_LEFT_JOIN or ADVANCED_JOIN_TYPE_RIGHT_JOIN. Required if advanced_join_type is ADVANCED_JOIN_TYPE_LEFT_JOIN or ADVANCED_JOIN_TYPE_RIGHT_JOIN. check_hash_digest boolCheck if hash digest of keys from parties are equal to determine whether to early-stop. check_hash_digest check_hash_digest  bool  bool  bool  bool Check if hash digest of keys from parties are equal to determine whether to early-stop. Check if hash digest of keys from parties are equal to determine whether to early-stop. input_attr InputAttrInput attributes. input_attr input_attr  InputAttr  InputAttr  InputAttr Input attributes. Input attributes. output_attr OutputAttrOutput attributes. output_attr output_attr  OutputAttr  OutputAttr  OutputAttr Output attributes. Output attributes.  "},"71":{"url":"/psi/main/en/reference/psi_v2_config#recoveryconfig","type":"fragment","title":"PSI v2 Configuration - RecoveryConfig","content":"Configuration for recovery.\nIf a PSI task failed unexpectedly, e.g. network failures and restart, the\ntask can resume to the latest checkpoint to save time.\nHowever, enabling recovery would due in extra disk IOs and disk space\noccupation. FieldTypeDescriptionenabled boolnonefolder stringStores status and checkpoint files. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description enabled boolnonefolder stringStores status and checkpoint files. enabled boolnone enabled enabled  bool  bool  bool  bool none none folder stringStores status and checkpoint files. folder folder  string  string  string  string Stores status and checkpoint files. Stores status and checkpoint files.  "},"72":{"url":"/psi/main/en/reference/psi_v2_config#rr22config","type":"fragment","title":"PSI v2 Configuration - Rr22Config","content":"Configs for RR22 protocol. FieldTypeDescriptionbucket_size uint64Since the total input may not fit in memory, the input may be splitted into buckets. bucket_size indicate the number of items in each bucket. If the memory of host is limited, you should set a smaller bucket size. Otherwise, you should use a larger one. If not set, use default value: 1 << 20.low_comm_mode boolnone FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description bucket_size uint64Since the total input may not fit in memory, the input may be splitted into buckets. bucket_size indicate the number of items in each bucket. If the memory of host is limited, you should set a smaller bucket size. Otherwise, you should use a larger one. If not set, use default value: 1 << 20.low_comm_mode boolnone bucket_size uint64Since the total input may not fit in memory, the input may be splitted into buckets. bucket_size indicate the number of items in each bucket. If the memory of host is limited, you should set a smaller bucket size. Otherwise, you should use a larger one. If not set, use default value: 1 << 20. bucket_size bucket_size  uint64  uint64  uint64  uint64 Since the total input may not fit in memory, the input may be splitted into buckets. bucket_size indicate the number of items in each bucket. If the memory of host is limited, you should set a smaller bucket size. Otherwise, you should use a larger one. If not set, use default value: 1 << 20. Since the total input may not fit in memory, the input may be splitted into buckets. bucket_size indicate the number of items in each bucket. If the memory of host is limited, you should set a smaller bucket size. Otherwise, you should use a larger one. If not set, use default value: 1 << 20. low_comm_mode boolnone low_comm_mode low_comm_mode  bool  bool  bool  bool none none  "},"73":{"url":"/psi/main/en/reference/psi_v2_config#ubpsiconfig","type":"fragment","title":"PSI v2 Configuration - UbPsiConfig","content":"config for unbalanced psi. FieldTypeDescriptionmode UbPsiConfig.ModeRequired.role RoleRequired for all modes except MODE_OFFLINE_GEN_CACHE.input_config IoConfigConfig for origin input. Servers: Required for MODE_OFFLINE_GEN_CACHE, MODE_OFFLINE, MODE_FULL. Clients: Required for MODE_ONLINE and MODE_FULL.keysrepeated stringJoin keys. Servers: Required for MODE_OFFLINE_GEN_CACHE, MODE_OFFLINE, MODE_FULL. Clients: Required for MODE_ONLINE and MODE_FULL.server_secret_key_path stringServers: Required for MODE_OFFLINE_GEN_CACHE, MODE_OFFLINE, MODE_ONLINE and MODE_FULL.cache_path stringRequired.server_get_result boolnoneclient_get_result boolnonedisable_alignment boolIt true, output is not promised to be aligned. Valid if both server_get_result and client_get_result are true.output_config IoConfigRequired for MODE_ONLINE and MODE_FULL.debug_options DebugOptionsLogging level.advanced_join_type PsiConfig.AdvancedJoinTypenoneleft_side RoleRequired if advanced_join_type is ADVANCED_JOIN_TYPE_LEFT_JOIN or ADVANCED_JOIN_TYPE_RIGHT_JOIN.input_attr InputAttrInput attributes.output_attr OutputAttrOutput attributes. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description mode UbPsiConfig.ModeRequired.role RoleRequired for all modes except MODE_OFFLINE_GEN_CACHE.input_config IoConfigConfig for origin input. Servers: Required for MODE_OFFLINE_GEN_CACHE, MODE_OFFLINE, MODE_FULL. Clients: Required for MODE_ONLINE and MODE_FULL.keysrepeated stringJoin keys. Servers: Required for MODE_OFFLINE_GEN_CACHE, MODE_OFFLINE, MODE_FULL. Clients: Required for MODE_ONLINE and MODE_FULL.server_secret_key_path stringServers: Required for MODE_OFFLINE_GEN_CACHE, MODE_OFFLINE, MODE_ONLINE and MODE_FULL.cache_path stringRequired.server_get_result boolnoneclient_get_result boolnonedisable_alignment boolIt true, output is not promised to be aligned. Valid if both server_get_result and client_get_result are true.output_config IoConfigRequired for MODE_ONLINE and MODE_FULL.debug_options DebugOptionsLogging level.advanced_join_type PsiConfig.AdvancedJoinTypenoneleft_side RoleRequired if advanced_join_type is ADVANCED_JOIN_TYPE_LEFT_JOIN or ADVANCED_JOIN_TYPE_RIGHT_JOIN.input_attr InputAttrInput attributes.output_attr OutputAttrOutput attributes. mode UbPsiConfig.ModeRequired. mode mode  UbPsiConfig.Mode  UbPsiConfig.Mode  UbPsiConfig.Mode Required. Required. role RoleRequired for all modes except MODE_OFFLINE_GEN_CACHE. role role  Role  Role  Role Required for all modes except MODE_OFFLINE_GEN_CACHE. Required for all modes except MODE_OFFLINE_GEN_CACHE. input_config IoConfigConfig for origin input. Servers: Required for MODE_OFFLINE_GEN_CACHE, MODE_OFFLINE, MODE_FULL. Clients: Required for MODE_ONLINE and MODE_FULL. input_config input_config  IoConfig  IoConfig  IoConfig Config for origin input. Servers: Required for MODE_OFFLINE_GEN_CACHE, MODE_OFFLINE, MODE_FULL. Clients: Required for MODE_ONLINE and MODE_FULL. Config for origin input. Servers: Required for MODE_OFFLINE_GEN_CACHE, MODE_OFFLINE, MODE_FULL. Clients: Required for MODE_ONLINE and MODE_FULL. keysrepeated stringJoin keys. Servers: Required for MODE_OFFLINE_GEN_CACHE, MODE_OFFLINE, MODE_FULL. Clients: Required for MODE_ONLINE and MODE_FULL. keys keys repeated string repeated string repeated string repeated string Join keys. Servers: Required for MODE_OFFLINE_GEN_CACHE, MODE_OFFLINE, MODE_FULL. Clients: Required for MODE_ONLINE and MODE_FULL. Join keys. Servers: Required for MODE_OFFLINE_GEN_CACHE, MODE_OFFLINE, MODE_FULL. Clients: Required for MODE_ONLINE and MODE_FULL. server_secret_key_path stringServers: Required for MODE_OFFLINE_GEN_CACHE, MODE_OFFLINE, MODE_ONLINE and MODE_FULL. server_secret_key_path server_secret_key_path  string  string  string  string Servers: Required for MODE_OFFLINE_GEN_CACHE, MODE_OFFLINE, MODE_ONLINE and MODE_FULL. Servers: Required for MODE_OFFLINE_GEN_CACHE, MODE_OFFLINE, MODE_ONLINE and MODE_FULL. cache_path stringRequired. cache_path cache_path  string  string  string  string Required. Required. server_get_result boolnone server_get_result server_get_result  bool  bool  bool  bool none none client_get_result boolnone client_get_result client_get_result  bool  bool  bool  bool none none disable_alignment boolIt true, output is not promised to be aligned. Valid if both server_get_result and client_get_result are true. disable_alignment disable_alignment  bool  bool  bool  bool It true, output is not promised to be aligned. Valid if both server_get_result and client_get_result are true. It true, output is not promised to be aligned. Valid if both server_get_result and client_get_result are true. output_config IoConfigRequired for MODE_ONLINE and MODE_FULL. output_config output_config  IoConfig  IoConfig  IoConfig Required for MODE_ONLINE and MODE_FULL. Required for MODE_ONLINE and MODE_FULL. debug_options DebugOptionsLogging level. debug_options debug_options  DebugOptions  DebugOptions  DebugOptions Logging level. Logging level. advanced_join_type PsiConfig.AdvancedJoinTypenone advanced_join_type advanced_join_type  PsiConfig.AdvancedJoinType  PsiConfig.AdvancedJoinType  PsiConfig.AdvancedJoinType none none left_side RoleRequired if advanced_join_type is ADVANCED_JOIN_TYPE_LEFT_JOIN or ADVANCED_JOIN_TYPE_RIGHT_JOIN. left_side left_side  Role  Role  Role Required if advanced_join_type is ADVANCED_JOIN_TYPE_LEFT_JOIN or ADVANCED_JOIN_TYPE_RIGHT_JOIN. Required if advanced_join_type is ADVANCED_JOIN_TYPE_LEFT_JOIN or ADVANCED_JOIN_TYPE_RIGHT_JOIN. input_attr InputAttrInput attributes. input_attr input_attr  InputAttr  InputAttr  InputAttr Input attributes. Input attributes. output_attr OutputAttrOutput attributes. output_attr output_attr  OutputAttr  OutputAttr  OutputAttr Output attributes. Output attributes.  "},"74":{"url":"/psi/main/en/reference/psi_v2_config#enums","type":"fragment","title":"PSI v2 Configuration - Enums","content":""},"75":{"url":"/psi/main/en/reference/psi_v2_config#iotype","type":"fragment","title":"PSI v2 Configuration - IoType","content":"TODO(junfeng): support more io types including oss, sql, etc. NameNumberDescriptionIO_TYPE_UNSPECIFIED0noneIO_TYPE_FILE_CSV1Local csv file. NameNumberDescription NameNumberDescription Name Name Number Number Description Description IO_TYPE_UNSPECIFIED0noneIO_TYPE_FILE_CSV1Local csv file. IO_TYPE_UNSPECIFIED0none IO_TYPE_UNSPECIFIED IO_TYPE_UNSPECIFIED 0 0 none none IO_TYPE_FILE_CSV1Local csv file. IO_TYPE_FILE_CSV IO_TYPE_FILE_CSV 1 1 Local csv file. Local csv file. "},"76":{"url":"/psi/main/en/reference/psi_v2_config#protocol","type":"fragment","title":"PSI v2 Configuration - Protocol","content":"PSI protocols. NameNumberDescriptionPROTOCOL_UNSPECIFIED0nonePROTOCOL_ECDH1[Mea86]C. Meadows, “A More Efficient Cryptographic Matchmaking Protocol for Use in the Absence of a Continuously Available Third Party,” 1986 IEEE Symposium on Security and Privacy, Oakland, CA, USA, 1986, pp. 134-134, doi: 10.1109/SP.1986.10022.PROTOCOL_KKRT2Efficient Batched Oblivious PRF with Applications to Private Set Intersection https://eprint.iacr.org/2016/799.pdfPROTOCOL_RR223Blazing Fast PSI https://eprint.iacr.org/2022/320.pdf NameNumberDescription NameNumberDescription Name Name Number Number Description Description PROTOCOL_UNSPECIFIED0nonePROTOCOL_ECDH1[Mea86]C. Meadows, “A More Efficient Cryptographic Matchmaking Protocol for Use in the Absence of a Continuously Available Third Party,” 1986 IEEE Symposium on Security and Privacy, Oakland, CA, USA, 1986, pp. 134-134, doi: 10.1109/SP.1986.10022.PROTOCOL_KKRT2Efficient Batched Oblivious PRF with Applications to Private Set Intersection https://eprint.iacr.org/2016/799.pdfPROTOCOL_RR223Blazing Fast PSI https://eprint.iacr.org/2022/320.pdf PROTOCOL_UNSPECIFIED0none PROTOCOL_UNSPECIFIED PROTOCOL_UNSPECIFIED 0 0 none none PROTOCOL_ECDH1[Mea86]C. Meadows, “A More Efficient Cryptographic Matchmaking Protocol for Use in the Absence of a Continuously Available Third Party,” 1986 IEEE Symposium on Security and Privacy, Oakland, CA, USA, 1986, pp. 134-134, doi: 10.1109/SP.1986.10022. PROTOCOL_ECDH PROTOCOL_ECDH 1 1 [Mea86]C. Meadows, “A More Efficient Cryptographic Matchmaking Protocol for Use in the Absence of a Continuously Available Third Party,” 1986 IEEE Symposium on Security and Privacy, Oakland, CA, USA, 1986, pp. 134-134, doi: 10.1109/SP.1986.10022. [Mea86]C. Meadows, “A More Efficient Cryptographic Matchmaking Protocol for Use in the Absence of a Continuously Available Third Party,” 1986 IEEE Symposium on Security and Privacy, Oakland, CA, USA, 1986, pp. 134-134, doi: 10.1109/SP.1986.10022. PROTOCOL_KKRT2Efficient Batched Oblivious PRF with Applications to Private Set Intersection https://eprint.iacr.org/2016/799.pdf PROTOCOL_KKRT PROTOCOL_KKRT 2 2 Efficient Batched Oblivious PRF with Applications to Private Set Intersection https://eprint.iacr.org/2016/799.pdf Efficient Batched Oblivious PRF with Applications to Private Set Intersection https://eprint.iacr.org/2016/799.pdf https://eprint.iacr.org/2016/799.pdf PROTOCOL_RR223Blazing Fast PSI https://eprint.iacr.org/2022/320.pdf PROTOCOL_RR22 PROTOCOL_RR22 3 3 Blazing Fast PSI https://eprint.iacr.org/2022/320.pdf Blazing Fast PSI https://eprint.iacr.org/2022/320.pdf https://eprint.iacr.org/2022/320.pdf "},"77":{"url":"/psi/main/en/reference/psi_v2_config#psiconfig-advancedjointype","type":"fragment","title":"PSI v2 Configuration - PsiConfig.AdvancedJoinType","content":"Advanced Join allow duplicate keys. \nIf selected, duplicates_check is skipped.\nIf selected, both parties are allowed to contain duplicate keys.\nIf use left join, full join or difference, the size of difference set of\nleft party is revealed to right party.\nIf use right join, full join or difference, the size of difference set of\nright party is revealed to left party.\n If selected, duplicates_check is skipped. If selected, both parties are allowed to contain duplicate keys. If use left join, full join or difference, the size of difference set of\nleft party is revealed to right party. If use right join, full join or difference, the size of difference set of\nright party is revealed to left party. NameNumberDescriptionADVANCED_JOIN_TYPE_UNSPECIFIED0noneADVANCED_JOIN_TYPE_INNER_JOIN1noneADVANCED_JOIN_TYPE_LEFT_JOIN2noneADVANCED_JOIN_TYPE_RIGHT_JOIN3noneADVANCED_JOIN_TYPE_FULL_JOIN4noneADVANCED_JOIN_TYPE_DIFFERENCE5none NameNumberDescription NameNumberDescription Name Name Number Number Description Description ADVANCED_JOIN_TYPE_UNSPECIFIED0noneADVANCED_JOIN_TYPE_INNER_JOIN1noneADVANCED_JOIN_TYPE_LEFT_JOIN2noneADVANCED_JOIN_TYPE_RIGHT_JOIN3noneADVANCED_JOIN_TYPE_FULL_JOIN4noneADVANCED_JOIN_TYPE_DIFFERENCE5none ADVANCED_JOIN_TYPE_UNSPECIFIED0none ADVANCED_JOIN_TYPE_UNSPECIFIED ADVANCED_JOIN_TYPE_UNSPECIFIED 0 0 none none ADVANCED_JOIN_TYPE_INNER_JOIN1none ADVANCED_JOIN_TYPE_INNER_JOIN ADVANCED_JOIN_TYPE_INNER_JOIN 1 1 none none ADVANCED_JOIN_TYPE_LEFT_JOIN2none ADVANCED_JOIN_TYPE_LEFT_JOIN ADVANCED_JOIN_TYPE_LEFT_JOIN 2 2 none none ADVANCED_JOIN_TYPE_RIGHT_JOIN3none ADVANCED_JOIN_TYPE_RIGHT_JOIN ADVANCED_JOIN_TYPE_RIGHT_JOIN 3 3 none none ADVANCED_JOIN_TYPE_FULL_JOIN4none ADVANCED_JOIN_TYPE_FULL_JOIN ADVANCED_JOIN_TYPE_FULL_JOIN 4 4 none none ADVANCED_JOIN_TYPE_DIFFERENCE5none ADVANCED_JOIN_TYPE_DIFFERENCE ADVANCED_JOIN_TYPE_DIFFERENCE 5 5 none none "},"78":{"url":"/psi/main/en/reference/psi_v2_config#role","type":"fragment","title":"PSI v2 Configuration - Role","content":"Role of parties. NameNumberDescriptionROLE_UNSPECIFIED0noneROLE_RECEIVER1receiver In 2P symmetric PSI, receivers would always receive the result in the origin protocol.ROLE_SENDER2sender In 2P symmetric PSI, senders are the other participants apart from receiver.ROLE_SERVER3server In 2P unbalanced PSI, servers own a much larger dataset.ROLE_CLIENT4server In 2P unbalanced PSI, clients own a much smaller dataset. NameNumberDescription NameNumberDescription Name Name Number Number Description Description ROLE_UNSPECIFIED0noneROLE_RECEIVER1receiver In 2P symmetric PSI, receivers would always receive the result in the origin protocol.ROLE_SENDER2sender In 2P symmetric PSI, senders are the other participants apart from receiver.ROLE_SERVER3server In 2P unbalanced PSI, servers own a much larger dataset.ROLE_CLIENT4server In 2P unbalanced PSI, clients own a much smaller dataset. ROLE_UNSPECIFIED0none ROLE_UNSPECIFIED ROLE_UNSPECIFIED 0 0 none none ROLE_RECEIVER1receiver In 2P symmetric PSI, receivers would always receive the result in the origin protocol. ROLE_RECEIVER ROLE_RECEIVER 1 1 receiver In 2P symmetric PSI, receivers would always receive the result in the origin protocol. receiver In 2P symmetric PSI, receivers would always receive the result in the origin protocol. ROLE_SENDER2sender In 2P symmetric PSI, senders are the other participants apart from receiver. ROLE_SENDER ROLE_SENDER 2 2 sender In 2P symmetric PSI, senders are the other participants apart from receiver. sender In 2P symmetric PSI, senders are the other participants apart from receiver. ROLE_SERVER3server In 2P unbalanced PSI, servers own a much larger dataset. ROLE_SERVER ROLE_SERVER 3 3 server In 2P unbalanced PSI, servers own a much larger dataset. server In 2P unbalanced PSI, servers own a much larger dataset. ROLE_CLIENT4server In 2P unbalanced PSI, clients own a much smaller dataset. ROLE_CLIENT ROLE_CLIENT 4 4 server In 2P unbalanced PSI, clients own a much smaller dataset. server In 2P unbalanced PSI, clients own a much smaller dataset. "},"79":{"url":"/psi/main/en/reference/psi_v2_config#ubpsiconfig-mode","type":"fragment","title":"PSI v2 Configuration - UbPsiConfig.Mode","content":"NameNumberDescriptionMODE_UNSPECIFIED0noneMODE_OFFLINE_GEN_CACHE1Servers generate cache only. First part of offline stage.MODE_OFFLINE_TRANSFER_CACHE2Servers send cache to clients only. Second part of offline stage.MODE_OFFLINE3Run offline stage.MODE_ONLINE4Run online stage.MODE_FULL5Run all stages. NameNumberDescription NameNumberDescription Name Name Number Number Description Description MODE_UNSPECIFIED0noneMODE_OFFLINE_GEN_CACHE1Servers generate cache only. First part of offline stage.MODE_OFFLINE_TRANSFER_CACHE2Servers send cache to clients only. Second part of offline stage.MODE_OFFLINE3Run offline stage.MODE_ONLINE4Run online stage.MODE_FULL5Run all stages. MODE_UNSPECIFIED0none MODE_UNSPECIFIED MODE_UNSPECIFIED 0 0 none none MODE_OFFLINE_GEN_CACHE1Servers generate cache only. First part of offline stage. MODE_OFFLINE_GEN_CACHE MODE_OFFLINE_GEN_CACHE 1 1 Servers generate cache only. First part of offline stage. Servers generate cache only. First part of offline stage. MODE_OFFLINE_TRANSFER_CACHE2Servers send cache to clients only. Second part of offline stage. MODE_OFFLINE_TRANSFER_CACHE MODE_OFFLINE_TRANSFER_CACHE 2 2 Servers send cache to clients only. Second part of offline stage. Servers send cache to clients only. Second part of offline stage. MODE_OFFLINE3Run offline stage. MODE_OFFLINE MODE_OFFLINE 3 3 Run offline stage. Run offline stage. MODE_ONLINE4Run online stage. MODE_ONLINE MODE_ONLINE 4 4 Run online stage. Run online stage. MODE_FULL5Run all stages. MODE_FULL MODE_FULL 5 5 Run all stages. Run all stages.  "},"80":{"url":"/psi/main/en/reference/psi_v2_config#scalar-value-types","type":"fragment","title":"PSI v2 Configuration - Scalar Value Types","content":".proto TypeNotesC++ TypeJava TypePython Type doubledoubledoublefloat floatfloatfloatfloat int32Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.int32intint int64Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.int64longint/long uint32Uses variable-length encoding.uint32intint/long uint64Uses variable-length encoding.uint64longint/long sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.int32intint sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.int64longint/long fixed32Always four bytes. More efficient than uint32 if values are often greater than 2^28.uint32intint fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^56.uint64longint/long sfixed32Always four bytes.int32intint sfixed64Always eight bytes.int64longint/long boolboolbooleanboolean stringA string must always contain UTF-8 encoded or 7-bit ASCII text.stringStringstr/unicode bytesMay contain any arbitrary sequence of bytes.stringByteStringstr .proto TypeNotesC++ TypeJava TypePython Type .proto TypeNotesC++ TypeJava TypePython Type .proto Type .proto Type Notes Notes C++ Type C++ Type Java Type Java Type Python Type Python Type  doubledoubledoublefloat floatfloatfloatfloat int32Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.int32intint int64Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.int64longint/long uint32Uses variable-length encoding.uint32intint/long uint64Uses variable-length encoding.uint64longint/long sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.int32intint sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.int64longint/long fixed32Always four bytes. More efficient than uint32 if values are often greater than 2^28.uint32intint fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^56.uint64longint/long sfixed32Always four bytes.int32intint sfixed64Always eight bytes.int64longint/long boolboolbooleanboolean stringA string must always contain UTF-8 encoded or 7-bit ASCII text.stringStringstr/unicode bytesMay contain any arbitrary sequence of bytes.stringByteStringstr  doubledoubledoublefloat  double  double  "},"81":{"url":"/psi/main/en/reference/psi_config#psi-v1-configuration","type":"fragment","title":"PSI v1 Configuration","content":""},"82":{"url":"/psi/main/en/reference/psi_config#table-of-contents","type":"fragment","title":"PSI v1 Configuration - Table of Contents","content":"\nMessages\n\nBucketPsiConfig\nDpPsiParams\nInputParams\nMemoryPsiConfig\nOutputParams\nPsiResultReport\n\n\nEnums\n\nCurveType\nPsiType\n\n\nScalar Value Types\n Messages\n\nBucketPsiConfig\nDpPsiParams\nInputParams\nMemoryPsiConfig\nOutputParams\nPsiResultReport\n\n \nBucketPsiConfig\nDpPsiParams\nInputParams\nMemoryPsiConfig\nOutputParams\nPsiResultReport\n BucketPsiConfig BucketPsiConfig DpPsiParams DpPsiParams InputParams InputParams MemoryPsiConfig MemoryPsiConfig OutputParams OutputParams PsiResultReport PsiResultReport Enums\n\nCurveType\nPsiType\n\n \nCurveType\nPsiType\n CurveType CurveType PsiType PsiType Scalar Value Types Scalar Value Types  "},"83":{"url":"/psi/main/en/reference/psi_config#messages","type":"fragment","title":"PSI v1 Configuration - Messages","content":""},"84":{"url":"/psi/main/en/reference/psi_config#bucketpsiconfig","type":"fragment","title":"PSI v1 Configuration - BucketPsiConfig","content":" The Bucket-psi configuration.  FieldTypeDescriptionpsi_type PsiTypeThe psi type.receiver_rank uint32Specified the receiver rank. Receiver can get psi result.broadcast_result boolWhether to broadcast psi result to all parties.input_params InputParamsThe input parameters of psi.output_params OutputParamsThe output parameters of psi.curve_type CurveTypeOptional, specified elliptic curve cryptography used in psi when needed.bucket_size uint32Optional, specified the hash bucket size used in psi.preprocess_path stringOptional，the path of offline preprocess file.ecdh_secret_key_path stringOptional，secret key path of ecdh_oprf, 256bit/32bytes binary file.dppsi_params DpPsiParamsOptional，params for dp-psi FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description psi_type PsiTypeThe psi type.receiver_rank uint32Specified the receiver rank. Receiver can get psi result.broadcast_result boolWhether to broadcast psi result to all parties.input_params InputParamsThe input parameters of psi.output_params OutputParamsThe output parameters of psi.curve_type CurveTypeOptional, specified elliptic curve cryptography used in psi when needed.bucket_size uint32Optional, specified the hash bucket size used in psi.preprocess_path stringOptional，the path of offline preprocess file.ecdh_secret_key_path stringOptional，secret key path of ecdh_oprf, 256bit/32bytes binary file.dppsi_params DpPsiParamsOptional，params for dp-psi psi_type PsiTypeThe psi type. psi_type psi_type  PsiType  PsiType  PsiType The psi type. The psi type. receiver_rank uint32Specified the receiver rank. Receiver can get psi result. receiver_rank receiver_rank  uint32  uint32  uint32  uint32 Specified the receiver rank. Receiver can get psi result. Specified the receiver rank. Receiver can get psi result. broadcast_result boolWhether to broadcast psi result to all parties. broadcast_result broadcast_result  bool  bool  bool  bool Whether to broadcast psi result to all parties. Whether to broadcast psi result to all parties. input_params InputParamsThe input parameters of psi. input_params input_params  InputParams  InputParams  InputParams The input parameters of psi. The input parameters of psi. output_params OutputParamsThe output parameters of psi. output_params output_params  OutputParams  OutputParams  OutputParams The output parameters of psi. The output parameters of psi. curve_type CurveTypeOptional, specified elliptic curve cryptography used in psi when needed. curve_type curve_type  CurveType  CurveType  CurveType Optional, specified elliptic curve cryptography used in psi when needed. Optional, specified elliptic curve cryptography used in psi when needed. bucket_size uint32Optional, specified the hash bucket size used in psi. bucket_size bucket_size  uint32  uint32  uint32  uint32 Optional, specified the hash bucket size used in psi. Optional, specified the hash bucket size used in psi. preprocess_path stringOptional，the path of offline preprocess file. preprocess_path preprocess_path  string  string  string  string Optional，the path of offline preprocess file. Optional，the path of offline preprocess file. ecdh_secret_key_path stringOptional，secret key path of ecdh_oprf, 256bit/32bytes binary file. ecdh_secret_key_path ecdh_secret_key_path  string  string  string  string Optional，secret key path of ecdh_oprf, 256bit/32bytes binary file. Optional，secret key path of ecdh_oprf, 256bit/32bytes binary file. dppsi_params DpPsiParamsOptional，params for dp-psi dppsi_params dppsi_params  DpPsiParams  DpPsiParams  DpPsiParams Optional，params for dp-psi Optional，params for dp-psi  "},"85":{"url":"/psi/main/en/reference/psi_config#dppsiparams","type":"fragment","title":"PSI v1 Configuration - DpPsiParams","content":"The input parameters of dp-psi. FieldTypeDescriptionbob_sub_sampling doublebob sub-sampling bernoulli_distribution probability.epsilon doubledp epsilon FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description bob_sub_sampling doublebob sub-sampling bernoulli_distribution probability.epsilon doubledp epsilon bob_sub_sampling doublebob sub-sampling bernoulli_distribution probability. bob_sub_sampling bob_sub_sampling  double  double  double  double bob sub-sampling bernoulli_distribution probability. bob sub-sampling bernoulli_distribution probability. epsilon doubledp epsilon epsilon epsilon  double  double  double  double dp epsilon dp epsilon  "},"86":{"url":"/psi/main/en/reference/psi_config#inputparams","type":"fragment","title":"PSI v1 Configuration - InputParams","content":" The input parameters of psi. FieldTypeDescriptionpath stringThe path of input csv file.select_fieldsrepeated stringThe select fields of input data.precheck boolWhether to check select fields duplicate. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description path stringThe path of input csv file.select_fieldsrepeated stringThe select fields of input data.precheck boolWhether to check select fields duplicate. path stringThe path of input csv file. path path  string  string  string  string The path of input csv file. The path of input csv file. select_fieldsrepeated stringThe select fields of input data. select_fields select_fields repeated string repeated string repeated string repeated string The select fields of input data. The select fields of input data. precheck boolWhether to check select fields duplicate. precheck precheck  bool  bool  bool  bool Whether to check select fields duplicate. Whether to check select fields duplicate.  "},"87":{"url":"/psi/main/en/reference/psi_config#memorypsiconfig","type":"fragment","title":"PSI v1 Configuration - MemoryPsiConfig","content":" The In-memory psi configuration.  FieldTypeDescriptionpsi_type PsiTypeThe psi type.receiver_rank uint32Specified the receiver rank. Receiver can get psi result.broadcast_result boolWhether to broadcast psi result to all parties.curve_type CurveTypeOptional, specified elliptic curve cryptography used in psi when needed.dppsi_params DpPsiParamsOptional，Params for dp-psi FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description psi_type PsiTypeThe psi type.receiver_rank uint32Specified the receiver rank. Receiver can get psi result.broadcast_result boolWhether to broadcast psi result to all parties.curve_type CurveTypeOptional, specified elliptic curve cryptography used in psi when needed.dppsi_params DpPsiParamsOptional，Params for dp-psi psi_type PsiTypeThe psi type. psi_type psi_type  PsiType  PsiType  PsiType The psi type. The psi type. receiver_rank uint32Specified the receiver rank. Receiver can get psi result. receiver_rank receiver_rank  uint32  uint32  uint32  uint32 Specified the receiver rank. Receiver can get psi result. Specified the receiver rank. Receiver can get psi result. broadcast_result boolWhether to broadcast psi result to all parties. broadcast_result broadcast_result  bool  bool  bool  bool Whether to broadcast psi result to all parties. Whether to broadcast psi result to all parties. curve_type CurveTypeOptional, specified elliptic curve cryptography used in psi when needed. curve_type curve_type  CurveType  CurveType  CurveType Optional, specified elliptic curve cryptography used in psi when needed. Optional, specified elliptic curve cryptography used in psi when needed. dppsi_params DpPsiParamsOptional，Params for dp-psi dppsi_params dppsi_params  DpPsiParams  DpPsiParams  DpPsiParams Optional，Params for dp-psi Optional，Params for dp-psi  "},"88":{"url":"/psi/main/en/reference/psi_config#outputparams","type":"fragment","title":"PSI v1 Configuration - OutputParams","content":" The output parameters of psi. FieldTypeDescriptionpath stringThe path of output csv file.need_sort boolWhether to sort output file by select fields. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description path stringThe path of output csv file.need_sort boolWhether to sort output file by select fields. path stringThe path of output csv file. path path  string  string  string  string The path of output csv file. The path of output csv file. need_sort boolWhether to sort output file by select fields. need_sort need_sort  bool  bool  bool  bool Whether to sort output file by select fields. Whether to sort output file by select fields.  "},"89":{"url":"/psi/main/en/reference/psi_config#psiresultreport","type":"fragment","title":"PSI v1 Configuration - PsiResultReport","content":"The report of psi result. FieldTypeDescriptionoriginal_count int64The data count of input.intersection_count int64The count of intersection. Get -1 when self party can not get result.original_key_count int64noneintersection_key_count int64none FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description original_count int64The data count of input.intersection_count int64The count of intersection. Get -1 when self party can not get result.original_key_count int64noneintersection_key_count int64none original_count int64The data count of input. original_count original_count  int64  int64  int64  int64 The data count of input. The data count of input. intersection_count int64The count of intersection. Get -1 when self party can not get result. intersection_count intersection_count  int64  int64  int64  int64 The count of intersection. Get -1 when self party can not get result. The count of intersection. Get -1 when self party can not get result. -1 original_key_count int64none original_key_count original_key_count  int64  int64  int64  int64 none none intersection_key_count int64none intersection_key_count intersection_key_count  int64  int64  int64  int64 none none  "},"90":{"url":"/psi/main/en/reference/psi_config#enums","type":"fragment","title":"PSI v1 Configuration - Enums","content":""},"91":{"url":"/psi/main/en/reference/psi_config#curvetype","type":"fragment","title":"PSI v1 Configuration - CurveType","content":"The specified elliptic curve cryptography used in psi. NameNumberDescriptionCURVE_INVALID_TYPE0noneCURVE_255191Daniel J. Bernstein. Curve25519: new diffie-hellman speed recordsCURVE_FOURQ2FourQ: four-dimensional decompositions on a Q-curve over the Mersenne primeCURVE_SM23SM2 is an elliptic curve based cryptosystem (ECC) published as a Chinese National Standard as GBT.32918.1-2016 and published in ISO/IEC 14888-3CURVE_SECP256K14parameters of the elliptic curve defined in Standards for Efficient Cryptography (SEC) http://www.secg.org/sec2-v2.pdfCURVE_25519_ELLIGATOR25Curve25519 with rfc9380 elligator2 hash_to_curve NameNumberDescription NameNumberDescription Name Name Number Number Description Description CURVE_INVALID_TYPE0noneCURVE_255191Daniel J. Bernstein. Curve25519: new diffie-hellman speed recordsCURVE_FOURQ2FourQ: four-dimensional decompositions on a Q-curve over the Mersenne primeCURVE_SM23SM2 is an elliptic curve based cryptosystem (ECC) published as a Chinese National Standard as GBT.32918.1-2016 and published in ISO/IEC 14888-3CURVE_SECP256K14parameters of the elliptic curve defined in Standards for Efficient Cryptography (SEC) http://www.secg.org/sec2-v2.pdfCURVE_25519_ELLIGATOR25Curve25519 with rfc9380 elligator2 hash_to_curve CURVE_INVALID_TYPE0none CURVE_INVALID_TYPE CURVE_INVALID_TYPE 0 0 none none CURVE_255191Daniel J. Bernstein. Curve25519: new diffie-hellman speed records CURVE_25519 CURVE_25519 1 1 Daniel J. Bernstein. Curve25519: new diffie-hellman speed records Daniel J. Bernstein. Curve25519: new diffie-hellman speed records CURVE_FOURQ2FourQ: four-dimensional decompositions on a Q-curve over the Mersenne prime CURVE_FOURQ CURVE_FOURQ 2 2 FourQ: four-dimensional decompositions on a Q-curve over the Mersenne prime FourQ: four-dimensional decompositions on a Q-curve over the Mersenne prime CURVE_SM23SM2 is an elliptic curve based cryptosystem (ECC) published as a Chinese National Standard as GBT.32918.1-2016 and published in ISO/IEC 14888-3 CURVE_SM2 CURVE_SM2 3 3 SM2 is an elliptic curve based cryptosystem (ECC) published as a Chinese National Standard as GBT.32918.1-2016 and published in ISO/IEC 14888-3 SM2 is an elliptic curve based cryptosystem (ECC) published as a Chinese National Standard as GBT.32918.1-2016 and published in ISO/IEC 14888-3 CURVE_SECP256K14parameters of the elliptic curve defined in Standards for Efficient Cryptography (SEC) http://www.secg.org/sec2-v2.pdf CURVE_SECP256K1 CURVE_SECP256K1 4 4 parameters of the elliptic curve defined in Standards for Efficient Cryptography (SEC) http://www.secg.org/sec2-v2.pdf parameters of the elliptic curve defined in Standards for Efficient Cryptography (SEC) http://www.secg.org/sec2-v2.pdf http://www.secg.org/sec2-v2.pdf CURVE_25519_ELLIGATOR25Curve25519 with rfc9380 elligator2 hash_to_curve CURVE_25519_ELLIGATOR2 CURVE_25519_ELLIGATOR2 5 5 Curve25519 with rfc9380 elligator2 hash_to_curve Curve25519 with rfc9380 elligator2 hash_to_curve "},"92":{"url":"/psi/main/en/reference/psi_config#psitype","type":"fragment","title":"PSI v1 Configuration - PsiType","content":" The algorithm type of psi. NameNumberDescriptionINVALID_PSI_TYPE0noneECDH_PSI_2PC1NOTICED: No longer supported DDH based PSIKKRT_PSI_2PC2NOTICED: No longer supported Efficient Batched Oblivious PRF with Applications to Private Set Intersection https://eprint.iacr.org/2016/799.pdfECDH_PSI_3PC4Multi-party PSI based on ECDH (Say A, B, C (receiver)) notice: two-party intersection cardinarlity leak (ECDH_PSI_NPC5Iterative running 2-party ecdh psi to get n-party PSI. Notice: two-party intersection leakKKRT_PSI_NPC6Iterative running 2-party kkrt psi to get n-party PSI. Notice: two-party intersection leakECDH_OPRF_UB_PSI_2PC_GEN_CACHE7NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI Generate CACHE.ECDH_OPRF_UB_PSI_2PC_TRANSFER_CACHE8NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI transfer CACHE.ECDH_OPRF_UB_PSI_2PC_OFFLINE9NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI offline phase.ECDH_OPRF_UB_PSI_2PC_ONLINE10NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI online phase.ECDH_OPRF_UB_PSI_2PC_SHUFFLE_ONLINE11NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI with shuffling online phase. large set party get intersection resultDP_PSI_2PC12Differentially-Private PSI https://arxiv.org/pdf/2208.13249.pdf bases on ECDH-PSI, and provides: Differentially private PSI results.RR22_FAST_PSI_2PC13NOTICED: No longer supported Blazing Fast PSI https://eprint.iacr.org/2022/320.pdf two mode: fast mode or low communication modeRR22_LOWCOMM_PSI_2PC14noneRR22_MALICIOUS_PSI_2PC15none NameNumberDescription NameNumberDescription Name Name Number Number Description Description INVALID_PSI_TYPE0noneECDH_PSI_2PC1NOTICED: No longer supported DDH based PSIKKRT_PSI_2PC2NOTICED: No longer supported Efficient Batched Oblivious PRF with Applications to Private Set Intersection https://eprint.iacr.org/2016/799.pdfECDH_PSI_3PC4Multi-party PSI based on ECDH (Say A, B, C (receiver)) notice: two-party intersection cardinarlity leak (ECDH_PSI_NPC5Iterative running 2-party ecdh psi to get n-party PSI. Notice: two-party intersection leakKKRT_PSI_NPC6Iterative running 2-party kkrt psi to get n-party PSI. Notice: two-party intersection leakECDH_OPRF_UB_PSI_2PC_GEN_CACHE7NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI Generate CACHE.ECDH_OPRF_UB_PSI_2PC_TRANSFER_CACHE8NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI transfer CACHE.ECDH_OPRF_UB_PSI_2PC_OFFLINE9NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI offline phase.ECDH_OPRF_UB_PSI_2PC_ONLINE10NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI online phase.ECDH_OPRF_UB_PSI_2PC_SHUFFLE_ONLINE11NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI with shuffling online phase. large set party get intersection resultDP_PSI_2PC12Differentially-Private PSI https://arxiv.org/pdf/2208.13249.pdf bases on ECDH-PSI, and provides: Differentially private PSI results.RR22_FAST_PSI_2PC13NOTICED: No longer supported Blazing Fast PSI https://eprint.iacr.org/2022/320.pdf two mode: fast mode or low communication modeRR22_LOWCOMM_PSI_2PC14noneRR22_MALICIOUS_PSI_2PC15none INVALID_PSI_TYPE0none INVALID_PSI_TYPE INVALID_PSI_TYPE 0 0 none none ECDH_PSI_2PC1NOTICED: No longer supported DDH based PSI ECDH_PSI_2PC ECDH_PSI_2PC 1 1 NOTICED: No longer supported DDH based PSI NOTICED: No longer supported DDH based PSI NOTICED: No longer supported KKRT_PSI_2PC2NOTICED: No longer supported Efficient Batched Oblivious PRF with Applications to Private Set Intersection https://eprint.iacr.org/2016/799.pdf KKRT_PSI_2PC KKRT_PSI_2PC 2 2 NOTICED: No longer supported Efficient Batched Oblivious PRF with Applications to Private Set Intersection https://eprint.iacr.org/2016/799.pdf NOTICED: No longer supported Efficient Batched Oblivious PRF with Applications to Private Set Intersection https://eprint.iacr.org/2016/799.pdf NOTICED: No longer supported https://eprint.iacr.org/2016/799.pdf ECDH_PSI_3PC4Multi-party PSI based on ECDH (Say A, B, C (receiver)) notice: two-party intersection cardinarlity leak ( ECDH_PSI_3PC ECDH_PSI_3PC 4 4 Multi-party PSI based on ECDH (Say A, B, C (receiver)) notice: two-party intersection cardinarlity leak ( Multi-party PSI based on ECDH (Say A, B, C (receiver)) notice: two-party intersection cardinarlity leak ( ECDH_PSI_NPC5Iterative running 2-party ecdh psi to get n-party PSI. Notice: two-party intersection leak ECDH_PSI_NPC ECDH_PSI_NPC 5 5 Iterative running 2-party ecdh psi to get n-party PSI. Notice: two-party intersection leak Iterative running 2-party ecdh psi to get n-party PSI. Notice: two-party intersection leak KKRT_PSI_NPC6Iterative running 2-party kkrt psi to get n-party PSI. Notice: two-party intersection leak KKRT_PSI_NPC KKRT_PSI_NPC 6 6 Iterative running 2-party kkrt psi to get n-party PSI. Notice: two-party intersection leak Iterative running 2-party kkrt psi to get n-party PSI. Notice: two-party intersection leak ECDH_OPRF_UB_PSI_2PC_GEN_CACHE7NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI Generate CACHE. ECDH_OPRF_UB_PSI_2PC_GEN_CACHE ECDH_OPRF_UB_PSI_2PC_GEN_CACHE 7 7 NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI Generate CACHE. NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI Generate CACHE. NOTICED: No longer supported ECDH_OPRF_UB_PSI_2PC_TRANSFER_CACHE8NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI transfer CACHE. ECDH_OPRF_UB_PSI_2PC_TRANSFER_CACHE ECDH_OPRF_UB_PSI_2PC_TRANSFER_CACHE 8 8 NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI transfer CACHE. NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI transfer CACHE. NOTICED: No longer supported ECDH_OPRF_UB_PSI_2PC_OFFLINE9NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI offline phase. ECDH_OPRF_UB_PSI_2PC_OFFLINE ECDH_OPRF_UB_PSI_2PC_OFFLINE 9 9 NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI offline phase. NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI offline phase. NOTICED: No longer supported ECDH_OPRF_UB_PSI_2PC_ONLINE10NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI online phase. ECDH_OPRF_UB_PSI_2PC_ONLINE ECDH_OPRF_UB_PSI_2PC_ONLINE 10 10 NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI online phase. NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI online phase. NOTICED: No longer supported ECDH_OPRF_UB_PSI_2PC_SHUFFLE_ONLINE11NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI with shuffling online phase. large set party get intersection result ECDH_OPRF_UB_PSI_2PC_SHUFFLE_ONLINE ECDH_OPRF_UB_PSI_2PC_SHUFFLE_ONLINE 11 11 NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI with shuffling online phase. large set party get intersection result NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI with shuffling online phase. large set party get intersection result NOTICED: No longer supported DP_PSI_2PC12Differentially-Private PSI https://arxiv.org/pdf/2208.13249.pdf bases on ECDH-PSI, and provides: Differentially private PSI results. DP_PSI_2PC DP_PSI_2PC 12 12 Differentially-Private PSI https://arxiv.org/pdf/2208.13249.pdf bases on ECDH-PSI, and provides: Differentially private PSI results. Differentially-Private PSI https://arxiv.org/pdf/2208.13249.pdf bases on ECDH-PSI, and provides: Differentially private PSI results. https://arxiv.org/pdf/2208.13249.pdf RR22_FAST_PSI_2PC13NOTICED: No longer supported Blazing Fast PSI https://eprint.iacr.org/2022/320.pdf two mode: fast mode or low communication mode RR22_FAST_PSI_2PC RR22_FAST_PSI_2PC 13 13 NOTICED: No longer supported Blazing Fast PSI https://eprint.iacr.org/2022/320.pdf two mode: fast mode or low communication mode NOTICED: No longer supported Blazing Fast PSI https://eprint.iacr.org/2022/320.pdf two mode: fast mode or low communication mode NOTICED: No longer supported https://eprint.iacr.org/2022/320.pdf RR22_LOWCOMM_PSI_2PC14none RR22_LOWCOMM_PSI_2PC RR22_LOWCOMM_PSI_2PC 14 14 none none RR22_MALICIOUS_PSI_2PC15none RR22_MALICIOUS_PSI_2PC RR22_MALICIOUS_PSI_2PC 15 15 none none  "},"93":{"url":"/psi/main/en/reference/psi_config#scalar-value-types","type":"fragment","title":"PSI v1 Configuration - Scalar Value Types","content":".proto TypeNotesC++ TypeJava TypePython Type doubledoubledoublefloat floatfloatfloatfloat int32Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.int32intint int64Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.int64longint/long uint32Uses variable-length encoding.uint32intint/long uint64Uses variable-length encoding.uint64longint/long sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.int32intint sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.int64longint/long fixed32Always four bytes. More efficient than uint32 if values are often greater than 2^28.uint32intint fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^56.uint64longint/long sfixed32Always four bytes.int32intint sfixed64Always eight bytes.int64longint/long boolboolbooleanboolean stringA string must always contain UTF-8 encoded or 7-bit ASCII text.stringStringstr/unicode bytesMay contain any arbitrary sequence of bytes.stringByteStringstr .proto TypeNotesC++ TypeJava TypePython Type .proto TypeNotesC++ TypeJava TypePython Type .proto Type .proto Type Notes Notes C++ Type C++ Type Java Type Java Type Python Type Python Type  doubledoubledoublefloat floatfloatfloatfloat int32Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.int32intint int64Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.int64longint/long uint32Uses variable-length encoding.uint32intint/long uint64Uses variable-length encoding.uint64longint/long sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.int32intint sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.int64longint/long fixed32Always four bytes. More efficient than uint32 if values are often greater than 2^28.uint32intint fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^56.uint64longint/long sfixed32Always four bytes.int32intint sfixed64Always eight bytes.int64longint/long boolboolbooleanboolean stringA string must always contain UTF-8 encoded or 7-bit ASCII text.stringStringstr/unicode bytesMay contain any arbitrary sequence of bytes.stringByteStringstr  doubledoubledoublefloat  double  double  "},"94":{"url":"/psi/main/en/reference/launch_config#launch-configuration","type":"fragment","title":"Launch Configuration","content":"Please check psi.BucketPsiConfig at PSI v1 Configuration.\nPlease check psi.v2.PsiConfig and psi.v2.UbPsiConfig at PSI v2 Configuration. PSI v1 Configuration PSI v2 Configuration "},"95":{"url":"/psi/main/en/reference/launch_config#table-of-contents","type":"fragment","title":"Launch Configuration - Table of Contents","content":"\nMessages\n\nLaunchConfig\n\n\nMessages\n\nAllocatedPorts\nClusterDefine\nParty\nPort\nService\nTaskInputConfig\nTaskInputConfig.SfPsiConfigMapEntry\n\n\nMessages\n\nContextDescProto\nPartyProto\nRetryOptionsProto\nSSLOptionsProto\n\n\nScalar Value Types\n Messages\n\nLaunchConfig\n\n \nLaunchConfig\n LaunchConfig LaunchConfig Messages\n\nAllocatedPorts\nClusterDefine\nParty\nPort\nService\nTaskInputConfig\nTaskInputConfig.SfPsiConfigMapEntry\n\n \nAllocatedPorts\nClusterDefine\nParty\nPort\nService\nTaskInputConfig\nTaskInputConfig.SfPsiConfigMapEntry\n AllocatedPorts AllocatedPorts ClusterDefine ClusterDefine Party Party Port Port Service Service TaskInputConfig TaskInputConfig TaskInputConfig.SfPsiConfigMapEntry TaskInputConfig.SfPsiConfigMapEntry Messages\n\nContextDescProto\nPartyProto\nRetryOptionsProto\nSSLOptionsProto\n\n \nContextDescProto\nPartyProto\nRetryOptionsProto\nSSLOptionsProto\n ContextDescProto ContextDescProto PartyProto PartyProto RetryOptionsProto RetryOptionsProto SSLOptionsProto SSLOptionsProto Scalar Value Types Scalar Value Types  "},"96":{"url":"/psi/main/en/reference/launch_config#messages","type":"fragment","title":"Launch Configuration - Messages","content":""},"97":{"url":"/psi/main/en/reference/launch_config#launchconfig","type":"fragment","title":"Launch Configuration - LaunchConfig","content":"FieldTypeDescriptionlink_config yacl.link.ContextDescProtoConfigs for network.self_link_party stringWith link_config.oneof runtime_config.legacy_psi_config BucketPsiConfigPlease check at psi.proto.oneof runtime_config.psi_config v2.PsiConfigPlease check at psi_v2.proto.oneof runtime_config.ub_psi_config v2.UbPsiConfigPlease check at psi_v2.proto.oneof runtime_config.apsi_sender_config ApsiSenderConfigPlease check at pir.proto.oneof runtime_config.apsi_receiver_config ApsiReceiverConfignone FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description link_config yacl.link.ContextDescProtoConfigs for network.self_link_party stringWith link_config.oneof runtime_config.legacy_psi_config BucketPsiConfigPlease check at psi.proto.oneof runtime_config.psi_config v2.PsiConfigPlease check at psi_v2.proto.oneof runtime_config.ub_psi_config v2.UbPsiConfigPlease check at psi_v2.proto.oneof runtime_config.apsi_sender_config ApsiSenderConfigPlease check at pir.proto.oneof runtime_config.apsi_receiver_config ApsiReceiverConfignone link_config yacl.link.ContextDescProtoConfigs for network. link_config link_config  yacl.link.ContextDescProto  yacl.link.ContextDescProto  yacl.link.ContextDescProto  yacl.link.ContextDescProto Configs for network. Configs for network. self_link_party stringWith link_config. self_link_party self_link_party  string  string  string  string With link_config. With link_config. oneof runtime_config.legacy_psi_config BucketPsiConfigPlease check at psi.proto. oneof runtime_config.legacy_psi_config oneof runtime_config.legacy_psi_config oneof oneof  BucketPsiConfig  BucketPsiConfig  BucketPsiConfig  BucketPsiConfig Please check at psi.proto. Please check at psi.proto. oneof runtime_config.psi_config v2.PsiConfigPlease check at psi_v2.proto. oneof runtime_config.psi_config oneof runtime_config.psi_config oneof oneof  v2.PsiConfig  v2.PsiConfig  v2.PsiConfig  v2.PsiConfig Please check at psi_v2.proto. Please check at psi_v2.proto. oneof runtime_config.ub_psi_config v2.UbPsiConfigPlease check at psi_v2.proto. oneof runtime_config.ub_psi_config oneof runtime_config.ub_psi_config oneof oneof  v2.UbPsiConfig  v2.UbPsiConfig  v2.UbPsiConfig  v2.UbPsiConfig Please check at psi_v2.proto. Please check at psi_v2.proto. oneof runtime_config.apsi_sender_config ApsiSenderConfigPlease check at pir.proto. oneof runtime_config.apsi_sender_config oneof runtime_config.apsi_sender_config oneof oneof  ApsiSenderConfig  ApsiSenderConfig  ApsiSenderConfig  ApsiSenderConfig Please check at pir.proto. Please check at pir.proto. oneof runtime_config.apsi_receiver_config ApsiReceiverConfignone oneof runtime_config.apsi_receiver_config oneof runtime_config.apsi_receiver_config oneof oneof  ApsiReceiverConfig  ApsiReceiverConfig  ApsiReceiverConfig  ApsiReceiverConfig none none  "},"98":{"url":"/psi/main/en/reference/launch_config#enums","type":"fragment","title":"Launch Configuration - Enums","content":" "},"99":{"url":"/psi/main/en/reference/launch_config#id1","type":"fragment","title":"Launch Configuration - Messages","content":""},"100":{"url":"/psi/main/en/reference/launch_config#allocatedports","type":"fragment","title":"Launch Configuration - AllocatedPorts","content":"AllocatedPorts represents allocated ports for pod. FieldTypeDescriptionportsrepeated PortAllocated ports. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description portsrepeated PortAllocated ports. portsrepeated PortAllocated ports. ports ports repeated Port repeated Port repeated Port Allocated ports. Allocated ports.  "},"101":{"url":"/psi/main/en/reference/launch_config#clusterdefine","type":"fragment","title":"Launch Configuration - ClusterDefine","content":"ClusterDefine represents the information of all parties. FieldTypeDescriptionpartiesrepeated PartyBasic information of all parties.self_party_idx int32index of self party.self_endpoint_idx int32index of self endpoint. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description partiesrepeated PartyBasic information of all parties.self_party_idx int32index of self party.self_endpoint_idx int32index of self endpoint. partiesrepeated PartyBasic information of all parties. parties parties repeated Party repeated Party repeated Party Basic information of all parties. Basic information of all parties. self_party_idx int32index of self party. self_party_idx self_party_idx  int32  int32  int32  int32 index of self party. index of self party. self_endpoint_idx int32index of self endpoint. self_endpoint_idx self_endpoint_idx  int32  int32  int32  int32 index of self endpoint. index of self endpoint.  "},"102":{"url":"/psi/main/en/reference/launch_config#party","type":"fragment","title":"Launch Configuration - Party","content":"Party represents the basic information of the party. FieldTypeDescriptionname stringName of party.role stringrole carried by party. Examples: client, server…servicesrepeated ServiceList of services exposed by pod. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description name stringName of party.role stringrole carried by party. Examples: client, server…servicesrepeated ServiceList of services exposed by pod. name stringName of party. name name  string  string  string  string Name of party. Name of party. role stringrole carried by party. Examples: client, server… role role  string  string  string  string role carried by party. Examples: client, server… role carried by party. Examples: client, server… servicesrepeated ServiceList of services exposed by pod. services services repeated Service repeated Service repeated Service List of services exposed by pod. List of services exposed by pod.  "},"103":{"url":"/psi/main/en/reference/launch_config#port","type":"fragment","title":"Launch Configuration - Port","content":"Port represents an allocated port for pod. FieldTypeDescriptionname stringEach named port in a pod must have a unique name.port int32Number of port allocated for pod.scope stringScope of port. Must be Cluster,Domain,Local. Defaults to “Local”. +optionalprotocol stringProtocol for port. Must be HTTP,GRPC. Defaults to “HTTP”. +optional FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description name stringEach named port in a pod must have a unique name.port int32Number of port allocated for pod.scope stringScope of port. Must be Cluster,Domain,Local. Defaults to “Local”. +optionalprotocol stringProtocol for port. Must be HTTP,GRPC. Defaults to “HTTP”. +optional name stringEach named port in a pod must have a unique name. name name  string  string  string  string Each named port in a pod must have a unique name. Each named port in a pod must have a unique name. port int32Number of port allocated for pod. port port  int32  int32  int32  int32 Number of port allocated for pod. Number of port allocated for pod. scope stringScope of port. Must be Cluster,Domain,Local. Defaults to “Local”. +optional scope scope  string  string  string  string Scope of port. Must be Cluster,Domain,Local. Defaults to “Local”. +optional Scope of port. Must be Cluster,Domain,Local. Defaults to “Local”. +optional protocol stringProtocol for port. Must be HTTP,GRPC. Defaults to “HTTP”. +optional protocol protocol  string  string  string  string Protocol for port. Must be HTTP,GRPC. Defaults to “HTTP”. +optional Protocol for port. Must be HTTP,GRPC. Defaults to “HTTP”. +optional  "},"104":{"url":"/psi/main/en/reference/launch_config#service","type":"fragment","title":"Launch Configuration - Service","content":"Service represents the service address corresponding to the port. FieldTypeDescriptionport_name stringName of port.endpointsrepeated stringEndpoint list corresponding to the port. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description port_name stringName of port.endpointsrepeated stringEndpoint list corresponding to the port. port_name stringName of port. port_name port_name  string  string  string  string Name of port. Name of port. endpointsrepeated stringEndpoint list corresponding to the port. endpoints endpoints repeated string repeated string repeated string repeated string Endpoint list corresponding to the port. Endpoint list corresponding to the port.  "},"105":{"url":"/psi/main/en/reference/launch_config#taskinputconfig","type":"fragment","title":"Launch Configuration - TaskInputConfig","content":"FieldTypeDescriptionsf_psi_config_mapmap TaskInputConfig.SfPsiConfigMapEntrynone FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description sf_psi_config_mapmap TaskInputConfig.SfPsiConfigMapEntrynone sf_psi_config_mapmap TaskInputConfig.SfPsiConfigMapEntrynone sf_psi_config_map sf_psi_config_map map TaskInputConfig.SfPsiConfigMapEntry map TaskInputConfig.SfPsiConfigMapEntry map TaskInputConfig.SfPsiConfigMapEntry none none  "},"106":{"url":"/psi/main/en/reference/launch_config#taskinputconfig-sfpsiconfigmapentry","type":"fragment","title":"Launch Configuration - TaskInputConfig.SfPsiConfigMapEntry","content":"FieldTypeDescriptionkey stringnonevalue psi.LaunchConfignone FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description key stringnonevalue psi.LaunchConfignone key stringnone key key  string  string  string  string none none value psi.LaunchConfignone value value  psi.LaunchConfig  psi.LaunchConfig  psi.LaunchConfig  psi.LaunchConfig none none  "},"107":{"url":"/psi/main/en/reference/launch_config#id2","type":"fragment","title":"Launch Configuration - Enums","content":" "},"108":{"url":"/psi/main/en/reference/launch_config#id3","type":"fragment","title":"Launch Configuration - Messages","content":""},"109":{"url":"/psi/main/en/reference/launch_config#contextdescproto","type":"fragment","title":"Launch Configuration - ContextDescProto","content":"Configuration for link config. FieldTypeDescriptionid stringthe UUID of this communication. optionalpartiesrepeated PartyProtoparty description, describes the world.connect_retry_times uint32connect to mesh retry time.connect_retry_interval_ms uint32connect to mesh retry interval.recv_timeout_ms uint64recv timeout in milliseconds. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description id stringthe UUID of this communication. optionalpartiesrepeated PartyProtoparty description, describes the world.connect_retry_times uint32connect to mesh retry time.connect_retry_interval_ms uint32connect to mesh retry interval.recv_timeout_ms uint64recv timeout in milliseconds. id stringthe UUID of this communication. optional id id  string  string  string  string the UUID of this communication. optional the UUID of this communication. optional partiesrepeated PartyProtoparty description, describes the world. parties parties repeated PartyProto repeated PartyProto repeated PartyProto party description, describes the world. party description, describes the world. connect_retry_times uint32connect to mesh retry time. connect_retry_times connect_retry_times  uint32  uint32  uint32  uint32 connect to mesh retry time. connect to mesh retry time. connect_retry_interval_ms uint32connect to mesh retry interval. connect_retry_interval_ms connect_retry_interval_ms  uint32  uint32  uint32  uint32 connect to mesh retry interval. connect to mesh retry interval. recv_timeout_ms uint64recv timeout in milliseconds. recv_timeout_ms recv_timeout_ms  uint64  uint64  uint64  uint64 recv timeout in milliseconds. recv timeout in milliseconds. ‘recv time’ is the max time that a party will wait for a given event. for example: begin recv end recv |——–|——-recv-time———-|——————| alice’s timeline begin send end send |—–busy-work————-|————-|————| bob’s timeline in above case, when alice begins recv for a specific event, bob is still busy doing its job, when alice’s wait time exceed wait_timeout_ms, it raise exception, although bob now is starting to send data. so for long time work(that one party may wait for the others for very long time), this value should be changed accordingly. |\n| http_max_payload_size |  uint32 | http max payload size, if a single http request size is greater than this limit, it will be unpacked into small chunks then reassembled.  uint32 This field does affect performance. Please choose wisely. |\n| http_timeout_ms |  uint32 | a single http request timetout. |\n| throttle_window_size |  uint32 | throttle window size for channel. if there are more than limited size messages are flying, SendAsync will block until messages are processed or throw exception after wait for recv_timeout_ms |\n| brpc_channel_protocol |  string | BRPC client channel protocol. |\n| brpc_channel_connection_type |  string | BRPC client channel connection type. |\n| enable_ssl |  bool | ssl options for link channel. |\n| client_ssl_opts |  SSLOptionsProto | ssl configs for channel this config is ignored if enable_ssl == false; |\n| server_ssl_opts |  SSLOptionsProto | ssl configs for service this config is ignored if enable_ssl == false; |\n| chunk_parallel_send_size |  uint32 | chunk parallel send size for channel. if need chunked send when send message, the max paralleled send size is chunk_parallel_send_size |\n| retry_opts |  RetryOptionsProto | retry options |  uint32  uint32 SendAsync recv_timeout_ms  string  string  bool  SSLOptionsProto  SSLOptionsProto  uint32  RetryOptionsProto  "},"110":{"url":"/psi/main/en/reference/launch_config#partyproto","type":"fragment","title":"Launch Configuration - PartyProto","content":"FieldTypeDescriptionid stringnonehost stringnone FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description id stringnonehost stringnone id stringnone id id  string  string  string  string none none host stringnone host host  string  string  string  string none none  "},"111":{"url":"/psi/main/en/reference/launch_config#retryoptionsproto","type":"fragment","title":"Launch Configuration - RetryOptionsProto","content":"Retry options. FieldTypeDescriptionmax_retry uint32max retry count default 3retry_interval_ms uint32time between retries at first retry default 1 secondretry_interval_incr_ms uint32The amount of time to increase the interval between retries default 2smax_retry_interval_ms uint32The maximum interval between retries default 10serror_codesrepeated uint32retry on these brpc error codes, if empty, retry on all codeshttp_codesrepeated uint32retry on these http codes, if empty, retry on all http codesaggressive_retry booldo aggressive retry， this means that retries will be made on additional error codes FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description max_retry uint32max retry count default 3retry_interval_ms uint32time between retries at first retry default 1 secondretry_interval_incr_ms uint32The amount of time to increase the interval between retries default 2smax_retry_interval_ms uint32The maximum interval between retries default 10serror_codesrepeated uint32retry on these brpc error codes, if empty, retry on all codeshttp_codesrepeated uint32retry on these http codes, if empty, retry on all http codesaggressive_retry booldo aggressive retry， this means that retries will be made on additional error codes max_retry uint32max retry count default 3 max_retry max_retry  uint32  uint32  uint32  uint32 max retry count default 3 max retry count default 3 retry_interval_ms uint32time between retries at first retry default 1 second retry_interval_ms retry_interval_ms  uint32  uint32  uint32  uint32 time between retries at first retry default 1 second time between retries at first retry default 1 second retry_interval_incr_ms uint32The amount of time to increase the interval between retries default 2s retry_interval_incr_ms retry_interval_incr_ms  uint32  uint32  uint32  uint32 The amount of time to increase the interval between retries default 2s The amount of time to increase the interval between retries default 2s max_retry_interval_ms uint32The maximum interval between retries default 10s max_retry_interval_ms max_retry_interval_ms  uint32  uint32  uint32  uint32 The maximum interval between retries default 10s The maximum interval between retries default 10s error_codesrepeated uint32retry on these brpc error codes, if empty, retry on all codes error_codes error_codes repeated uint32 repeated uint32 repeated uint32 repeated uint32 retry on these brpc error codes, if empty, retry on all codes retry on these brpc error codes, if empty, retry on all codes http_codesrepeated uint32retry on these http codes, if empty, retry on all http codes http_codes http_codes repeated uint32 repeated uint32 repeated uint32 repeated uint32 retry on these http codes, if empty, retry on all http codes retry on these http codes, if empty, retry on all http codes aggressive_retry booldo aggressive retry， this means that retries will be made on additional error codes aggressive_retry aggressive_retry  bool  bool  bool  bool do aggressive retry， this means that retries will be made on additional error codes do aggressive retry， this means that retries will be made on additional error codes  "},"112":{"url":"/psi/main/en/reference/launch_config#ssloptionsproto","type":"fragment","title":"Launch Configuration - SSLOptionsProto","content":"SSL options. FieldTypeDescriptioncertificate_path stringCertificate file pathprivate_key_path stringPrivate key file pathverify_depth int32Set the maximum depth of the certificate chain for verification If 0, turn off the verificationca_file_path stringSet the trusted CA file to verify the peer’s certificate If empty, use the system default CA files FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description certificate_path stringCertificate file pathprivate_key_path stringPrivate key file pathverify_depth int32Set the maximum depth of the certificate chain for verification If 0, turn off the verificationca_file_path stringSet the trusted CA file to verify the peer’s certificate If empty, use the system default CA files certificate_path stringCertificate file path certificate_path certificate_path  string  string  string  string Certificate file path Certificate file path private_key_path stringPrivate key file path private_key_path private_key_path  string  string  string  string Private key file path Private key file path verify_depth int32Set the maximum depth of the certificate chain for verification If 0, turn off the verification verify_depth verify_depth  int32  int32  int32  int32 Set the maximum depth of the certificate chain for verification If 0, turn off the verification Set the maximum depth of the certificate chain for verification If 0, turn off the verification ca_file_path stringSet the trusted CA file to verify the peer’s certificate If empty, use the system default CA files ca_file_path ca_file_path  string  string  string  string Set the trusted CA file to verify the peer’s certificate If empty, use the system default CA files Set the trusted CA file to verify the peer’s certificate If empty, use the system default CA files  "},"113":{"url":"/psi/main/en/reference/launch_config#id4","type":"fragment","title":"Launch Configuration - Enums","content":" "},"114":{"url":"/psi/main/en/reference/launch_config#scalar-value-types","type":"fragment","title":"Launch Configuration - Scalar Value Types","content":".proto TypeNotesC++ TypeJava TypePython Type doubledoubledoublefloat floatfloatfloatfloat int32Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.int32intint int64Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.int64longint/long uint32Uses variable-length encoding.uint32intint/long uint64Uses variable-length encoding.uint64longint/long sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.int32intint sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.int64longint/long fixed32Always four bytes. More efficient than uint32 if values are often greater than 2^28.uint32intint fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^56.uint64longint/long sfixed32Always four bytes.int32intint sfixed64Always eight bytes.int64longint/long boolboolbooleanboolean stringA string must always contain UTF-8 encoded or 7-bit ASCII text.stringStringstr/unicode bytesMay contain any arbitrary sequence of bytes.stringByteStringstr .proto TypeNotesC++ TypeJava TypePython Type .proto TypeNotesC++ TypeJava TypePython Type .proto Type .proto Type Notes Notes C++ Type C++ Type Java Type Java Type Python Type Python Type  doubledoubledoublefloat floatfloatfloatfloat int32Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.int32intint int64Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.int64longint/long uint32Uses variable-length encoding.uint32intint/long uint64Uses variable-length encoding.uint64longint/long sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.int32intint sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.int64longint/long fixed32Always four bytes. More efficient than uint32 if values are often greater than 2^28.uint32intint fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^56.uint64longint/long sfixed32Always four bytes.int32intint sfixed64Always eight bytes.int64longint/long boolboolbooleanboolean stringA string must always contain UTF-8 encoded or 7-bit ASCII text.stringStringstr/unicode bytesMay contain any arbitrary sequence of bytes.stringByteStringstr  doubledoubledoublefloat  double  double  "},"115":{"url":"/psi/main/en/user_guide#user-guide","type":"fragment","title":"User Guide","content":"PSI v2 is recommended to use. We are still working on PIR code refactoring. \nPSI v1 QuickStart (Deprecated)\nPSI v2 QuickStart\nPIR QuickStart\nFrequently Asked Questions (FAQ)\nPSI V2 Benchmark\nAPSI Benchmark\n \nPSI v1 QuickStart (Deprecated)\nPSI v2 QuickStart\nPIR QuickStart\nFrequently Asked Questions (FAQ)\nPSI V2 Benchmark\nAPSI Benchmark\n PSI v1 QuickStart (Deprecated) PSI v1 QuickStart (Deprecated) PSI v2 QuickStart PSI v2 QuickStart PIR QuickStart PIR QuickStart Frequently Asked Questions (FAQ) Frequently Asked Questions (FAQ) PSI V2 Benchmark PSI V2 Benchmark APSI Benchmark APSI Benchmark "},"116":{"url":"/psi/main/en/user_guide/apsi_benchmark#apsi-benchmark","type":"fragment","title":"APSI Benchmark","content":"This document introduces the APSI Benchmark. "},"117":{"url":"/psi/main/en/user_guide/apsi_benchmark#building-from-source","type":"fragment","title":"APSI Benchmark - Building from source","content":" If the build is successful, you will find an executable file named main in the bazel-bin/psi directory. We will use ./main file, combined with a config file, to run APSI protocol. For exampple: main bazel-bin/psi ./main  "},"118":{"url":"/psi/main/en/user_guide/apsi_benchmark#generate-data","type":"fragment","title":"APSI Benchmark - Generate Data","content":"To measure the performance of APSI protocols under different data scales, we need to generate dummy data.  Next, we need to copy the data and parameter files into /tmp:  Please note that to achieve optimal APSI performance, we need to find a suitable set of parameters for the corresponding data scale and label length. Here, we directly use a set of default parameters provided by APSI, such as 1M-1-32.json. 1M-1-32.json "},"119":{"url":"/psi/main/en/user_guide/apsi_benchmark#prepare-config-file","type":"fragment","title":"APSI Benchmark - Prepare config file","content":"We use the config file to specify input data and parameter files. "},"120":{"url":"/psi/main/en/user_guide/apsi_benchmark#apsi-sender-setup-json","type":"fragment","title":"APSI Benchmark - apsi_sender_setup.json","content":"Note that for different data scales, we need to use different params_file. params_file  "},"121":{"url":"/psi/main/en/user_guide/apsi_benchmark#apsi-sender-online-json","type":"fragment","title":"APSI Benchmark - apsi_sender_online.json","content":" "},"122":{"url":"/psi/main/en/user_guide/apsi_benchmark#apsi-receiver-json","type":"fragment","title":"APSI Benchmark - apsi_receiver.json","content":"Note that for different data scales, we need to use different params_file. params_file  "},"123":{"url":"/psi/main/en/user_guide/apsi_benchmark#run-apsi-with-docker","type":"fragment","title":"APSI Benchmark - Run APSI with docker","content":"To measure the APSI benchmark under different machine and network configurations, we use two Docker containers to act as sender and receiver, respectively. "},"124":{"url":"/psi/main/en/user_guide/apsi_benchmark#apsi-sender-32c64g","type":"fragment","title":"APSI Benchmark - apsi_sender（32C64G）","content":"apsi_sender（32C64G）  Then run:  "},"125":{"url":"/psi/main/en/user_guide/apsi_benchmark#apsi-receiver-16c32g","type":"fragment","title":"APSI Benchmark - apsi_receiver（16C32G）","content":" Then run:  "},"126":{"url":"/psi/main/en/user_guide/apsi_benchmark#limit-bandwidth-and-latency","type":"fragment","title":"APSI Benchmark - Limit bandwidth and latency","content":" "},"127":{"url":"/psi/main/en/user_guide/apsi_benchmark#benchmark","type":"fragment","title":"APSI Benchmark - Benchmark","content":"Here we present the APSI Benchmark measured as described above. Please note that we do not record the time taken during the server-side setup phase, as this process can always be completed offline. Additionally, only a small amount of performance data under specific data settings is presented here. This is because performance testing for APSI is quite complex; different data scales and label lengths require finding a corresponding set of parameters to achieve optimal performance. Therefore, the data settings here are intended to provide you with a rough reference. If you wish to measure the APSI performance for a specific data scale and label length, you can follow the steps outlined above to reproduce the results. Finally, to further optimize performance, a good understanding of the APSI algorithm principles is necessary. If you have any further inquiries related to PIR, please feel free to contact us. \nms represents millisecond.\n ms represents millisecond. ms                       Note that the above data does not represent the optimal performance of APSI. Under fixed data scale conditions, the query performance of APSI is highly correlated with the corresponding parameters. Additionally, if you want to support larger datasets, such as one billion data entries, we also offer a bucket mode. However, this mode requires consideration of more parameters, so it is not displayed in this benchmark. "},"128":{"url":"/psi/main/en/user_guide/psi_v2#psi-v2-quickstart","type":"fragment","title":"PSI v2 QuickStart","content":""},"129":{"url":"/psi/main/en/user_guide/psi_v2#release-docker","type":"fragment","title":"PSI v2 QuickStart - Release Docker","content":"Check official release docker image at dockerhub. We also have mirrors at Alibaba Cloud: secretflow-registry.cn-hangzhou.cr.aliyuncs.com/secretflow/psi-anolis8. dockerhub secretflow-registry.cn-hangzhou.cr.aliyuncs.com/secretflow/psi-anolis8 "},"130":{"url":"/psi/main/en/user_guide/psi_v2#prepare-data-and-config","type":"fragment","title":"PSI v2 QuickStart - Prepare data and config","content":"Please check details of configs at here. To launch PSI, please check LaunchConfig at Launch Configuration. Launch Configuration receiver.config receiver.config receiver.config  sender.config sender.config sender.config  You need to prepare following files: File NameLocationDescriptionreceiver.config/tmp/receiver/receiver.configConfig for receiver.sender.config/tmp/sender/sender.configConfig for sender.receiver_input.csv/tmp/receiver/receiver_input.configInput for receiver. Make sure the file contains two id keys - id0 and id1.sender_input.csv/tmp/sender/sender_input.configInput for sender. Make sure the file contains two id keys - id0 and id1. File NameLocationDescription File NameLocationDescription File Name File Name Location Location Description Description receiver.config/tmp/receiver/receiver.configConfig for receiver.sender.config/tmp/sender/sender.configConfig for sender.receiver_input.csv/tmp/receiver/receiver_input.configInput for receiver. Make sure the file contains two id keys - id0 and id1.sender_input.csv/tmp/sender/sender_input.configInput for sender. Make sure the file contains two id keys - id0 and id1. receiver.config/tmp/receiver/receiver.configConfig for receiver. receiver.config receiver.config /tmp/receiver/receiver.config /tmp/receiver/receiver.config Config for receiver. Config for receiver. sender.config/tmp/sender/sender.configConfig for sender. sender.config sender.config /tmp/sender/sender.config /tmp/sender/sender.config Config for sender. Config for sender. receiver_input.csv/tmp/receiver/receiver_input.configInput for receiver. Make sure the file contains two id keys - id0 and id1. receiver_input.csv receiver_input.csv /tmp/receiver/receiver_input.config /tmp/receiver/receiver_input.config Input for receiver. Make sure the file contains two id keys - id0 and id1. Input for receiver. Make sure the file contains two id keys - id0 and id1. sender_input.csv/tmp/sender/sender_input.configInput for sender. Make sure the file contains two id keys - id0 and id1. sender_input.csv sender_input.csv /tmp/sender/sender_input.config /tmp/sender/sender_input.config Input for sender. Make sure the file contains two id keys - id0 and id1. Input for sender. Make sure the file contains two id keys - id0 and id1. "},"131":{"url":"/psi/main/en/user_guide/psi_v2#run-psi","type":"fragment","title":"PSI v2 QuickStart - Run PSI","content":"In the first terminal, run the following command:  In the other terminal, run the following command simultaneously:  "},"132":{"url":"/psi/main/en/user_guide/psi_v2#building-from-source","type":"fragment","title":"PSI v2 QuickStart - Building from source","content":"You could build psi binary with bazel:  Then use binary with:  "},"133":{"url":"/psi/main/en/user_guide/psi_v2#more-examples","type":"fragment","title":"PSI v2 QuickStart - More examples","content":"Please read README,\nPlease check more demo configs at psi config. README psi config "},"134":{"url":"/psi/main/en/user_guide/psi_v2#ub-psi","type":"fragment","title":"PSI v2 QuickStart - Ub PSI","content":"To launch PSI, please check LaunchConfig at Launch Configuration and here. Launch Configuration Please read examples. examples Example configs are: \n\nserver\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_offline.json\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_online.json\n\n\n\nclient\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_offline.json\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_online.json\n\n\n \nserver\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_offline.json\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_online.json\n\n server\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_offline.json\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_online.json\n server\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_offline.json\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_online.json\n server server server \nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_offline.json\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_online.json\n \nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_offline.json\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_online.json\n https://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_offline.json https://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_offline.json https://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_online.json https://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_online.json \nclient\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_offline.json\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_online.json\n\n client\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_offline.json\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_online.json\n client\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_offline.json\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_online.json\n client client client \nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_offline.json\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_online.json\n \nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_offline.json\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_online.json\n https://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_offline.json https://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_offline.json https://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_online.json https://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_online.json "},"135":{"url":"/psi/main/en/user_guide/pir#pir-quickstart","type":"fragment","title":"PIR QuickStart","content":"Quick start with SPU Private Information Retrival (PIR). "},"136":{"url":"/psi/main/en/user_guide/pir#supported-protocols","type":"fragment","title":"PIR QuickStart - Supported Protocols","content":"PIR protocolsTypeServer NumberSealPIR(later)Index PIRSingle ServerAPSIKeyword PIRSingle Server PIR protocolsTypeServer Number PIR protocolsTypeServer Number PIR protocols PIR protocols Type Type Server Number Server Number SealPIR(later)Index PIRSingle ServerAPSIKeyword PIRSingle Server SealPIR(later)Index PIRSingle Server SealPIR(later) SealPIR(later) Index PIR Index PIR Single Server Single Server APSIKeyword PIRSingle Server APSI APSI Keyword PIR Keyword PIR Single Server Single Server At this moment, SealPIR is under development. "},"137":{"url":"/psi/main/en/user_guide/pir#release-docker","type":"fragment","title":"PIR QuickStart - Release Docker","content":"Check official release docker image at dockerhub. We also have mirrors at Alibaba Cloud: secretflow-registry.cn-hangzhou.cr.aliyuncs.com/secretflow/psi-anolis8. dockerhub secretflow-registry.cn-hangzhou.cr.aliyuncs.com/secretflow/psi-anolis8 "},"138":{"url":"/psi/main/en/user_guide/pir#keyword-pir-apsi","type":"fragment","title":"PIR QuickStart - Keyword PIR (APSI)","content":""},"139":{"url":"/psi/main/en/user_guide/pir#before-start","type":"fragment","title":"PIR QuickStart - Before Start","content":"We provide a simple wrapper for famous APSI library. Please read the README of the repo carefully.\nWe are not going to discuss any content related to APSI further. APSI README Please check details of configs at PIR Configuration. You are supposed to be aware of that we provided the EXACT the same API to APSI.\nSo you should read APSI CLI arguments as well. PIR Configuration EXACT APSI CLI arguments The extra features brought are: \nUse Yacl Link as communication layer.\nExperimental bucketized PIR.\nProvide APIs for further integration.\n Use Yacl Link as communication layer. Experimental bucketized PIR. Provide APIs for further integration. If you want to try a similar CLI like APSI, you could compile the source code by  And get CLI parameters like this:  "},"140":{"url":"/psi/main/en/user_guide/pir#prepare-data-and-config","type":"fragment","title":"PIR QuickStart - Prepare data and config","content":"For Senders (Servers), you must provide a input csv or a sender db file. An input csv file could be turned into a sender db file after setup. "},"141":{"url":"/psi/main/en/user_guide/pir#csv-file","type":"fragment","title":"PIR QuickStart - CSV File","content":"The csv file should looks like  Please make sure: \nSince version 0.4.0b0, headers line is required.\nThe first row must be headers, only key and value are allowed.\nThe key column must be items(keys)\nThe value column must be labels(values), this column is optional.\n Since version 0.4.0b0, headers line is required. 0.4.0b0 The first row must be headers, only key and value are allowed. key value The key column must be items(keys) key The value column must be labels(values), this column is optional. value "},"142":{"url":"/psi/main/en/user_guide/pir#apsi-params-file","type":"fragment","title":"PIR QuickStart - APSI Params File","content":"We use the original APSI params. For details, please check APSI PSIParams . APSI PSIParams For senders: An APSI params file must be provided with CSV files. If a sender db file is provided, the APSI params is not required and would be ignored.\nFor receivers: The APSI params file is optional. If not provided, receivers will ask for senders. If provided, please make sure receivers and senders share\nthe same APSI params file, otherwise error occurred. It’s not easy to find a suitable APSI params file. So APSI provides some examples at `APSI parameters <https://github.com/microsoft/APSI/tree/main/parameters`_.\nWe have a copy at APSI parameters <blob/main/examples/pir/apsi/parameters> as well.\nYou can refer to here to choose the appropriate parameter file. `APSI parameters <https://github.com/microsoft/APSI/tree/main/parameters`_ https://github.com/microsoft/APSI/tree/main/parameters`_ APSI parameters <blob/main/examples/pir/apsi/parameters> here To launch PIR, please check LaunchConfig at Launch Configuration, and\nspecific config: sender config and receiver config. Launch Configuration "},"143":{"url":"/psi/main/en/user_guide/pir#pir-config","type":"fragment","title":"PIR QuickStart - PIR Config","content":"Sender: Setup Stage. In this stage, sender generates sender db file with csv file. This stage is offline.\nSince version 0.4.0b0, the source csv file for db generating should be specified as source_file, and db_file\nis used to specify the generated db file. 0.4.0b0 source_file db_file apsi_sender_setup.json apsi_sender_setup.json apsi_sender_setup.json  Sender: Online stage. In this stage, sender generates responses to receivers’ queries. This stage is online. apsi_sender_online.json apsi_sender_online.json apsi_sender_online.json  Receiver: Online stage. apsi_receiver.json apsi_receiver.json apsi_receiver.json  params_file field is optional. If not provided, receiver will ask sender for params. If provided, please make sure you provide the same one to sender’s. "},"144":{"url":"/psi/main/en/user_guide/pir#full-examples","type":"fragment","title":"PIR QuickStart - Full Examples","content":"Please read examples.\nFor more demo configs, you can check here. examples here "},"145":{"url":"/psi/main/en/user_guide/pir#bucketized-mode","type":"fragment","title":"PIR QuickStart - Bucketized Mode","content":"Searching in a large sender db is costly. So we can split data into buckets.\nThe server knows which bucket the client is querying, but does not know which specific element: In the setup stage, sender split data into buckets. Each bucket will generate a sender db. In the online stage, receiver split query into subqueries. Each subquery only contains items residing in the same bucket.\nWhen receivers sends a subquery to the sender, bucket idx is also provided. For each subquery, sender only search in the corresponding sender db for specific bucket. Assuming the query indindiscernibility degree is \\text{ind_degree}, and sender has \\text{sender_data_rows} rows,\nthen the number of buckets should be \\text{bucket_num} = \\text{sender_data_rows} / \\text{ind_degree}, you can set experimental_bucket_cnt with \\text{bucket_num}.\nIf the client has \\text{query_rows} rows of data, the we know client has \\text{query_rows_per_bucket} = \\text{query_rows} / \\text{bucket_num} rows per bucket,\nwe can select \\text{ind_degree}-\\text{query_rows_per_bucket}-xxx.json as params_file. \\text{ind_degree} \\text{ind_degree} \\text{sender_data_rows} \\text{sender_data_rows} \\text{bucket_num} = \\text{sender_data_rows} / \\text{ind_degree} \\text{bucket_num} = \\text{sender_data_rows} / \\text{ind_degree} \\text{bucket_num} \\text{bucket_num} \\text{query_rows} \\text{query_rows} \\text{query_rows_per_bucket} = \\text{query_rows} / \\text{bucket_num} \\text{query_rows_per_bucket} = \\text{query_rows} / \\text{bucket_num} \\text{ind_degree} \\text{ind_degree} \\text{query_rows_per_bucket} \\text{query_rows_per_bucket} "},"146":{"url":"/psi/main/en/user_guide/faq#frequently-asked-questions-faq","type":"fragment","title":"Frequently Asked Questions (FAQ)","content":"We will collect some popular questions from users and update this part promptly. "},"147":{"url":"/psi/main/en/user_guide/faq#config-issues","type":"fragment","title":"Frequently Asked Questions (FAQ) - Config Issues","content":"\nIn PSI config, what is difference of broadcast_result and receiver? Is it safe to turn on broadcast_result?\n In PSI config, what is difference of broadcast_result and receiver? Is it safe to turn on broadcast_result? broadcast_result receiver broadcast_result In PSI protocols, the parties who are promised to receive the intersection are called receiver**s, the other parties are called **sender**s.\nWhen **broadcast_result is turn on, sender**s also receive the intersection. Both parties must agree on the value of **broadcast_result, otherwise the program will stop. receiver**s, the other parties are called **sender**s.\nWhen **broadcast_result sender**s also receive the intersection. Both parties must agree on the value of **broadcast_result If broadcast_result is turn on, only receiver**s and **sender**s could receive the result while any third parties could not see. So it is safe to set **broadcast_result to true, if both **receiver**s and **sender**s wish to get the result. broadcast_result receiver**s and **sender**s could receive the result while any third parties could not see. So it is safe to set **broadcast_result ** ** \nWhat is IO_TYPE_UNSPECIFIED?\n What is IO_TYPE_UNSPECIFIED? You must select a type as IoType. IO_TYPE_UNSPECIFIED is the default value of IoType, which is meaningless. At this moment, we only support IO_TYPE_FILE_CSV. \nWhat is ADVANCED_JOIN_TYPE_UNSPECIFIED?\n What is ADVANCED_JOIN_TYPE_UNSPECIFIED? PSI protocols doesn‘t allow duplicates in ids of inputs. However, sometimes we may intend to have duplicates in ids and perform LEFT / RIGHT / FULL join following rules of SQL. This is called AdvancedJoinType. ADVANCED_JOIN_TYPE_UNSPECIFIED is same as ADVANCED_JOIN_TYPE_INNER_JOIN. \nWhat is the recommendation value of bucket size?\n What is the recommendation value of bucket size? The default value is 2^20. You shouldn’t set this value unless you have very limited computation resource. \nWhat is disable_alignment?\n What is disable_alignment? If disable_alignment turns on, the intersection received by **receiver**s and **sender**s are not promised to be aligned(the order doesn’t match) and save time. ** ** \nWhat is RetryOptionsProto in ContextDescProto?\n What is RetryOptionsProto in ContextDescProto? We have proper default values for all fields. You shouldn’t set any values unless the network is pretty bad.\nFor more info, you can look up here. here "},"148":{"url":"/psi/main/en/user_guide/faq#feature-issues","type":"fragment","title":"Frequently Asked Questions (FAQ) - Feature Issues","content":"\nHow to enable SSL?\n How to enable SSL? We support mTLS and you should provide proper ContextDescProto: \nenable_ssl is enabled.\nIn client_ssl_opts, set verify_depth and provide peer CA file with ca_file_path\nIn server_ssl_opts, provide self certificate and private key file with certificate_path and private_key_path\nYou must provide these settings at both sides.\n enable_ssl is enabled. enable_ssl In client_ssl_opts, set verify_depth and provide peer CA file with ca_file_path client_ssl_opts verify_depth ca_file_path In server_ssl_opts, provide self certificate and private key file with certificate_path and private_key_path server_ssl_opts certificate_path private_key_path You must provide these settings at both sides. example.config example.config example.config  \nHow to use recovery?\n How to use recovery? We provide recovery feature in PSI v2. You have to provide a proper:ref:RecoveryConfig <RecoveryConfig>: RecoveryConfig <RecoveryConfig> \nenabled set to true.\nfolder is provided to store checkpoints.\n enabled set to true. enabled folder is provided to store checkpoints. folder If a PSI task fails, just restart the task with the same config, the progress will resume. "},"149":{"url":"/psi/main/en/user_guide/psi_v2_benchmark#psi-v2-benchmark","type":"fragment","title":"PSI V2 Benchmark","content":"This document will introduce the PSI V2 Benchmark. It uses the PSI V2 version of the interface. "},"150":{"url":"/psi/main/en/user_guide/psi_v2_benchmark#building-from-source","type":"fragment","title":"PSI V2 Benchmark - Building from source","content":" If the building is successful, you will find an executable file named main in the ‘bazel-bin/psi’ directory. We will use ./main file, combined with config file to run different PSI protocols. Such as: main ./main  "},"151":{"url":"/psi/main/en/user_guide/psi_v2_benchmark#generate-data","type":"fragment","title":"PSI V2 Benchmark - Generate Data","content":"In order to measure the performance of different PSI protocols under different data scales, we need to generate dummy data through generate_psi.py generate_psi.py  "},"152":{"url":"/psi/main/en/user_guide/psi_v2_benchmark#prepare-config-file","type":"fragment","title":"PSI V2 Benchmark - Prepare config file","content":"We use the config file to specify different PSI protocols and input data. "},"153":{"url":"/psi/main/en/user_guide/psi_v2_benchmark#sender-config","type":"fragment","title":"PSI V2 Benchmark - sender.config","content":" "},"154":{"url":"/psi/main/en/user_guide/psi_v2_benchmark#receiver-config","type":"fragment","title":"PSI V2 Benchmark - receiver.config","content":" "},"155":{"url":"/psi/main/en/user_guide/psi_v2_benchmark#run-psi-with-docker","type":"fragment","title":"PSI V2 Benchmark - Run PSI with docker","content":"In order to measure the PSI V2 benchmark under different machine configurations and network configurations, we use two dockers to act as sender and receiver respectively. alice  bob  "},"156":{"url":"/psi/main/en/user_guide/psi_v2_benchmark#limit-bandwidth-and-latency","type":"fragment","title":"PSI V2 Benchmark - Limit bandwidth and latency","content":" "},"157":{"url":"/psi/main/en/user_guide/psi_v2_benchmark#benchmark","type":"fragment","title":"PSI V2 Benchmark - Benchmark","content":"Here we show the PSI V2 Benchmark measured as above. \nThe default time unit is seconds, m represents minutes, and h represents hours.\n The default time unit is seconds, m represents minutes, and h represents hours. m h                                                                                                                                                                                                                                                                                         "},"158":{"url":"/psi/main/en/user_guide/psi#psi-v1-quickstart-deprecated","type":"fragment","title":"PSI v1 QuickStart (Deprecated)","content":"Quick start with Private Set Intersection (PSI) V1 APIs. "},"159":{"url":"/psi/main/en/user_guide/psi#supported-protocols","type":"fragment","title":"PSI v1 QuickStart (Deprecated) - Supported Protocols","content":"The ECDH-PSI is favorable if the bandwidth is the bottleneck.\nIf the computing is the bottleneck, you should try the BaRK-OPRF based\nPSI KKRT-PSI. ECDH-PSI KKRT-PSI PSI protocolsThreat ModelParty NumberPsiTypeCodeECDH-PSISemi-Honest2P1ECDH-OPRF-PSISemi-Honest2P\n\nKKRTSemi-Honest2P2PCG_PSISemi-Honest2P3Mini-PSIMalicious2P\n\nDP-PSISemi-Honest2P\n\n PSI protocolsThreat ModelParty NumberPsiTypeCode PSI protocolsThreat ModelParty NumberPsiTypeCode PSI protocols PSI protocols Threat Model Threat Model Party Number Party Number PsiTypeCode PsiTypeCode ECDH-PSISemi-Honest2P1ECDH-OPRF-PSISemi-Honest2P\n\nKKRTSemi-Honest2P2PCG_PSISemi-Honest2P3Mini-PSIMalicious2P\n\nDP-PSISemi-Honest2P\n\n ECDH-PSISemi-Honest2P1 ECDH-PSI ECDH-PSI Semi-Honest Semi-Honest 2P 2P 1 1 ECDH-OPRF-PSISemi-Honest2P\n\n ECDH-OPRF-PSI ECDH-OPRF-PSI Semi-Honest Semi-Honest 2P 2P \n\n \n\n  KKRTSemi-Honest2P2 KKRT KKRT KKRT Semi-Honest Semi-Honest 2P 2P 2 2 PCG_PSISemi-Honest2P3 PCG_PSI PCG_PSI PCG_PSI Semi-Honest Semi-Honest 2P 2P 3 3 Mini-PSIMalicious2P\n\n Mini-PSI Mini-PSI Mini-PSI Malicious Malicious 2P 2P \n\n \n\n  DP-PSISemi-Honest2P\n\n DP-PSI DP-PSI DP-PSI Semi-Honest Semi-Honest 2P 2P \n\n \n\n  MPC and PSI protocols are designed for specific Security model (or Threat Models). Security model are widely considered to capture the capabilities of adversaries.\nAdversaries of semi-honest model and malicious model are Semi-honest Adversary and\nMalicious Adversary. \nSemi-honest Adversary\nMalicious Adversary\n Semi-honest Adversary Semi-honest Adversary Malicious Adversary Malicious Adversary Semi-Honest PSI Must not be used in Malicious environment, may be attacked and leak information. Our implementation of ECDH-PSI protocol supports multiple ECC curves: \nCurve25519\nSecp256k1\nFourQ\nSM2\n Curve25519 Curve25519 Secp256k1 Secp256k1 FourQ FourQ SM2 SM2 Please check PSI Protocols Introduction for details. PSI Protocols Introduction "},"160":{"url":"/psi/main/en/user_guide/psi#prepare-data-and-config","type":"fragment","title":"PSI v1 QuickStart (Deprecated) - Prepare data and config","content":"Please check details of configs at PSI v1 Configuration. PSI v1 Configuration To launch PSI, please check LaunchConfig at Launch Configuration and fillin runtime_config.legacy_psi_config. Launch Configuration runtime_config.legacy_psi_config "},"161":{"url":"/psi/main/en/user_guide/psi#release-docker","type":"fragment","title":"PSI v1 QuickStart (Deprecated) - Release Docker","content":"Check official release docker image at dockerhub. We also have mirrors at Alibaba Cloud: secretflow-registry.cn-hangzhou.cr.aliyuncs.com/secretflow/psi-anolis8. dockerhub "},"162":{"url":"/psi/main/en/user_guide/psi#run-psi","type":"fragment","title":"PSI v1 QuickStart (Deprecated) - Run PSI","content":"In the first terminal, run the following command:  In the other terminal, run the following command simultaneously:  "},"163":{"url":"/psi/main/en/user_guide/psi#building-from-source","type":"fragment","title":"PSI v1 QuickStart (Deprecated) - Building from source","content":"You could build psi binary with bazel:  Then use binary with:  "},"164":{"url":"/psi/main/en/user_guide/psi#benchmark","type":"fragment","title":"PSI v1 QuickStart (Deprecated) - Benchmark","content":"benchmark result without data load time "},"165":{"url":"/psi/main/en/user_guide/psi#ecdh-psi-benchmark","type":"fragment","title":"PSI v1 QuickStart (Deprecated) - ECDH PSI Benchmark","content":"DH-PSI benchmark code DH-PSI benchmark code cpu limited by docker(–cpu) Intel(R) Xeon(R) Platinumcpu2^202^212^222^232^248269CY CPU @ 2.50GHzwith curve25519-donna4c40.181s81.227s163.509s330.466s666.807s8c20.682s42.054s85.272s173.836s354.842s16c11.639s23.670s48.965s100.903s208.156s Intel(R) Xeon(R) Platinumcpu2^202^212^222^232^24 Intel(R) Xeon(R) Platinumcpu2^202^212^222^232^24 Intel(R) Xeon(R) Platinum Intel(R) Xeon(R) Platinum cpu cpu 2^20 2^20 2^21 2^21 2^22 2^22 2^23 2^23 2^24 2^24 8269CY CPU @ 2.50GHzwith curve25519-donna4c40.181s81.227s163.509s330.466s666.807s8c20.682s42.054s85.272s173.836s354.842s16c11.639s23.670s48.965s100.903s208.156s 8269CY CPU @ 2.50GHzwith curve25519-donna4c40.181s81.227s163.509s330.466s666.807s 8269CY CPU @ 2.50GHzwith curve25519-donna 8269CY CPU @ 2.50GHz with curve25519-donna 4c 4c 40.181s 40.181s 81.227s 81.227s 163.509s 163.509s 330.466s 330.466s 666.807s 666.807s 8c20.682s42.054s85.272s173.836s354.842s 8c 8c 20.682s 20.682s 42.054s 42.054s 85.272s 85.272s 173.836s 173.836s 354.842s 354.842s 16c11.639s23.670s48.965s100.903s208.156s 16c 16c 11.639s 11.639s 23.670s 23.670s 48.965s 48.965s 100.903s 100.903s 208.156s 208.156s ipp-crypto Multi-buffer Functions ipp-crypto Multi-buffer Functions Intel(R) Xeon(R) Platinumcpu2^202^212^222^232^248369B CPU @ 2.70GHzcurve25519(ipp-crypto)4c7.37s15.32s31.932s66.802s139.994s8c4.3s9.095s18.919s40.828s87.649s16c2.921s6.081s13.186s29.614s65.186s Intel(R) Xeon(R) Platinumcpu2^202^212^222^232^24 Intel(R) Xeon(R) Platinumcpu2^202^212^222^232^24 Intel(R) Xeon(R) Platinum Intel(R) Xeon(R) Platinum cpu cpu 2^20 2^20 2^21 2^21 2^22 2^22 2^23 2^23 2^24 2^24 8369B CPU @ 2.70GHzcurve25519(ipp-crypto)4c7.37s15.32s31.932s66.802s139.994s8c4.3s9.095s18.919s40.828s87.649s16c2.921s6.081s13.186s29.614s65.186s 8369B CPU @ 2.70GHzcurve25519(ipp-crypto)4c7.37s15.32s31.932s66.802s139.994s 8369B CPU @ 2.70GHzcurve25519(ipp-crypto) 8369B CPU @ 2.70GHz curve25519(ipp-crypto) 4c 4c 7.37s 7.37s 15.32s 15.32s 31.932s 31.932s 66.802s 66.802s 139.994s 139.994s 8c4.3s9.095s18.919s40.828s87.649s 8c 8c 4.3s 4.3s 9.095s 9.095s 18.919s 18.919s 40.828s 40.828s 87.649s 87.649s 16c2.921s6.081s13.186s29.614s65.186s 16c 16c 2.921s 2.921s 6.081s 6.081s 13.186s 13.186s 29.614s 29.614s 65.186s 65.186s "},"166":{"url":"/psi/main/en/user_guide/psi#kkrt-psi-benchmark","type":"fragment","title":"PSI v1 QuickStart (Deprecated) - KKRT PSI Benchmark","content":"All of our experiments use a single thread for each party. If the bandwidth is enough, the upstream could try to perform multi-threading optimizations bandwidth limited by wondershaper. wondershaper 10Mbps = 10240Kbps, 100Mbps = 102400Kbps, 1000Mbps = 1024000Kbps  Intel(R) Xeon(R) Platinum 8269CY CPU @ 2.50GHz bandwidthphase2^182^202^222^24LANoffline0.012s0.012s0.012s0.014sonline0.495s2.474s10.765s44.368s100Mbpsoffline0.012s0.012s0.024s0.014sonline2.694s11.048s46.983s192.37s10Mbpsoffline0.016s0.019s0.0312s0.018sonline25.434s100.68s415.94s1672.21s bandwidthphase2^182^202^222^24 bandwidthphase2^182^202^222^24 bandwidth bandwidth phase phase 2^18 2^18 2^20 2^20 2^22 2^22 2^24 2^24 LANoffline0.012s0.012s0.012s0.014sonline0.495s2.474s10.765s44.368s100Mbpsoffline0.012s0.012s0.024s0.014sonline2.694s11.048s46.983s192.37s10Mbpsoffline0.016s0.019s0.0312s0.018sonline25.434s100.68s415.94s1672.21s LANoffline0.012s0.012s0.012s0.014s LAN LAN offline offline 0.012s 0.012s 0.012s 0.012s 0.012s 0.012s 0.014s 0.014s online0.495s2.474s10.765s44.368s online online 0.495s 0.495s 2.474s 2.474s 10.765s 10.765s 44.368s 44.368s 100Mbpsoffline0.012s0.012s0.024s0.014s 100Mbps 100Mbps offline offline 0.012s 0.012s 0.012s 0.012s 0.024s 0.024s 0.014s 0.014s online2.694s11.048s46.983s192.37s online online 2.694s 2.694s 11.048s 11.048s 46.983s 46.983s 192.37s 192.37s 10Mbpsoffline0.016s0.019s0.0312s0.018s 10Mbps 10Mbps offline offline 0.016s 0.016s 0.019s 0.019s 0.0312s 0.0312s 0.018s 0.018s online25.434s100.68s415.94s1672.21s online online 25.434s 25.434s 100.68s 100.68s 415.94s 415.94s 1672.21s 1672.21s "},"167":{"url":"/psi/main/en/user_guide/psi#security-tips","type":"fragment","title":"PSI v1 QuickStart (Deprecated) - Security Tips","content":"Warning:  KKRT16 is semi-honest PSI protocols,\nand may be attacked in malicious model.\nWe recommend using KKRT16 PSI protocol as one-way PSI, i.e., one party gets the final intersection result. KKRT16 "}},"count":167},"sorting":{"language":"english","sortableProperties":["url","title","content","type","symbol.domain","symbol.name","symbol.module"],"sortablePropertiesWithTypes":{"url":"string","title":"string","content":"string","type":"string","symbol.domain":"string","symbol.name":"string","symbol.module":"string"},"sorts":{"url":{"docs":{"1":0,"2":148,"3":147,"4":166,"5":165,"6":164,"7":163,"8":162,"9":161,"10":160,"11":159,"12":158,"13":157,"14":156,"15":155,"16":154,"17":153,"18":152,"19":151,"20":150,"21":149,"22":19,"23":24,"24":16,"25":27,"26":15,"27":26,"28":20,"29":21,"30":12,"31":22,"32":23,"33":17,"34":14,"35":29,"36":18,"37":25,"38":13,"39":28,"40":11,"41":7,"42":3,"43":4,"44":5,"45":1,"46":10,"47":2,"48":6,"49":9,"50":8,"51":93,"52":55,"53":58,"54":54,"55":51,"56":52,"57":56,"58":53,"59":57,"60":83,"61":90,"62":79,"63":72,"64":73,"65":75,"66":76,"67":78,"68":80,"69":82,"70":84,"71":86,"72":88,"73":91,"74":74,"75":77,"76":81,"77":85,"78":87,"79":92,"80":89,"81":67,"82":71,"83":65,"84":59,"85":61,"86":63,"87":64,"88":66,"89":68,"90":62,"91":60,"92":69,"93":70,"94":38,"95":48,"96":40,"97":39,"98":33,"99":34,"100":30,"101":31,"102":41,"103":43,"104":46,"105":49,"106":50,"107":35,"108":36,"109":32,"110":42,"111":44,"112":47,"113":37,"114":45,"115":146,"116":94,"117":101,"118":102,"119":104,"120":99,"121":98,"122":96,"123":105,"124":97,"125":95,"126":103,"127":100,"128":132,"129":133,"130":131,"131":134,"132":129,"133":130,"134":135,"135":116,"136":119,"137":118,"138":114,"139":110,"140":117,"141":112,"142":109,"143":115,"144":113,"145":111,"146":108,"147":106,"148":107,"149":125,"150":121,"151":122,"152":124,"153":128,"154":126,"155":127,"156":123,"157":120,"158":141,"159":145,"160":140,"161":142,"162":143,"163":137,"164":136,"165":138,"166":139,"167":144},"orderedDocs":[[1,"/psi/main/en/#welcome-to-secretflow-psi-library-s-documentation"],[45,"/psi/main/en/development/psi_protocol_intro#differentially-private-psi"],[47,"/psi/main/en/development/psi_protocol_intro#ecdh-oprf-based-psi"],[42,"/psi/main/en/development/psi_protocol_intro#ecdh-psi"],[43,"/psi/main/en/development/psi_protocol_intro#ecdh-psi-3p"],[44,"/psi/main/en/development/psi_protocol_intro#kkrt16-psi"],[48,"/psi/main/en/development/psi_protocol_intro#labeled-psi"],[41,"/psi/main/en/development/psi_protocol_intro#psi-protocols-introduction"],[50,"/psi/main/en/development/psi_protocol_intro#reference"],[49,"/psi/main/en/development/psi_protocol_intro#rr22-blazing-fast-psi"],[46,"/psi/main/en/development/psi_protocol_intro#unbalanced-psi"],[40,"/psi/main/en/development#development"],[30,"/psi/main/en/getting_started#applications"],[38,"/psi/main/en/getting_started#build-unittest"],[34,"/psi/main/en/getting_started#building"],[26,"/psi/main/en/getting_started#building-from-source"],[24,"/psi/main/en/getting_started#c-binaries"],[33,"/psi/main/en/getting_started#deprecated-easy-psi"],[36,"/psi/main/en/getting_started#dev-docker"],[22,"/psi/main/en/getting_started#getting-started"],[28,"/psi/main/en/getting_started#id1"],[29,"/psi/main/en/getting_started#id2"],[31,"/psi/main/en/getting_started#id3"],[32,"/psi/main/en/getting_started#id4"],[23,"/psi/main/en/getting_started#installation"],[37,"/psi/main/en/getting_started#linux"],[27,"/psi/main/en/getting_started#python-packages"],[25,"/psi/main/en/getting_started#release-docker"],[39,"/psi/main/en/getting_started#reporting-an-issue"],[35,"/psi/main/en/getting_started#system-setup"],[100,"/psi/main/en/reference/launch_config#allocatedports"],[101,"/psi/main/en/reference/launch_config#clusterdefine"],[109,"/psi/main/en/reference/launch_config#contextdescproto"],[98,"/psi/main/en/reference/launch_config#enums"],[99,"/psi/main/en/reference/launch_config#id1"],[107,"/psi/main/en/reference/launch_config#id2"],[108,"/psi/main/en/reference/launch_config#id3"],[113,"/psi/main/en/reference/launch_config#id4"],[94,"/psi/main/en/reference/launch_config#launch-configuration"],[97,"/psi/main/en/reference/launch_config#launchconfig"],[96,"/psi/main/en/reference/launch_config#messages"],[102,"/psi/main/en/reference/launch_config#party"],[110,"/psi/main/en/reference/launch_config#partyproto"],[103,"/psi/main/en/reference/launch_config#port"],[111,"/psi/main/en/reference/launch_config#retryoptionsproto"],[114,"/psi/main/en/reference/launch_config#scalar-value-types"],[104,"/psi/main/en/reference/launch_config#service"],[112,"/psi/main/en/reference/launch_config#ssloptionsproto"],[95,"/psi/main/en/reference/launch_config#table-of-contents"],[105,"/psi/main/en/reference/launch_config#taskinputconfig"],[106,"/psi/main/en/reference/launch_config#taskinputconfig-sfpsiconfigmapentry"],[55,"/psi/main/en/reference/pir_config#apsireceiverconfig"],[56,"/psi/main/en/reference/pir_config#apsisenderconfig"],[58,"/psi/main/en/reference/pir_config#enums"],[54,"/psi/main/en/reference/pir_config#messages"],[52,"/psi/main/en/reference/pir_config#pir-configuration"],[57,"/psi/main/en/reference/pir_config#pirresultreport"],[59,"/psi/main/en/reference/pir_config#scalar-value-types"],[53,"/psi/main/en/reference/pir_config#table-of-contents"],[84,"/psi/main/en/reference/psi_config#bucketpsiconfig"],[91,"/psi/main/en/reference/psi_config#curvetype"],[85,"/psi/main/en/reference/psi_config#dppsiparams"],[90,"/psi/main/en/reference/psi_config#enums"],[86,"/psi/main/en/reference/psi_config#inputparams"],[87,"/psi/main/en/reference/psi_config#memorypsiconfig"],[83,"/psi/main/en/reference/psi_config#messages"],[88,"/psi/main/en/reference/psi_config#outputparams"],[81,"/psi/main/en/reference/psi_config#psi-v1-configuration"],[89,"/psi/main/en/reference/psi_config#psiresultreport"],[92,"/psi/main/en/reference/psi_config#psitype"],[93,"/psi/main/en/reference/psi_config#scalar-value-types"],[82,"/psi/main/en/reference/psi_config#table-of-contents"],[63,"/psi/main/en/reference/psi_v2_config#debugoptions"],[64,"/psi/main/en/reference/psi_v2_config#ecdhconfig"],[74,"/psi/main/en/reference/psi_v2_config#enums"],[65,"/psi/main/en/reference/psi_v2_config#inputattr"],[66,"/psi/main/en/reference/psi_v2_config#ioconfig"],[75,"/psi/main/en/reference/psi_v2_config#iotype"],[67,"/psi/main/en/reference/psi_v2_config#kkrtconfig"],[62,"/psi/main/en/reference/psi_v2_config#messages"],[68,"/psi/main/en/reference/psi_v2_config#outputattr"],[76,"/psi/main/en/reference/psi_v2_config#protocol"],[69,"/psi/main/en/reference/psi_v2_config#protocolconfig"],[60,"/psi/main/en/reference/psi_v2_config#psi-v2-configuration"],[70,"/psi/main/en/reference/psi_v2_config#psiconfig"],[77,"/psi/main/en/reference/psi_v2_config#psiconfig-advancedjointype"],[71,"/psi/main/en/reference/psi_v2_config#recoveryconfig"],[78,"/psi/main/en/reference/psi_v2_config#role"],[72,"/psi/main/en/reference/psi_v2_config#rr22config"],[80,"/psi/main/en/reference/psi_v2_config#scalar-value-types"],[61,"/psi/main/en/reference/psi_v2_config#table-of-contents"],[73,"/psi/main/en/reference/psi_v2_config#ubpsiconfig"],[79,"/psi/main/en/reference/psi_v2_config#ubpsiconfig-mode"],[51,"/psi/main/en/reference#api-reference"],[116,"/psi/main/en/user_guide/apsi_benchmark#apsi-benchmark"],[125,"/psi/main/en/user_guide/apsi_benchmark#apsi-receiver-16c32g"],[122,"/psi/main/en/user_guide/apsi_benchmark#apsi-receiver-json"],[124,"/psi/main/en/user_guide/apsi_benchmark#apsi-sender-32c64g"],[121,"/psi/main/en/user_guide/apsi_benchmark#apsi-sender-online-json"],[120,"/psi/main/en/user_guide/apsi_benchmark#apsi-sender-setup-json"],[127,"/psi/main/en/user_guide/apsi_benchmark#benchmark"],[117,"/psi/main/en/user_guide/apsi_benchmark#building-from-source"],[118,"/psi/main/en/user_guide/apsi_benchmark#generate-data"],[126,"/psi/main/en/user_guide/apsi_benchmark#limit-bandwidth-and-latency"],[119,"/psi/main/en/user_guide/apsi_benchmark#prepare-config-file"],[123,"/psi/main/en/user_guide/apsi_benchmark#run-apsi-with-docker"],[147,"/psi/main/en/user_guide/faq#config-issues"],[148,"/psi/main/en/user_guide/faq#feature-issues"],[146,"/psi/main/en/user_guide/faq#frequently-asked-questions-faq"],[142,"/psi/main/en/user_guide/pir#apsi-params-file"],[139,"/psi/main/en/user_guide/pir#before-start"],[145,"/psi/main/en/user_guide/pir#bucketized-mode"],[141,"/psi/main/en/user_guide/pir#csv-file"],[144,"/psi/main/en/user_guide/pir#full-examples"],[138,"/psi/main/en/user_guide/pir#keyword-pir-apsi"],[143,"/psi/main/en/user_guide/pir#pir-config"],[135,"/psi/main/en/user_guide/pir#pir-quickstart"],[140,"/psi/main/en/user_guide/pir#prepare-data-and-config"],[137,"/psi/main/en/user_guide/pir#release-docker"],[136,"/psi/main/en/user_guide/pir#supported-protocols"],[157,"/psi/main/en/user_guide/psi_v2_benchmark#benchmark"],[150,"/psi/main/en/user_guide/psi_v2_benchmark#building-from-source"],[151,"/psi/main/en/user_guide/psi_v2_benchmark#generate-data"],[156,"/psi/main/en/user_guide/psi_v2_benchmark#limit-bandwidth-and-latency"],[152,"/psi/main/en/user_guide/psi_v2_benchmark#prepare-config-file"],[149,"/psi/main/en/user_guide/psi_v2_benchmark#psi-v2-benchmark"],[154,"/psi/main/en/user_guide/psi_v2_benchmark#receiver-config"],[155,"/psi/main/en/user_guide/psi_v2_benchmark#run-psi-with-docker"],[153,"/psi/main/en/user_guide/psi_v2_benchmark#sender-config"],[132,"/psi/main/en/user_guide/psi_v2#building-from-source"],[133,"/psi/main/en/user_guide/psi_v2#more-examples"],[130,"/psi/main/en/user_guide/psi_v2#prepare-data-and-config"],[128,"/psi/main/en/user_guide/psi_v2#psi-v2-quickstart"],[129,"/psi/main/en/user_guide/psi_v2#release-docker"],[131,"/psi/main/en/user_guide/psi_v2#run-psi"],[134,"/psi/main/en/user_guide/psi_v2#ub-psi"],[164,"/psi/main/en/user_guide/psi#benchmark"],[163,"/psi/main/en/user_guide/psi#building-from-source"],[165,"/psi/main/en/user_guide/psi#ecdh-psi-benchmark"],[166,"/psi/main/en/user_guide/psi#kkrt-psi-benchmark"],[160,"/psi/main/en/user_guide/psi#prepare-data-and-config"],[158,"/psi/main/en/user_guide/psi#psi-v1-quickstart-deprecated"],[161,"/psi/main/en/user_guide/psi#release-docker"],[162,"/psi/main/en/user_guide/psi#run-psi"],[167,"/psi/main/en/user_guide/psi#security-tips"],[159,"/psi/main/en/user_guide/psi#supported-protocols"],[115,"/psi/main/en/user_guide#user-guide"],[3,"/psi/main/en/whatsnew#release"],[2,"/psi/main/en/whatsnew#release-notes"],[21,"/psi/main/en/whatsnew#v0-1-0beta"],[20,"/psi/main/en/whatsnew#v0-2-0-dev231221"],[19,"/psi/main/en/whatsnew#v0-2-0-dev231228"],[18,"/psi/main/en/whatsnew#v0-2-0-dev240123"],[17,"/psi/main/en/whatsnew#v0-3-0-dev240219"],[16,"/psi/main/en/whatsnew#v0-3-0-dev240222"],[15,"/psi/main/en/whatsnew#v0-3-0-dev240304"],[14,"/psi/main/en/whatsnew#v0-3-0beta"],[13,"/psi/main/en/whatsnew#v0-4-0-dev240329"],[12,"/psi/main/en/whatsnew#v0-4-0-dev240401"],[11,"/psi/main/en/whatsnew#v0-4-0-dev240514"],[10,"/psi/main/en/whatsnew#v0-4-0-dev240517"],[9,"/psi/main/en/whatsnew#v0-4-0-dev240521"],[8,"/psi/main/en/whatsnew#v0-4-0-dev240731"],[7,"/psi/main/en/whatsnew#v0-4-0-dev240801"],[6,"/psi/main/en/whatsnew#v0-4-0beta"],[5,"/psi/main/en/whatsnew#v0-4-2beta"],[4,"/psi/main/en/whatsnew#v0-5-0beta"]],"type":"string"},"title":{"docs":{"1":166,"2":145,"3":146,"4":164,"5":163,"6":162,"7":161,"8":160,"9":159,"10":158,"11":157,"12":156,"13":155,"14":154,"15":153,"16":152,"17":151,"18":150,"19":149,"20":148,"21":147,"22":17,"23":25,"24":23,"25":28,"26":22,"27":27,"28":33,"29":31,"30":19,"31":30,"32":32,"33":18,"34":21,"35":34,"36":24,"37":26,"38":20,"39":29,"40":13,"41":75,"42":78,"43":79,"44":80,"45":76,"46":84,"47":77,"48":81,"49":83,"50":82,"51":0,"52":56,"53":63,"54":60,"55":57,"56":58,"57":61,"58":59,"59":62,"60":117,"61":135,"62":125,"63":118,"64":119,"65":121,"66":122,"67":124,"68":126,"69":128,"70":129,"71":131,"72":133,"73":136,"74":120,"75":123,"76":127,"77":130,"78":132,"79":137,"80":134,"81":85,"82":97,"83":92,"84":86,"85":88,"86":90,"87":91,"88":93,"89":94,"90":89,"91":87,"92":95,"93":96,"94":35,"95":53,"96":43,"97":42,"98":39,"99":44,"100":36,"101":37,"102":46,"103":48,"104":51,"105":54,"106":55,"107":40,"108":45,"109":38,"110":47,"111":49,"112":52,"113":41,"114":50,"115":165,"116":1,"117":8,"118":9,"119":11,"120":5,"121":4,"122":2,"123":12,"124":6,"125":3,"126":10,"127":7,"128":138,"129":142,"130":141,"131":143,"132":139,"133":140,"134":144,"135":64,"136":74,"137":73,"138":70,"139":66,"140":72,"141":68,"142":65,"143":71,"144":69,"145":67,"146":14,"147":15,"148":16,"149":108,"150":110,"151":111,"152":113,"153":116,"154":114,"155":115,"156":112,"157":109,"158":98,"159":107,"160":103,"161":104,"162":105,"163":100,"164":99,"165":101,"166":102,"167":106},"orderedDocs":[[51,"API reference"],[116,"APSI Benchmark"],[122,"APSI Benchmark - apsi_receiver.json"],[125,"APSI Benchmark - apsi_receiver（16C32G）"],[121,"APSI Benchmark - apsi_sender_online.json"],[120,"APSI Benchmark - apsi_sender_setup.json"],[124,"APSI Benchmark - apsi_sender（32C64G）"],[127,"APSI Benchmark - Benchmark"],[117,"APSI Benchmark - Building from source"],[118,"APSI Benchmark - Generate Data"],[126,"APSI Benchmark - Limit bandwidth and latency"],[119,"APSI Benchmark - Prepare config file"],[123,"APSI Benchmark - Run APSI with docker"],[40,"Development"],[146,"Frequently Asked Questions (FAQ)"],[147,"Frequently Asked Questions (FAQ) - Config Issues"],[148,"Frequently Asked Questions (FAQ) - Feature Issues"],[22,"Getting started"],[33,"Getting started - (Deprecated) Easy PSI"],[30,"Getting started - Applications"],[38,"Getting started - Build & UnitTest"],[34,"Getting started - Building"],[26,"Getting started - Building from Source"],[24,"Getting started - C++ binaries"],[36,"Getting started - Dev Docker"],[23,"Getting started - Installation"],[37,"Getting started - Linux"],[27,"Getting started - Python packages"],[25,"Getting started - Release Docker"],[39,"Getting started - Reporting an Issue"],[31,"Getting started - SCQL"],[29,"Getting started - SecretFlow"],[32,"Getting started - SecretPad"],[28,"Getting started - SPU"],[35,"Getting started - System Setup"],[94,"Launch Configuration"],[100,"Launch Configuration - AllocatedPorts"],[101,"Launch Configuration - ClusterDefine"],[109,"Launch Configuration - ContextDescProto"],[98,"Launch Configuration - Enums"],[107,"Launch Configuration - Enums"],[113,"Launch Configuration - Enums"],[97,"Launch Configuration - LaunchConfig"],[96,"Launch Configuration - Messages"],[99,"Launch Configuration - Messages"],[108,"Launch Configuration - Messages"],[102,"Launch Configuration - Party"],[110,"Launch Configuration - PartyProto"],[103,"Launch Configuration - Port"],[111,"Launch Configuration - RetryOptionsProto"],[114,"Launch Configuration - Scalar Value Types"],[104,"Launch Configuration - Service"],[112,"Launch Configuration - SSLOptionsProto"],[95,"Launch Configuration - Table of Contents"],[105,"Launch Configuration - TaskInputConfig"],[106,"Launch Configuration - TaskInputConfig.SfPsiConfigMapEntry"],[52,"PIR Configuration"],[55,"PIR Configuration - ApsiReceiverConfig"],[56,"PIR Configuration - ApsiSenderConfig"],[58,"PIR Configuration - Enums"],[54,"PIR Configuration - Messages"],[57,"PIR Configuration - PirResultReport"],[59,"PIR Configuration - Scalar Value Types"],[53,"PIR Configuration - Table of Contents"],[135,"PIR QuickStart"],[142,"PIR QuickStart - APSI Params File"],[139,"PIR QuickStart - Before Start"],[145,"PIR QuickStart - Bucketized Mode"],[141,"PIR QuickStart - CSV File"],[144,"PIR QuickStart - Full Examples"],[138,"PIR QuickStart - Keyword PIR (APSI)"],[143,"PIR QuickStart - PIR Config"],[140,"PIR QuickStart - Prepare data and config"],[137,"PIR QuickStart - Release Docker"],[136,"PIR QuickStart - Supported Protocols"],[41,"PSI Protocols Introduction"],[45,"PSI Protocols Introduction - Differentially Private PSI"],[47,"PSI Protocols Introduction - Ecdh-OPRF based PSI"],[42,"PSI Protocols Introduction - ECDH-PSI"],[43,"PSI Protocols Introduction - ECDH-PSI (3P)"],[44,"PSI Protocols Introduction - KKRT16-PSI"],[48,"PSI Protocols Introduction - Labeled PSI"],[50,"PSI Protocols Introduction - Reference"],[49,"PSI Protocols Introduction - RR22 Blazing Fast PSI"],[46,"PSI Protocols Introduction - Unbalanced PSI"],[81,"PSI v1 Configuration"],[84,"PSI v1 Configuration - BucketPsiConfig"],[91,"PSI v1 Configuration - CurveType"],[85,"PSI v1 Configuration - DpPsiParams"],[90,"PSI v1 Configuration - Enums"],[86,"PSI v1 Configuration - InputParams"],[87,"PSI v1 Configuration - MemoryPsiConfig"],[83,"PSI v1 Configuration - Messages"],[88,"PSI v1 Configuration - OutputParams"],[89,"PSI v1 Configuration - PsiResultReport"],[92,"PSI v1 Configuration - PsiType"],[93,"PSI v1 Configuration - Scalar Value Types"],[82,"PSI v1 Configuration - Table of Contents"],[158,"PSI v1 QuickStart (Deprecated)"],[164,"PSI v1 QuickStart (Deprecated) - Benchmark"],[163,"PSI v1 QuickStart (Deprecated) - Building from source"],[165,"PSI v1 QuickStart (Deprecated) - ECDH PSI Benchmark"],[166,"PSI v1 QuickStart (Deprecated) - KKRT PSI Benchmark"],[160,"PSI v1 QuickStart (Deprecated) - Prepare data and config"],[161,"PSI v1 QuickStart (Deprecated) - Release Docker"],[162,"PSI v1 QuickStart (Deprecated) - Run PSI"],[167,"PSI v1 QuickStart (Deprecated) - Security Tips"],[159,"PSI v1 QuickStart (Deprecated) - Supported Protocols"],[149,"PSI V2 Benchmark"],[157,"PSI V2 Benchmark - Benchmark"],[150,"PSI V2 Benchmark - Building from source"],[151,"PSI V2 Benchmark - Generate Data"],[156,"PSI V2 Benchmark - Limit bandwidth and latency"],[152,"PSI V2 Benchmark - Prepare config file"],[154,"PSI V2 Benchmark - receiver.config"],[155,"PSI V2 Benchmark - Run PSI with docker"],[153,"PSI V2 Benchmark - sender.config"],[60,"PSI v2 Configuration"],[63,"PSI v2 Configuration - DebugOptions"],[64,"PSI v2 Configuration - EcdhConfig"],[74,"PSI v2 Configuration - Enums"],[65,"PSI v2 Configuration - InputAttr"],[66,"PSI v2 Configuration - IoConfig"],[75,"PSI v2 Configuration - IoType"],[67,"PSI v2 Configuration - KkrtConfig"],[62,"PSI v2 Configuration - Messages"],[68,"PSI v2 Configuration - OutputAttr"],[76,"PSI v2 Configuration - Protocol"],[69,"PSI v2 Configuration - ProtocolConfig"],[70,"PSI v2 Configuration - PsiConfig"],[77,"PSI v2 Configuration - PsiConfig.AdvancedJoinType"],[71,"PSI v2 Configuration - RecoveryConfig"],[78,"PSI v2 Configuration - Role"],[72,"PSI v2 Configuration - Rr22Config"],[80,"PSI v2 Configuration - Scalar Value Types"],[61,"PSI v2 Configuration - Table of Contents"],[73,"PSI v2 Configuration - UbPsiConfig"],[79,"PSI v2 Configuration - UbPsiConfig.Mode"],[128,"PSI v2 QuickStart"],[132,"PSI v2 QuickStart - Building from source"],[133,"PSI v2 QuickStart - More examples"],[130,"PSI v2 QuickStart - Prepare data and config"],[129,"PSI v2 QuickStart - Release Docker"],[131,"PSI v2 QuickStart - Run PSI"],[134,"PSI v2 QuickStart - Ub PSI"],[2,"Release notes"],[3,"Release notes - RELEASE"],[21,"Release notes - v0.1.0beta"],[20,"Release notes - v0.2.0.dev231221"],[19,"Release notes - v0.2.0.dev231228"],[18,"Release notes - v0.2.0.dev240123"],[17,"Release notes - v0.3.0.dev240219"],[16,"Release notes - v0.3.0.dev240222"],[15,"Release notes - v0.3.0.dev240304"],[14,"Release notes - v0.3.0beta"],[13,"Release notes - v0.4.0.dev240329"],[12,"Release notes - v0.4.0.dev240401"],[11,"Release notes - v0.4.0.dev240514"],[10,"Release notes - v0.4.0.dev240517"],[9,"Release notes - v0.4.0.dev240521"],[8,"Release notes - v0.4.0.dev240731"],[7,"Release notes - v0.4.0.dev240801"],[6,"Release notes - v0.4.0beta"],[5,"Release notes - v0.4.2beta"],[4,"Release notes - v0.5.0beta"],[115,"User Guide"],[1,"Welcome to SecretFlow PSI Library’s documentation!"]],"type":"string"},"content":{"docs":{"1":147,"2":0,"3":44,"4":22,"5":25,"6":27,"7":29,"8":34,"9":26,"10":37,"11":20,"12":35,"13":36,"14":33,"15":23,"16":24,"17":31,"18":32,"19":30,"20":28,"21":21,"22":162,"23":1,"24":2,"25":114,"26":123,"27":3,"28":119,"29":117,"30":4,"31":116,"32":118,"33":113,"34":45,"35":5,"36":163,"37":166,"38":157,"39":120,"40":71,"41":132,"42":142,"43":155,"44":67,"45":154,"46":6,"47":68,"48":135,"49":69,"50":88,"51":148,"52":7,"53":40,"54":8,"55":95,"56":108,"57":140,"58":46,"59":63,"60":9,"61":42,"62":10,"63":104,"64":82,"65":92,"66":103,"67":83,"68":89,"69":74,"70":144,"71":86,"72":84,"73":81,"74":11,"75":152,"76":125,"77":70,"78":130,"79":105,"80":64,"81":12,"82":41,"83":13,"84":58,"85":139,"86":60,"87":59,"88":61,"89":141,"90":14,"91":143,"92":57,"93":65,"94":115,"95":43,"96":15,"97":93,"98":47,"99":16,"100":73,"101":80,"102":109,"103":124,"104":134,"105":94,"106":91,"107":48,"108":17,"109":85,"110":90,"111":129,"112":136,"113":49,"114":66,"115":126,"116":145,"117":55,"118":151,"119":159,"120":106,"121":50,"122":107,"123":150,"124":75,"125":62,"126":51,"127":97,"128":18,"129":78,"130":111,"131":101,"132":164,"133":122,"134":149,"135":128,"136":110,"137":79,"138":19,"139":156,"140":96,"141":137,"142":160,"143":133,"144":121,"145":131,"146":161,"147":39,"148":38,"149":146,"150":56,"151":99,"152":158,"153":52,"154":53,"155":100,"156":54,"157":98,"158":127,"159":138,"160":112,"161":77,"162":102,"163":165,"164":76,"165":87,"166":72,"167":153},"orderedDocs":[[2,""],[23,""],[24,""],[27,""],[30,""],[35,""],[46,""],[52,""],[54,""],[60,""],[62,""],[74,""],[81,""],[83,""],[90,""],[96,""],[99,""],[108,""],[128,""],[138,""],[11,"\n[API] add entrypoint for docker file.\n[API] allow passing config JSON directly to main.\n[Bugfix] fix ic mode.\n[Bugfix] fix RR22, SealPIR and APSI.\n [API] add entrypoint for docker file. [API] allow passing config JSON directly to main. [Bugfix] fix ic mode. [Bugfix] fix RR22, SealPIR and APSI. "],[21,"\n[API] Add PSI v2 API.\n[Feature] Add RR22 protocol.\n[Feature] Support recovery from failure in v2 API.\n[Feature] Support inner join in v2 API.\n[Feature] Migrate ECDH, KKRT, RR22 protocol in v2 API.\n [API] Add PSI v2 API. [Feature] Add RR22 protocol. [Feature] Support recovery from failure in v2 API. [Feature] Support inner join in v2 API. [Feature] Migrate ECDH, KKRT, RR22 protocol in v2 API. "],[4,"\n[API] delete legacy ub psi function.\n[API] output csv null_rep can be specified.\n[Feature] join can be done with one receiver.\n[Feature] join can be done with ub psi protocol.\n[Improvement] RR22 enhancement\n[Drop] ic_mode\n [API] delete legacy ub psi function. [API] output csv null_rep can be specified. [Feature] join can be done with one receiver. [Feature] join can be done with ub psi protocol. [Improvement] RR22 enhancement [Drop] ic_mode "],[15,"\n[API] expose ic_mode in RunLegacyPsi api\n [API] expose ic_mode in RunLegacyPsi api "],[16,"\n[API] expose PIR API.\n [API] expose PIR API. "],[5,"\n[API] pir experimental params\n[API] ecdh batch_size\n[Improvement] APSI group mode\n[Improvement] tmp dir cleanup\n[Improvement] refactor csv reader\n [API] pir experimental params [API] ecdh batch_size batch_size [Improvement] APSI group mode [Improvement] tmp dir cleanup [Improvement] refactor csv reader "],[9,"\n[API] remove BC22 protocol\n [API] remove BC22 protocol "],[6,"\n[API] remove BC22 protocol\n[API] add entrypoint for docker file.\n[API] allow passing config JSON directly to main.\n[Bugfix] fix ic mode.\n[Bugfix] fix RR22, SealPIR and APSI.\n[Improvement] upgrade yacl to 0.4.5b1.\n[Improvement] upgrade download uri of xz.\n [API] remove BC22 protocol [API] add entrypoint for docker file. [API] allow passing config JSON directly to main. [Bugfix] fix ic mode. [Bugfix] fix RR22, SealPIR and APSI. [Improvement] upgrade yacl to 0.4.5b1. [Improvement] upgrade download uri of xz. "],[20,"\n[API] Rename check_duplicates to skip_duplicates_check.\n[API] Rename sort_output to disable_alignment.\n[Feature] Support left join, right join and full join. The behavior of difference is modified.\n[Feature] Skip duplicate key check if recovery checkpoint exists.\n[Bugfix] Fix duplicate key check.\n[Bugfix] Fix SyncWait.\n [API] Rename check_duplicates to skip_duplicates_check. [API] Rename sort_output to disable_alignment. [Feature] Support left join, right join and full join. The behavior of difference is modified. [Feature] Skip duplicate key check if recovery checkpoint exists. [Bugfix] Fix duplicate key check. [Bugfix] Fix SyncWait. "],[7,"\n[Bugfix] Fix MacOS and arm build.\n [Bugfix] Fix MacOS and arm build. "],[19,"\n[Bugfix] Fix RR22 race condition.\n[Improvement] modify sort buffer size.\n [Bugfix] Fix RR22 race condition. [Improvement] modify sort buffer size. "],[17,"\n[Feature] add ecdh logger for debug purposes.\n[API] modify repo structure.\n [Feature] add ecdh logger for debug purposes. [API] modify repo structure. "],[18,"\n[Feature] add RFC9380 25519 elligator2 hash_to_curve.\n[Feature] add malicious vole psi.\n[API] expose ub psi in PSI v2 API.\n[Improvement] Modify buffer size in sort cmd.\n[Bugfix] Fix SimpleShuffledBatchProvider.\n[Bugfix] Fix flakiness in psi_test.\n[Bugfix] Fix race condition in rr22.\n [Feature] add RFC9380 25519 elligator2 hash_to_curve. [Feature] add malicious vole psi. [API] expose ub psi in PSI v2 API. [Improvement] Modify buffer size in sort cmd. [Bugfix] Fix SimpleShuffledBatchProvider. [Bugfix] Fix flakiness in psi_test. [Bugfix] Fix race condition in rr22. "],[14,"\n[Improvement] add uuid in system temp folder.\n[Improvement] use arrow csv reader in pir.\n[Bugfix] fix typo in psi config check.\n [Improvement] add uuid in system temp folder. [Improvement] use arrow csv reader in pir. [Bugfix] fix typo in psi config check. "],[8,"\n[Improvement] Port APSI again.\n[Feature] Add Bucketized APSI.\n[API] Remove SealPIR.\n [Improvement] Port APSI again. [Feature] Add Bucketized APSI. [API] Remove SealPIR. "],[12,"\n[Improvement] upgrade download uri of xz.\n [Improvement] upgrade download uri of xz. "],[13,"\n[Improvement] upgrade yacl to 0.4.4b3.\n [Improvement] upgrade yacl to 0.4.4b3. "],[10,"\n[Improvement] upgrade yacl to 0.4.5b0.\n [Improvement] upgrade yacl to 0.4.5b0. "],[148,"\nHow to enable SSL?\n How to enable SSL? We support mTLS and you should provide proper ContextDescProto: \nenable_ssl is enabled.\nIn client_ssl_opts, set verify_depth and provide peer CA file with ca_file_path\nIn server_ssl_opts, provide self certificate and private key file with certificate_path and private_key_path\nYou must provide these settings at both sides.\n enable_ssl is enabled. enable_ssl In client_ssl_opts, set verify_depth and provide peer CA file with ca_file_path client_ssl_opts verify_depth ca_file_path In server_ssl_opts, provide self certificate and private key file with certificate_path and private_key_path server_ssl_opts certificate_path private_key_path You must provide these settings at both sides. example.config example.config example.config  \nHow to use recovery?\n How to use recovery? We provide recovery feature in PSI v2. You have to provide a proper:ref:RecoveryConfig <RecoveryConfig>: RecoveryConfig <RecoveryConfig> \nenabled set to true.\nfolder is provided to store checkpoints.\n enabled set to true. enabled folder is provided to store checkpoints. folder If a PSI task fails, just restart the task with the same config, the progress will resume. "],[147,"\nIn PSI config, what is difference of broadcast_result and receiver? Is it safe to turn on broadcast_result?\n In PSI config, what is difference of broadcast_result and receiver? Is it safe to turn on broadcast_result? broadcast_result receiver broadcast_result In PSI protocols, the parties who are promised to receive the intersection are called receiver**s, the other parties are called **sender**s.\nWhen **broadcast_result is turn on, sender**s also receive the intersection. Both parties must agree on the value of **broadcast_result, otherwise the program will stop. receiver**s, the other parties are called **sender**s.\nWhen **broadcast_result sender**s also receive the intersection. Both parties must agree on the value of **broadcast_result If broadcast_result is turn on, only receiver**s and **sender**s could receive the result while any third parties could not see. So it is safe to set **broadcast_result to true, if both **receiver**s and **sender**s wish to get the result. broadcast_result receiver**s and **sender**s could receive the result while any third parties could not see. So it is safe to set **broadcast_result ** ** \nWhat is IO_TYPE_UNSPECIFIED?\n What is IO_TYPE_UNSPECIFIED? You must select a type as IoType. IO_TYPE_UNSPECIFIED is the default value of IoType, which is meaningless. At this moment, we only support IO_TYPE_FILE_CSV. \nWhat is ADVANCED_JOIN_TYPE_UNSPECIFIED?\n What is ADVANCED_JOIN_TYPE_UNSPECIFIED? PSI protocols doesn‘t allow duplicates in ids of inputs. However, sometimes we may intend to have duplicates in ids and perform LEFT / RIGHT / FULL join following rules of SQL. This is called AdvancedJoinType. ADVANCED_JOIN_TYPE_UNSPECIFIED is same as ADVANCED_JOIN_TYPE_INNER_JOIN. \nWhat is the recommendation value of bucket size?\n What is the recommendation value of bucket size? The default value is 2^20. You shouldn’t set this value unless you have very limited computation resource. \nWhat is disable_alignment?\n What is disable_alignment? If disable_alignment turns on, the intersection received by **receiver**s and **sender**s are not promised to be aligned(the order doesn’t match) and save time. ** ** \nWhat is RetryOptionsProto in ContextDescProto?\n What is RetryOptionsProto in ContextDescProto? We have proper default values for all fields. You shouldn’t set any values unless the network is pretty bad.\nFor more info, you can look up here. here "],[53,"\nMessages\n\nApsiReceiverConfig\nApsiSenderConfig\nPirResultReport\n\n\nScalar Value Types\n Messages\n\nApsiReceiverConfig\nApsiSenderConfig\nPirResultReport\n\n \nApsiReceiverConfig\nApsiSenderConfig\nPirResultReport\n ApsiReceiverConfig ApsiReceiverConfig ApsiSenderConfig ApsiSenderConfig PirResultReport PirResultReport Scalar Value Types Scalar Value Types  "],[82,"\nMessages\n\nBucketPsiConfig\nDpPsiParams\nInputParams\nMemoryPsiConfig\nOutputParams\nPsiResultReport\n\n\nEnums\n\nCurveType\nPsiType\n\n\nScalar Value Types\n Messages\n\nBucketPsiConfig\nDpPsiParams\nInputParams\nMemoryPsiConfig\nOutputParams\nPsiResultReport\n\n \nBucketPsiConfig\nDpPsiParams\nInputParams\nMemoryPsiConfig\nOutputParams\nPsiResultReport\n BucketPsiConfig BucketPsiConfig DpPsiParams DpPsiParams InputParams InputParams MemoryPsiConfig MemoryPsiConfig OutputParams OutputParams PsiResultReport PsiResultReport Enums\n\nCurveType\nPsiType\n\n \nCurveType\nPsiType\n CurveType CurveType PsiType PsiType Scalar Value Types Scalar Value Types  "],[61,"\nMessages\n\nDebugOptions\nEcdhConfig\nInputAttr\nIoConfig\nKkrtConfig\nOutputAttr\nProtocolConfig\nPsiConfig\nRecoveryConfig\nRr22Config\nUbPsiConfig\n\n\nEnums\n\nIoType\nProtocol\nPsiConfig.AdvancedJoinType\nRole\nUbPsiConfig.Mode\n\n\nScalar Value Types\n Messages\n\nDebugOptions\nEcdhConfig\nInputAttr\nIoConfig\nKkrtConfig\nOutputAttr\nProtocolConfig\nPsiConfig\nRecoveryConfig\nRr22Config\nUbPsiConfig\n\n \nDebugOptions\nEcdhConfig\nInputAttr\nIoConfig\nKkrtConfig\nOutputAttr\nProtocolConfig\nPsiConfig\nRecoveryConfig\nRr22Config\nUbPsiConfig\n DebugOptions DebugOptions EcdhConfig EcdhConfig InputAttr InputAttr IoConfig IoConfig KkrtConfig KkrtConfig OutputAttr OutputAttr ProtocolConfig ProtocolConfig PsiConfig PsiConfig RecoveryConfig RecoveryConfig Rr22Config Rr22Config UbPsiConfig UbPsiConfig Enums\n\nIoType\nProtocol\nPsiConfig.AdvancedJoinType\nRole\nUbPsiConfig.Mode\n\n \nIoType\nProtocol\nPsiConfig.AdvancedJoinType\nRole\nUbPsiConfig.Mode\n IoType IoType Protocol Protocol PsiConfig.AdvancedJoinType PsiConfig.AdvancedJoinType Role Role UbPsiConfig.Mode UbPsiConfig.Mode Scalar Value Types Scalar Value Types  "],[95,"\nMessages\n\nLaunchConfig\n\n\nMessages\n\nAllocatedPorts\nClusterDefine\nParty\nPort\nService\nTaskInputConfig\nTaskInputConfig.SfPsiConfigMapEntry\n\n\nMessages\n\nContextDescProto\nPartyProto\nRetryOptionsProto\nSSLOptionsProto\n\n\nScalar Value Types\n Messages\n\nLaunchConfig\n\n \nLaunchConfig\n LaunchConfig LaunchConfig Messages\n\nAllocatedPorts\nClusterDefine\nParty\nPort\nService\nTaskInputConfig\nTaskInputConfig.SfPsiConfigMapEntry\n\n \nAllocatedPorts\nClusterDefine\nParty\nPort\nService\nTaskInputConfig\nTaskInputConfig.SfPsiConfigMapEntry\n AllocatedPorts AllocatedPorts ClusterDefine ClusterDefine Party Party Port Port Service Service TaskInputConfig TaskInputConfig TaskInputConfig.SfPsiConfigMapEntry TaskInputConfig.SfPsiConfigMapEntry Messages\n\nContextDescProto\nPartyProto\nRetryOptionsProto\nSSLOptionsProto\n\n \nContextDescProto\nPartyProto\nRetryOptionsProto\nSSLOptionsProto\n ContextDescProto ContextDescProto PartyProto PartyProto RetryOptionsProto RetryOptionsProto SSLOptionsProto SSLOptionsProto Scalar Value Types Scalar Value Types  "],[3,"\nNOTE:\n\n[Feature] prefix for new features.\n[Bugfix] prefix for bug fixes.\n[API] prefix for API changes.\n[Improvement] prefix for implementation improvement.\n\n NOTE: \n[Feature] prefix for new features.\n[Bugfix] prefix for bug fixes.\n[API] prefix for API changes.\n[Improvement] prefix for implementation improvement.\n [Feature] prefix for new features. [Feature] [Bugfix] prefix for bug fixes. [Bugfix] [API] prefix for API changes. [API] [Improvement] prefix for implementation improvement. [Improvement] \n[API] delete skip_duplicates_check in psi_v2 config.\n [API] delete skip_duplicates_check in psi_v2 config. skip_duplicates_check "],[34," "],[58," "],[98," "],[107," "],[113," "],[121," "],[126," "],[153," "],[154," "],[156," "],[117," If the build is successful, you will find an executable file named main in the bazel-bin/psi directory. We will use ./main file, combined with a config file, to run APSI protocol. For exampple: main bazel-bin/psi ./main  "],[150," If the building is successful, you will find an executable file named main in the ‘bazel-bin/psi’ directory. We will use ./main file, combined with config file to run different PSI protocols. Such as: main ./main  "],[92," The algorithm type of psi. NameNumberDescriptionINVALID_PSI_TYPE0noneECDH_PSI_2PC1NOTICED: No longer supported DDH based PSIKKRT_PSI_2PC2NOTICED: No longer supported Efficient Batched Oblivious PRF with Applications to Private Set Intersection https://eprint.iacr.org/2016/799.pdfECDH_PSI_3PC4Multi-party PSI based on ECDH (Say A, B, C (receiver)) notice: two-party intersection cardinarlity leak (ECDH_PSI_NPC5Iterative running 2-party ecdh psi to get n-party PSI. Notice: two-party intersection leakKKRT_PSI_NPC6Iterative running 2-party kkrt psi to get n-party PSI. Notice: two-party intersection leakECDH_OPRF_UB_PSI_2PC_GEN_CACHE7NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI Generate CACHE.ECDH_OPRF_UB_PSI_2PC_TRANSFER_CACHE8NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI transfer CACHE.ECDH_OPRF_UB_PSI_2PC_OFFLINE9NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI offline phase.ECDH_OPRF_UB_PSI_2PC_ONLINE10NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI online phase.ECDH_OPRF_UB_PSI_2PC_SHUFFLE_ONLINE11NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI with shuffling online phase. large set party get intersection resultDP_PSI_2PC12Differentially-Private PSI https://arxiv.org/pdf/2208.13249.pdf bases on ECDH-PSI, and provides: Differentially private PSI results.RR22_FAST_PSI_2PC13NOTICED: No longer supported Blazing Fast PSI https://eprint.iacr.org/2022/320.pdf two mode: fast mode or low communication modeRR22_LOWCOMM_PSI_2PC14noneRR22_MALICIOUS_PSI_2PC15none NameNumberDescription NameNumberDescription Name Name Number Number Description Description INVALID_PSI_TYPE0noneECDH_PSI_2PC1NOTICED: No longer supported DDH based PSIKKRT_PSI_2PC2NOTICED: No longer supported Efficient Batched Oblivious PRF with Applications to Private Set Intersection https://eprint.iacr.org/2016/799.pdfECDH_PSI_3PC4Multi-party PSI based on ECDH (Say A, B, C (receiver)) notice: two-party intersection cardinarlity leak (ECDH_PSI_NPC5Iterative running 2-party ecdh psi to get n-party PSI. Notice: two-party intersection leakKKRT_PSI_NPC6Iterative running 2-party kkrt psi to get n-party PSI. Notice: two-party intersection leakECDH_OPRF_UB_PSI_2PC_GEN_CACHE7NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI Generate CACHE.ECDH_OPRF_UB_PSI_2PC_TRANSFER_CACHE8NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI transfer CACHE.ECDH_OPRF_UB_PSI_2PC_OFFLINE9NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI offline phase.ECDH_OPRF_UB_PSI_2PC_ONLINE10NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI online phase.ECDH_OPRF_UB_PSI_2PC_SHUFFLE_ONLINE11NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI with shuffling online phase. large set party get intersection resultDP_PSI_2PC12Differentially-Private PSI https://arxiv.org/pdf/2208.13249.pdf bases on ECDH-PSI, and provides: Differentially private PSI results.RR22_FAST_PSI_2PC13NOTICED: No longer supported Blazing Fast PSI https://eprint.iacr.org/2022/320.pdf two mode: fast mode or low communication modeRR22_LOWCOMM_PSI_2PC14noneRR22_MALICIOUS_PSI_2PC15none INVALID_PSI_TYPE0none INVALID_PSI_TYPE INVALID_PSI_TYPE 0 0 none none ECDH_PSI_2PC1NOTICED: No longer supported DDH based PSI ECDH_PSI_2PC ECDH_PSI_2PC 1 1 NOTICED: No longer supported DDH based PSI NOTICED: No longer supported DDH based PSI NOTICED: No longer supported KKRT_PSI_2PC2NOTICED: No longer supported Efficient Batched Oblivious PRF with Applications to Private Set Intersection https://eprint.iacr.org/2016/799.pdf KKRT_PSI_2PC KKRT_PSI_2PC 2 2 NOTICED: No longer supported Efficient Batched Oblivious PRF with Applications to Private Set Intersection https://eprint.iacr.org/2016/799.pdf NOTICED: No longer supported Efficient Batched Oblivious PRF with Applications to Private Set Intersection https://eprint.iacr.org/2016/799.pdf NOTICED: No longer supported https://eprint.iacr.org/2016/799.pdf ECDH_PSI_3PC4Multi-party PSI based on ECDH (Say A, B, C (receiver)) notice: two-party intersection cardinarlity leak ( ECDH_PSI_3PC ECDH_PSI_3PC 4 4 Multi-party PSI based on ECDH (Say A, B, C (receiver)) notice: two-party intersection cardinarlity leak ( Multi-party PSI based on ECDH (Say A, B, C (receiver)) notice: two-party intersection cardinarlity leak ( ECDH_PSI_NPC5Iterative running 2-party ecdh psi to get n-party PSI. Notice: two-party intersection leak ECDH_PSI_NPC ECDH_PSI_NPC 5 5 Iterative running 2-party ecdh psi to get n-party PSI. Notice: two-party intersection leak Iterative running 2-party ecdh psi to get n-party PSI. Notice: two-party intersection leak KKRT_PSI_NPC6Iterative running 2-party kkrt psi to get n-party PSI. Notice: two-party intersection leak KKRT_PSI_NPC KKRT_PSI_NPC 6 6 Iterative running 2-party kkrt psi to get n-party PSI. Notice: two-party intersection leak Iterative running 2-party kkrt psi to get n-party PSI. Notice: two-party intersection leak ECDH_OPRF_UB_PSI_2PC_GEN_CACHE7NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI Generate CACHE. ECDH_OPRF_UB_PSI_2PC_GEN_CACHE ECDH_OPRF_UB_PSI_2PC_GEN_CACHE 7 7 NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI Generate CACHE. NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI Generate CACHE. NOTICED: No longer supported ECDH_OPRF_UB_PSI_2PC_TRANSFER_CACHE8NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI transfer CACHE. ECDH_OPRF_UB_PSI_2PC_TRANSFER_CACHE ECDH_OPRF_UB_PSI_2PC_TRANSFER_CACHE 8 8 NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI transfer CACHE. NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI transfer CACHE. NOTICED: No longer supported ECDH_OPRF_UB_PSI_2PC_OFFLINE9NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI offline phase. ECDH_OPRF_UB_PSI_2PC_OFFLINE ECDH_OPRF_UB_PSI_2PC_OFFLINE 9 9 NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI offline phase. NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI offline phase. NOTICED: No longer supported ECDH_OPRF_UB_PSI_2PC_ONLINE10NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI online phase. ECDH_OPRF_UB_PSI_2PC_ONLINE ECDH_OPRF_UB_PSI_2PC_ONLINE 10 10 NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI online phase. NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI online phase. NOTICED: No longer supported ECDH_OPRF_UB_PSI_2PC_SHUFFLE_ONLINE11NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI with shuffling online phase. large set party get intersection result ECDH_OPRF_UB_PSI_2PC_SHUFFLE_ONLINE ECDH_OPRF_UB_PSI_2PC_SHUFFLE_ONLINE 11 11 NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI with shuffling online phase. large set party get intersection result NOTICED: No longer supported ecdh-oprf 2-party Unbalanced-PSI with shuffling online phase. large set party get intersection result NOTICED: No longer supported DP_PSI_2PC12Differentially-Private PSI https://arxiv.org/pdf/2208.13249.pdf bases on ECDH-PSI, and provides: Differentially private PSI results. DP_PSI_2PC DP_PSI_2PC 12 12 Differentially-Private PSI https://arxiv.org/pdf/2208.13249.pdf bases on ECDH-PSI, and provides: Differentially private PSI results. Differentially-Private PSI https://arxiv.org/pdf/2208.13249.pdf bases on ECDH-PSI, and provides: Differentially private PSI results. https://arxiv.org/pdf/2208.13249.pdf RR22_FAST_PSI_2PC13NOTICED: No longer supported Blazing Fast PSI https://eprint.iacr.org/2022/320.pdf two mode: fast mode or low communication mode RR22_FAST_PSI_2PC RR22_FAST_PSI_2PC 13 13 NOTICED: No longer supported Blazing Fast PSI https://eprint.iacr.org/2022/320.pdf two mode: fast mode or low communication mode NOTICED: No longer supported Blazing Fast PSI https://eprint.iacr.org/2022/320.pdf two mode: fast mode or low communication mode NOTICED: No longer supported https://eprint.iacr.org/2022/320.pdf RR22_LOWCOMM_PSI_2PC14none RR22_LOWCOMM_PSI_2PC RR22_LOWCOMM_PSI_2PC 14 14 none none RR22_MALICIOUS_PSI_2PC15none RR22_MALICIOUS_PSI_2PC RR22_MALICIOUS_PSI_2PC 15 15 none none  "],[84," The Bucket-psi configuration.  FieldTypeDescriptionpsi_type PsiTypeThe psi type.receiver_rank uint32Specified the receiver rank. Receiver can get psi result.broadcast_result boolWhether to broadcast psi result to all parties.input_params InputParamsThe input parameters of psi.output_params OutputParamsThe output parameters of psi.curve_type CurveTypeOptional, specified elliptic curve cryptography used in psi when needed.bucket_size uint32Optional, specified the hash bucket size used in psi.preprocess_path stringOptional，the path of offline preprocess file.ecdh_secret_key_path stringOptional，secret key path of ecdh_oprf, 256bit/32bytes binary file.dppsi_params DpPsiParamsOptional，params for dp-psi FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description psi_type PsiTypeThe psi type.receiver_rank uint32Specified the receiver rank. Receiver can get psi result.broadcast_result boolWhether to broadcast psi result to all parties.input_params InputParamsThe input parameters of psi.output_params OutputParamsThe output parameters of psi.curve_type CurveTypeOptional, specified elliptic curve cryptography used in psi when needed.bucket_size uint32Optional, specified the hash bucket size used in psi.preprocess_path stringOptional，the path of offline preprocess file.ecdh_secret_key_path stringOptional，secret key path of ecdh_oprf, 256bit/32bytes binary file.dppsi_params DpPsiParamsOptional，params for dp-psi psi_type PsiTypeThe psi type. psi_type psi_type  PsiType  PsiType  PsiType The psi type. The psi type. receiver_rank uint32Specified the receiver rank. Receiver can get psi result. receiver_rank receiver_rank  uint32  uint32  uint32  uint32 Specified the receiver rank. Receiver can get psi result. Specified the receiver rank. Receiver can get psi result. broadcast_result boolWhether to broadcast psi result to all parties. broadcast_result broadcast_result  bool  bool  bool  bool Whether to broadcast psi result to all parties. Whether to broadcast psi result to all parties. input_params InputParamsThe input parameters of psi. input_params input_params  InputParams  InputParams  InputParams The input parameters of psi. The input parameters of psi. output_params OutputParamsThe output parameters of psi. output_params output_params  OutputParams  OutputParams  OutputParams The output parameters of psi. The output parameters of psi. curve_type CurveTypeOptional, specified elliptic curve cryptography used in psi when needed. curve_type curve_type  CurveType  CurveType  CurveType Optional, specified elliptic curve cryptography used in psi when needed. Optional, specified elliptic curve cryptography used in psi when needed. bucket_size uint32Optional, specified the hash bucket size used in psi. bucket_size bucket_size  uint32  uint32  uint32  uint32 Optional, specified the hash bucket size used in psi. Optional, specified the hash bucket size used in psi. preprocess_path stringOptional，the path of offline preprocess file. preprocess_path preprocess_path  string  string  string  string Optional，the path of offline preprocess file. Optional，the path of offline preprocess file. ecdh_secret_key_path stringOptional，secret key path of ecdh_oprf, 256bit/32bytes binary file. ecdh_secret_key_path ecdh_secret_key_path  string  string  string  string Optional，secret key path of ecdh_oprf, 256bit/32bytes binary file. Optional，secret key path of ecdh_oprf, 256bit/32bytes binary file. dppsi_params DpPsiParamsOptional，params for dp-psi dppsi_params dppsi_params  DpPsiParams  DpPsiParams  DpPsiParams Optional，params for dp-psi Optional，params for dp-psi  "],[87," The In-memory psi configuration.  FieldTypeDescriptionpsi_type PsiTypeThe psi type.receiver_rank uint32Specified the receiver rank. Receiver can get psi result.broadcast_result boolWhether to broadcast psi result to all parties.curve_type CurveTypeOptional, specified elliptic curve cryptography used in psi when needed.dppsi_params DpPsiParamsOptional，Params for dp-psi FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description psi_type PsiTypeThe psi type.receiver_rank uint32Specified the receiver rank. Receiver can get psi result.broadcast_result boolWhether to broadcast psi result to all parties.curve_type CurveTypeOptional, specified elliptic curve cryptography used in psi when needed.dppsi_params DpPsiParamsOptional，Params for dp-psi psi_type PsiTypeThe psi type. psi_type psi_type  PsiType  PsiType  PsiType The psi type. The psi type. receiver_rank uint32Specified the receiver rank. Receiver can get psi result. receiver_rank receiver_rank  uint32  uint32  uint32  uint32 Specified the receiver rank. Receiver can get psi result. Specified the receiver rank. Receiver can get psi result. broadcast_result boolWhether to broadcast psi result to all parties. broadcast_result broadcast_result  bool  bool  bool  bool Whether to broadcast psi result to all parties. Whether to broadcast psi result to all parties. curve_type CurveTypeOptional, specified elliptic curve cryptography used in psi when needed. curve_type curve_type  CurveType  CurveType  CurveType Optional, specified elliptic curve cryptography used in psi when needed. Optional, specified elliptic curve cryptography used in psi when needed. dppsi_params DpPsiParamsOptional，Params for dp-psi dppsi_params dppsi_params  DpPsiParams  DpPsiParams  DpPsiParams Optional，Params for dp-psi Optional，Params for dp-psi  "],[86," The input parameters of psi. FieldTypeDescriptionpath stringThe path of input csv file.select_fieldsrepeated stringThe select fields of input data.precheck boolWhether to check select fields duplicate. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description path stringThe path of input csv file.select_fieldsrepeated stringThe select fields of input data.precheck boolWhether to check select fields duplicate. path stringThe path of input csv file. path path  string  string  string  string The path of input csv file. The path of input csv file. select_fieldsrepeated stringThe select fields of input data. select_fields select_fields repeated string repeated string repeated string repeated string The select fields of input data. The select fields of input data. precheck boolWhether to check select fields duplicate. precheck precheck  bool  bool  bool  bool Whether to check select fields duplicate. Whether to check select fields duplicate.  "],[88," The output parameters of psi. FieldTypeDescriptionpath stringThe path of output csv file.need_sort boolWhether to sort output file by select fields. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description path stringThe path of output csv file.need_sort boolWhether to sort output file by select fields. path stringThe path of output csv file. path path  string  string  string  string The path of output csv file. The path of output csv file. need_sort boolWhether to sort output file by select fields. need_sort need_sort  bool  bool  bool  bool Whether to sort output file by select fields. Whether to sort output file by select fields.  "],[125," Then run:  "],[59,".proto TypeNotesC++ TypeJava TypePython Type doubledoubledoublefloat floatfloatfloatfloat int32Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.int32intint int64Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.int64longint/long uint32Uses variable-length encoding.uint32intint/long uint64Uses variable-length encoding.uint64longint/long sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.int32intint sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.int64longint/long fixed32Always four bytes. More efficient than uint32 if values are often greater than 2^28.uint32intint fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^56.uint64longint/long sfixed32Always four bytes.int32intint sfixed64Always eight bytes.int64longint/long boolboolbooleanboolean stringA string must always contain UTF-8 encoded or 7-bit ASCII text.stringStringstr/unicode bytesMay contain any arbitrary sequence of bytes.stringByteStringstr .proto TypeNotesC++ TypeJava TypePython Type .proto TypeNotesC++ TypeJava TypePython Type .proto Type .proto Type Notes Notes C++ Type C++ Type Java Type Java Type Python Type Python Type  doubledoubledoublefloat floatfloatfloatfloat int32Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.int32intint int64Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.int64longint/long uint32Uses variable-length encoding.uint32intint/long uint64Uses variable-length encoding.uint64longint/long sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.int32intint sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.int64longint/long fixed32Always four bytes. More efficient than uint32 if values are often greater than 2^28.uint32intint fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^56.uint64longint/long sfixed32Always four bytes.int32intint sfixed64Always eight bytes.int64longint/long boolboolbooleanboolean stringA string must always contain UTF-8 encoded or 7-bit ASCII text.stringStringstr/unicode bytesMay contain any arbitrary sequence of bytes.stringByteStringstr  doubledoubledoublefloat  double  double  "],[80,".proto TypeNotesC++ TypeJava TypePython Type doubledoubledoublefloat floatfloatfloatfloat int32Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.int32intint int64Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.int64longint/long uint32Uses variable-length encoding.uint32intint/long uint64Uses variable-length encoding.uint64longint/long sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.int32intint sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.int64longint/long fixed32Always four bytes. More efficient than uint32 if values are often greater than 2^28.uint32intint fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^56.uint64longint/long sfixed32Always four bytes.int32intint sfixed64Always eight bytes.int64longint/long boolboolbooleanboolean stringA string must always contain UTF-8 encoded or 7-bit ASCII text.stringStringstr/unicode bytesMay contain any arbitrary sequence of bytes.stringByteStringstr .proto TypeNotesC++ TypeJava TypePython Type .proto TypeNotesC++ TypeJava TypePython Type .proto Type .proto Type Notes Notes C++ Type C++ Type Java Type Java Type Python Type Python Type  doubledoubledoublefloat floatfloatfloatfloat int32Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.int32intint int64Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.int64longint/long uint32Uses variable-length encoding.uint32intint/long uint64Uses variable-length encoding.uint64longint/long sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.int32intint sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.int64longint/long fixed32Always four bytes. More efficient than uint32 if values are often greater than 2^28.uint32intint fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^56.uint64longint/long sfixed32Always four bytes.int32intint sfixed64Always eight bytes.int64longint/long boolboolbooleanboolean stringA string must always contain UTF-8 encoded or 7-bit ASCII text.stringStringstr/unicode bytesMay contain any arbitrary sequence of bytes.stringByteStringstr  doubledoubledoublefloat  double  double  "],[93,".proto TypeNotesC++ TypeJava TypePython Type doubledoubledoublefloat floatfloatfloatfloat int32Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.int32intint int64Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.int64longint/long uint32Uses variable-length encoding.uint32intint/long uint64Uses variable-length encoding.uint64longint/long sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.int32intint sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.int64longint/long fixed32Always four bytes. More efficient than uint32 if values are often greater than 2^28.uint32intint fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^56.uint64longint/long sfixed32Always four bytes.int32intint sfixed64Always eight bytes.int64longint/long boolboolbooleanboolean stringA string must always contain UTF-8 encoded or 7-bit ASCII text.stringStringstr/unicode bytesMay contain any arbitrary sequence of bytes.stringByteStringstr .proto TypeNotesC++ TypeJava TypePython Type .proto TypeNotesC++ TypeJava TypePython Type .proto Type .proto Type Notes Notes C++ Type C++ Type Java Type Java Type Python Type Python Type  doubledoubledoublefloat floatfloatfloatfloat int32Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.int32intint int64Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.int64longint/long uint32Uses variable-length encoding.uint32intint/long uint64Uses variable-length encoding.uint64longint/long sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.int32intint sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.int64longint/long fixed32Always four bytes. More efficient than uint32 if values are often greater than 2^28.uint32intint fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^56.uint64longint/long sfixed32Always four bytes.int32intint sfixed64Always eight bytes.int64longint/long boolboolbooleanboolean stringA string must always contain UTF-8 encoded or 7-bit ASCII text.stringStringstr/unicode bytesMay contain any arbitrary sequence of bytes.stringByteStringstr  doubledoubledoublefloat  double  double  "],[114,".proto TypeNotesC++ TypeJava TypePython Type doubledoubledoublefloat floatfloatfloatfloat int32Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.int32intint int64Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.int64longint/long uint32Uses variable-length encoding.uint32intint/long uint64Uses variable-length encoding.uint64longint/long sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.int32intint sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.int64longint/long fixed32Always four bytes. More efficient than uint32 if values are often greater than 2^28.uint32intint fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^56.uint64longint/long sfixed32Always four bytes.int32intint sfixed64Always eight bytes.int64longint/long boolboolbooleanboolean stringA string must always contain UTF-8 encoded or 7-bit ASCII text.stringStringstr/unicode bytesMay contain any arbitrary sequence of bytes.stringByteStringstr .proto TypeNotesC++ TypeJava TypePython Type .proto TypeNotesC++ TypeJava TypePython Type .proto Type .proto Type Notes Notes C++ Type C++ Type Java Type Java Type Python Type Python Type  doubledoubledoublefloat floatfloatfloatfloat int32Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.int32intint int64Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.int64longint/long uint32Uses variable-length encoding.uint32intint/long uint64Uses variable-length encoding.uint64longint/long sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.int32intint sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.int64longint/long fixed32Always four bytes. More efficient than uint32 if values are often greater than 2^28.uint32intint fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^56.uint64longint/long sfixed32Always four bytes.int32intint sfixed64Always eight bytes.int64longint/long boolboolbooleanboolean stringA string must always contain UTF-8 encoded or 7-bit ASCII text.stringStringstr/unicode bytesMay contain any arbitrary sequence of bytes.stringByteStringstr  doubledoubledoublefloat  double  double  "],[44,"[KKRT16] is semi-honest OT-based PSI, based on OT Extension, BaRK-OPRF and CuckooHash.\n[KKRT16] is the first PSI protocol requiring only one minute for the case of larger sets\n( 2242^{24}224 items each) of long strings (128 bits). [KKRT16] [KKRT16] 2242^{24}224 2242^{24}224 2242^{24} 2242^{24} 2242^{24} 224 224 2 24 2^{24} 224 224  224 2 24 24 24 24 24  24 24 24 We use 3-way stash-less CuckooHash proposed in [PSZ18]. [PSZ18]    \nSender and Receiver Agree on CuckooHash h1,h2,h3:{0,1}∗→[m]h_1,h_2,h_3: {\\{0,1\\}}^{*} \\rightarrow [m]h1​,h2​,h3​:{0,1}∗→[m]\nReceiver inserts each x into bin h1(x)h_1(x)h1​(x), h2(x)h_2(x)h2​(x) or h3(x)h_3(x)h3​(x)\nSender inserts each y into bin h1(y)h_1(y)h1​(y), h2(y)h_2(y)h2​(y) and h3(y)h_3(y)h3​(y)\nRun BaRK-OPRF, Receiver gets Fs,ki(x)F_{s,k_i}(x)Fs,ki​​(x),Sender gets Fs,ki(y)F_{s,k_i}(y)Fs,ki​​(y), for binibin_ibini​\nSender sends all {Fs,ki(y)}\\{F_{s,k_i}(y)\\}{Fs,ki​​(y)} values to Receiver\nReceiver compares two BaRK-OPRFs set and obtains the intersection.\n Sender and Receiver Agree on CuckooHash h1,h2,h3:{0,1}∗→[m]h_1,h_2,h_3: {\\{0,1\\}}^{*} \\rightarrow [m]h1​,h2​,h3​:{0,1}∗→[m] h1,h2,h3:{0,1}∗→[m]h_1,h_2,h_3: {\\{0,1\\}}^{*} \\rightarrow [m]h1​,h2​,h3​:{0,1}∗→[m] h1,h2,h3:{0,1}∗→[m]h_1,h_2,h_3: {\\{0,1\\}}^{*} \\rightarrow [m]h1​,h2​,h3​:{0,1}∗→[m] h1,h2,h3:{0,1}∗→[m]h_1,h_2,h_3: {\\{0,1\\}}^{*} \\rightarrow [m] h1,h2,h3:{0,1}∗→[m]h_1,h_2,h_3: {\\{0,1\\}}^{*} \\rightarrow [m] h1,h2,h3:{0,1}∗→[m]h_1,h_2,h_3: {\\{0,1\\}}^{*} \\rightarrow [m] h1,h2,h3:{0,1}∗→[m] h1 h 1 , h2 h 2 , h3 h 3 : {0,1}∗ {0,1} { 0 , 1 } ∗ → [ m ] h_1,h_2,h_3: {\\{0,1\\}}^{*} \\rightarrow [m] h1​,h2​,h3​:{0,1}∗→[m] h1​,h2​,h3​:  h1​ h 1​ 1​ 1​ 1 1  1 1 ​    ,  h2​ h 2​ 2​ 2​ 2 2  2 2 ​    ,  h3​ h 3​ 3​ 3​ 3 3  3 3 ​     :  {0,1}∗→  {0,1}∗ {0,1} { 0 ,  1 } ∗ ∗ ∗ ∗ ∗  ∗ ∗ ∗  →  [m]  [ m ] Receiver inserts each x into bin h1(x)h_1(x)h1​(x), h2(x)h_2(x)h2​(x) or h3(x)h_3(x)h3​(x) h1(x)h_1(x)h1​(x) h1(x)h_1(x)h1​(x) h1(x)h_1(x) h1(x)h_1(x) h1(x)h_1(x) h1(x) h1 h 1 ( x ) h_1(x) h1​(x) h1​(x)  h1​ h 1​ 1​ 1​ 1 1  1 1 ​    ( x ) h2(x)h_2(x)h2​(x) h2(x)h_2(x)h2​(x) h2(x)h_2(x) h2(x)h_2(x) h2(x)h_2(x) h2(x) h2 h 2 ( x ) h_2(x) h2​(x) h2​(x)  h2​ h 2​ 2​ 2​ 2 2  2 2 ​    ( x ) h3(x)h_3(x)h3​(x) h3(x)h_3(x)h3​(x) h3(x)h_3(x) h3(x)h_3(x) h3(x)h_3(x) h3(x) h3 h 3 ( x ) h_3(x) h3​(x) h3​(x)  h3​ h 3​ 3​ 3​ 3 3  3 3 ​    ( x ) Sender inserts each y into bin h1(y)h_1(y)h1​(y), h2(y)h_2(y)h2​(y) and h3(y)h_3(y)h3​(y) h1(y)h_1(y)h1​(y) h1(y)h_1(y)h1​(y) h1(y)h_1(y) h1(y)h_1(y) h1(y)h_1(y) h1(y) h1 h 1 ( y ) h_1(y) h1​(y) h1​(y)  h1​ h 1​ 1​ 1​ 1 1  1 1 ​    ( y ) h2(y)h_2(y)h2​(y) h2(y)h_2(y)h2​(y) h2(y)h_2(y) h2(y)h_2(y) h2(y)h_2(y) h2(y) h2 h 2 ( y ) h_2(y) h2​(y) h2​(y)  h2​ h 2​ 2​ 2​ 2 2  2 2 ​    ( y ) h3(y)h_3(y)h3​(y) h3(y)h_3(y)h3​(y) h3(y)h_3(y) h3(y)h_3(y) h3(y)h_3(y) h3(y) h3 h 3 ( y ) h_3(y) h3​(y) h3​(y)  h3​ h 3​ 3​ 3​ 3 3  3 3 ​    ( y ) Run BaRK-OPRF, Receiver gets Fs,ki(x)F_{s,k_i}(x)Fs,ki​​(x),Sender gets Fs,ki(y)F_{s,k_i}(y)Fs,ki​​(y), for binibin_ibini​ Fs,ki(x)F_{s,k_i}(x)Fs,ki​​(x) Fs,ki(x)F_{s,k_i}(x)Fs,ki​​(x) Fs,ki(x)F_{s,k_i}(x) Fs,ki(x)F_{s,k_i}(x) Fs,ki(x)F_{s,k_i}(x) Fs,ki(x) Fs,ki F s,ki s , ki k i ( x ) F_{s,k_i}(x) Fs,ki​​(x) Fs,ki​​(x)  Fs,ki​​ F s,ki​​ s,ki​​ s,ki​​ s,ki​ s,ki​  s,ki​ s,ki​ s , ki​ k i​ i​ i​ i i  i i ​    ​    ( x ) Fs,ki(y)F_{s,k_i}(y)Fs,ki​​(y) Fs,ki(y)F_{s,k_i}(y)Fs,ki​​(y) Fs,ki(y)F_{s,k_i}(y) Fs,ki(y)F_{s,k_i}(y) Fs,ki(y)F_{s,k_i}(y) Fs,ki(y) Fs,ki F s,ki s , ki k i ( y ) F_{s,k_i}(y) Fs,ki​​(y) Fs,ki​​(y)  Fs,ki​​ F s,ki​​ s,ki​​ s,ki​​ s,ki​ s,ki​  s,ki​ s,ki​ s , ki​ k i​ i​ i​ i i  i i ​    ​    ( y ) binibin_ibini​ binibin_ibini​ binibin_i binibin_i binibin_i bini b i ni n i bin_i bini​ bini​  bi ni​ n i​ i​ i​ i i  i i ​    Sender sends all {Fs,ki(y)}\\{F_{s,k_i}(y)\\}{Fs,ki​​(y)} values to Receiver {Fs,ki(y)}\\{F_{s,k_i}(y)\\}{Fs,ki​​(y)} {Fs,ki(y)}\\{F_{s,k_i}(y)\\}{Fs,ki​​(y)} {Fs,ki(y)}\\{F_{s,k_i}(y)\\} {Fs,ki(y)}\\{F_{s,k_i}(y)\\} {Fs,ki(y)}\\{F_{s,k_i}(y)\\} {Fs,ki(y)} { Fs,ki F s,ki s , ki k i ( y ) } \\{F_{s,k_i}(y)\\} {Fs,ki​​(y)} {Fs,ki​​(y)}  { Fs,ki​​ F s,ki​​ s,ki​​ s,ki​​ s,ki​ s,ki​  s,ki​ s,ki​ s , ki​ k i​ i​ i​ i i  i i ​    ​    ( y )} Receiver compares two BaRK-OPRFs set and obtains the intersection. "],[47,"[RA18] section 3 introduces Basic Unbalanced PSI(Ecdh-OPRF based) protocol proposed in [BBCD+11] that relaxes\nthe security of the [JL10] to be secure against semi-honest adversaries. The protocol has two phases, the preprocessing phase and the online phase. The\nauthors introduced many optimizations to push as much computation and communication cost to\nthe preprocessing phase as possible. [RA18] [BBCD+11] [JL10] An Oblivious Pseudorandom Function (OPRF) is a two-party protocol between client and server for computing the\noutput of a Pseudorandom Function (PRF). [draft-irtf-cfrg-voprf-10] specifies OPRF, VOPRF, and POPRF protocols\nbuilt upon prime-order groups. [draft-irtf-cfrg-voprf-10]    \nOffline Phase\n\nFor each element yiy_iyi​ in its set, Bob applies PRF using\nprivate key β\\betaβ, i.e. computing H2(yi,H1(yi)β)H_2(y_i,{H_1(y_i)}^\\beta)H2​(yi​,H1​(yi​)β) .\nBob sends {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2}{{H2​(yi​,H1​(yi​)β)}}i=1n2​​ to Alice in shuffled order.\n\n\nOnline Phase\n\nFor each element xix_ixi​ in its set, Alice applies the hash function and then exponentiates\nit using its blind key rir_iri​, thus computing H1(xi)ri{H_1(x_i)}^{r_i}H1​(xi​)ri​. Alice sends\n{{H1(xi)}ri}i=1n1\\{\\{H_1(x_i)\\}^{r_i}\\}_{i=1}^{n_1}{{H1​(xi​)}ri​}i=1n1​​ to Bob.\nFor each element H1(xi)riH_1(x_i)^{r_i}H1​(xi​)ri​ received from Alice in the previous step, Bob exponentiates\nit using its key β\\betaβ, computing H1(xi)riβ{H_1(x_i)}^{r_i\\beta}H1​(xi​)ri​β.\nBob sends {{H1(xi)}{ri}β}i=1n1{\\{\\{H_1(x_i)\\}^{\\{r_i\\}\\beta}\\}}_{i=1}^{n_1}{{H1​(xi​)}{ri​}β}i=1n1​​ to Alice.\nAlice receives {{H1(xi)}riβ}i=1n1{\\{\\{H_1(x_i)\\}^{r_i\\beta}\\}}_{i=1}^{n_1}{{H1​(xi​)}ri​β}i=1n1​​ from Bob, and unblinds it using rir_iri​,\ngets {{{H1(xi)}β}}i=1n1\\{\\{\\{H_1(x_i)\\}^\\beta\\}\\}_{i=1}^{n_1}{{{H1​(xi​)}β}}i=1n1​​, computes OPRF {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1}{{H2​(xi​,H1​(xi​)β)}}i=1n1​​.\nAlice compares two sets {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1}{{H2​(xi​,H1​(xi​)β)}}i=1n1​​\nand {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2}{{H2​(yi​,H1​(yi​)β)}}i=1n2​​ and gets intersection.\n\n\n Offline Phase\n\nFor each element yiy_iyi​ in its set, Bob applies PRF using\nprivate key β\\betaβ, i.e. computing H2(yi,H1(yi)β)H_2(y_i,{H_1(y_i)}^\\beta)H2​(yi​,H1​(yi​)β) .\nBob sends {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2}{{H2​(yi​,H1​(yi​)β)}}i=1n2​​ to Alice in shuffled order.\n\n \nFor each element yiy_iyi​ in its set, Bob applies PRF using\nprivate key β\\betaβ, i.e. computing H2(yi,H1(yi)β)H_2(y_i,{H_1(y_i)}^\\beta)H2​(yi​,H1​(yi​)β) .\nBob sends {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2}{{H2​(yi​,H1​(yi​)β)}}i=1n2​​ to Alice in shuffled order.\n For each element yiy_iyi​ in its set, Bob applies PRF using\nprivate key β\\betaβ, i.e. computing H2(yi,H1(yi)β)H_2(y_i,{H_1(y_i)}^\\beta)H2​(yi​,H1​(yi​)β) . yiy_iyi​ yiy_iyi​ yiy_i yiy_i yiy_i yi yi y i y_i yi​ yi​  yi​ y i​ i​ i​ i i  i i ​    β\\betaβ β\\betaβ β\\beta β\\beta β\\beta β β \\beta β β  β H2(yi,H1(yi)β)H_2(y_i,{H_1(y_i)}^\\beta)H2​(yi​,H1​(yi​)β) H2(yi,H1(yi)β)H_2(y_i,{H_1(y_i)}^\\beta)H2​(yi​,H1​(yi​)β) H2(yi,H1(yi)β)H_2(y_i,{H_1(y_i)}^\\beta) H2(yi,H1(yi)β)H_2(y_i,{H_1(y_i)}^\\beta) H2(yi,H1(yi)β)H_2(y_i,{H_1(y_i)}^\\beta) H2(yi,H1(yi)β) H2 H 2 ( yi y i , H1(yi)β H1(yi) H1 H 1 ( yi y i ) β ) H_2(y_i,{H_1(y_i)}^\\beta) H2​(yi​,H1​(yi​)β) H2​(yi​,H1​(yi​)β)  H2​ H 2​ 2​ 2​ 2 2  2 2 ​    ( yi​ y i​ i​ i​ i i  i i ​    ,  H1​(yi​)β H1​(yi​) H1​ H 1​ 1​ 1​ 1 1  1 1 ​    ( yi​ y i​ i​ i​ i i  i i ​    ) β β β β β  β β ) Bob sends {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2}{{H2​(yi​,H1​(yi​)β)}}i=1n2​​ to Alice in shuffled order. {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2}{{H2​(yi​,H1​(yi​)β)}}i=1n2​​ {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2}{{H2​(yi​,H1​(yi​)β)}}i=1n2​​ {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2} {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2} {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2} {{H2(yi,H1(yi)β)}}i=1n2 { { H2 H 2 ( yi y i , H1(yi)β H1(yi) H1 H 1 ( yi y i ) β ) } }i=1n2 } i=1 i = 1 n2 n 2 \\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2} {{H2​(yi​,H1​(yi​)β)}}i=1n2​​ {{H2​(yi​,H1​(yi​)β)}}i=1n2​​  {{ H2​ H 2​ 2​ 2​ 2 2  2 2 ​    ( yi​ y i​ i​ i​ i i  i i ​    ,  H1​(yi​)β H1​(yi​) H1​ H 1​ 1​ 1​ 1 1  1 1 ​    ( yi​ y i​ i​ i​ i i  i i ​    ) β β β β β  β β )} }i=1n2​​ } i=1n2​​ i=1n2​​ i=1n2​​ i=1n2​ i=1  i=1 i=1 i = 1 n2​  n2​ n2​ n2​ n 2​ 2​ 2​ 2 2  2 2 ​    ​    Online Phase\n\nFor each element xix_ixi​ in its set, Alice applies the hash function and then exponentiates\nit using its blind key rir_iri​, thus computing H1(xi)ri{H_1(x_i)}^{r_i}H1​(xi​)ri​. Alice sends\n{{H1(xi)}ri}i=1n1\\{\\{H_1(x_i)\\}^{r_i}\\}_{i=1}^{n_1}{{H1​(xi​)}ri​}i=1n1​​ to Bob.\nFor each element H1(xi)riH_1(x_i)^{r_i}H1​(xi​)ri​ received from Alice in the previous step, Bob exponentiates\nit using its key β\\betaβ, computing H1(xi)riβ{H_1(x_i)}^{r_i\\beta}H1​(xi​)ri​β.\nBob sends {{H1(xi)}{ri}β}i=1n1{\\{\\{H_1(x_i)\\}^{\\{r_i\\}\\beta}\\}}_{i=1}^{n_1}{{H1​(xi​)}{ri​}β}i=1n1​​ to Alice.\nAlice receives {{H1(xi)}riβ}i=1n1{\\{\\{H_1(x_i)\\}^{r_i\\beta}\\}}_{i=1}^{n_1}{{H1​(xi​)}ri​β}i=1n1​​ from Bob, and unblinds it using rir_iri​,\ngets {{{H1(xi)}β}}i=1n1\\{\\{\\{H_1(x_i)\\}^\\beta\\}\\}_{i=1}^{n_1}{{{H1​(xi​)}β}}i=1n1​​, computes OPRF {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1}{{H2​(xi​,H1​(xi​)β)}}i=1n1​​.\nAlice compares two sets {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1}{{H2​(xi​,H1​(xi​)β)}}i=1n1​​\nand {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2}{{H2​(yi​,H1​(yi​)β)}}i=1n2​​ and gets intersection.\n\n \nFor each element xix_ixi​ in its set, Alice applies the hash function and then exponentiates\nit using its blind key rir_iri​, thus computing H1(xi)ri{H_1(x_i)}^{r_i}H1​(xi​)ri​. Alice sends\n{{H1(xi)}ri}i=1n1\\{\\{H_1(x_i)\\}^{r_i}\\}_{i=1}^{n_1}{{H1​(xi​)}ri​}i=1n1​​ to Bob.\nFor each element H1(xi)riH_1(x_i)^{r_i}H1​(xi​)ri​ received from Alice in the previous step, Bob exponentiates\nit using its key β\\betaβ, computing H1(xi)riβ{H_1(x_i)}^{r_i\\beta}H1​(xi​)ri​β.\nBob sends {{H1(xi)}{ri}β}i=1n1{\\{\\{H_1(x_i)\\}^{\\{r_i\\}\\beta}\\}}_{i=1}^{n_1}{{H1​(xi​)}{ri​}β}i=1n1​​ to Alice.\nAlice receives {{H1(xi)}riβ}i=1n1{\\{\\{H_1(x_i)\\}^{r_i\\beta}\\}}_{i=1}^{n_1}{{H1​(xi​)}ri​β}i=1n1​​ from Bob, and unblinds it using rir_iri​,\ngets {{{H1(xi)}β}}i=1n1\\{\\{\\{H_1(x_i)\\}^\\beta\\}\\}_{i=1}^{n_1}{{{H1​(xi​)}β}}i=1n1​​, computes OPRF {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1}{{H2​(xi​,H1​(xi​)β)}}i=1n1​​.\nAlice compares two sets {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1}{{H2​(xi​,H1​(xi​)β)}}i=1n1​​\nand {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2}{{H2​(yi​,H1​(yi​)β)}}i=1n2​​ and gets intersection.\n For each element xix_ixi​ in its set, Alice applies the hash function and then exponentiates\nit using its blind key rir_iri​, thus computing H1(xi)ri{H_1(x_i)}^{r_i}H1​(xi​)ri​. Alice sends\n{{H1(xi)}ri}i=1n1\\{\\{H_1(x_i)\\}^{r_i}\\}_{i=1}^{n_1}{{H1​(xi​)}ri​}i=1n1​​ to Bob. xix_ixi​ xix_ixi​ xix_i xix_i xix_i xi xi x i x_i xi​ xi​  xi​ x i​ i​ i​ i i  i i ​    rir_iri​ rir_iri​ rir_i rir_i rir_i ri ri r i r_i ri​ ri​  ri​ r i​ i​ i​ i i  i i ​    H1(xi)ri{H_1(x_i)}^{r_i}H1​(xi​)ri​ H1(xi)ri{H_1(x_i)}^{r_i}H1​(xi​)ri​ H1(xi)ri{H_1(x_i)}^{r_i} H1(xi)ri{H_1(x_i)}^{r_i} H1(xi)ri{H_1(x_i)}^{r_i} H1(xi)ri H1(xi)ri H1(xi) H1 H 1 ( xi x i ) ri r i {H_1(x_i)}^{r_i} H1​(xi​)ri​ H1​(xi​)ri​  H1​(xi​)ri​ H1​(xi​) H1​ H 1​ 1​ 1​ 1 1  1 1 ​    ( xi​ x i​ i​ i​ i i  i i ​    ) ri​ ri​ ri​ ri​ ri​  ri​ ri​ ri​ r i​ i​ i​ i i  i i ​    {{H1(xi)}ri}i=1n1\\{\\{H_1(x_i)\\}^{r_i}\\}_{i=1}^{n_1}{{H1​(xi​)}ri​}i=1n1​​ {{H1(xi)}ri}i=1n1\\{\\{H_1(x_i)\\}^{r_i}\\}_{i=1}^{n_1}{{H1​(xi​)}ri​}i=1n1​​ {{H1(xi)}ri}i=1n1\\{\\{H_1(x_i)\\}^{r_i}\\}_{i=1}^{n_1} {{H1(xi)}ri}i=1n1\\{\\{H_1(x_i)\\}^{r_i}\\}_{i=1}^{n_1} {{H1(xi)}ri}i=1n1\\{\\{H_1(x_i)\\}^{r_i}\\}_{i=1}^{n_1} {{H1(xi)}ri}i=1n1 { { H1 H 1 ( xi x i ) }ri } ri r i }i=1n1 } i=1 i = 1 n1 n 1 \\{\\{H_1(x_i)\\}^{r_i}\\}_{i=1}^{n_1} {{H1​(xi​)}ri​}i=1n1​​ {{H1​(xi​)}ri​}i=1n1​​  {{ H1​ H 1​ 1​ 1​ 1 1  1 1 ​    ( xi​ x i​ i​ i​ i i  i i ​    ) }ri​ } ri​ ri​ ri​ ri​ ri​  ri​ ri​ ri​ r i​ i​ i​ i i  i i ​    }i=1n1​​ } i=1n1​​ i=1n1​​ i=1n1​​ i=1n1​ i=1  i=1 i=1 i = 1 n1​  n1​ n1​ n1​ n 1​ 1​ 1​ 1 1  1 1 ​    ​    For each element H1(xi)riH_1(x_i)^{r_i}H1​(xi​)ri​ received from Alice in the previous step, Bob exponentiates\nit using its key β\\betaβ, computing H1(xi)riβ{H_1(x_i)}^{r_i\\beta}H1​(xi​)ri​β.\nBob sends {{H1(xi)}{ri}β}i=1n1{\\{\\{H_1(x_i)\\}^{\\{r_i\\}\\beta}\\}}_{i=1}^{n_1}{{H1​(xi​)}{ri​}β}i=1n1​​ to Alice. H1(xi)riH_1(x_i)^{r_i}H1​(xi​)ri​ H1(xi)riH_1(x_i)^{r_i}H1​(xi​)ri​ H1(xi)riH_1(x_i)^{r_i} H1(xi)riH_1(x_i)^{r_i} H1(xi)riH_1(x_i)^{r_i} H1(xi)ri H1 H 1 ( xi x i )ri ) ri r i H_1(x_i)^{r_i} H1​(xi​)ri​ H1​(xi​)ri​  H1​ H 1​ 1​ 1​ 1 1  1 1 ​    ( xi​ x i​ i​ i​ i i  i i ​    )ri​ ) ri​ ri​ ri​ ri​ ri​  ri​ ri​ ri​ r i​ i​ i​ i i  i i ​    β\\betaβ β\\betaβ β\\beta β\\beta β\\beta β β \\beta β β  β H1(xi)riβ{H_1(x_i)}^{r_i\\beta}H1​(xi​)ri​β H1(xi)riβ{H_1(x_i)}^{r_i\\beta}H1​(xi​)ri​β H1(xi)riβ{H_1(x_i)}^{r_i\\beta} H1(xi)riβ{H_1(x_i)}^{r_i\\beta} H1(xi)riβ{H_1(x_i)}^{r_i\\beta} H1(xi)riβ H1(xi)riβ H1(xi) H1 H 1 ( xi x i ) riβ ri r i β {H_1(x_i)}^{r_i\\beta} H1​(xi​)ri​β H1​(xi​)ri​β  H1​(xi​)ri​β H1​(xi​) H1​ H 1​ 1​ 1​ 1 1  1 1 ​    ( xi​ x i​ i​ i​ i i  i i ​    ) ri​β ri​β ri​β ri​β ri​β  ri​β ri​β ri​ r i​ i​ i​ i i  i i ​    β {{H1(xi)}{ri}β}i=1n1{\\{\\{H_1(x_i)\\}^{\\{r_i\\}\\beta}\\}}_{i=1}^{n_1}{{H1​(xi​)}{ri​}β}i=1n1​​ {{H1(xi)}{ri}β}i=1n1{\\{\\{H_1(x_i)\\}^{\\{r_i\\}\\beta}\\}}_{i=1}^{n_1}{{H1​(xi​)}{ri​}β}i=1n1​​ {{H1(xi)}{ri}β}i=1n1{\\{\\{H_1(x_i)\\}^{\\{r_i\\}\\beta}\\}}_{i=1}^{n_1} {{H1(xi)}{ri}β}i=1n1{\\{\\{H_1(x_i)\\}^{\\{r_i\\}\\beta}\\}}_{i=1}^{n_1} {{H1(xi)}{ri}β}i=1n1{\\{\\{H_1(x_i)\\}^{\\{r_i\\}\\beta}\\}}_{i=1}^{n_1} {{H1(xi)}{ri}β}i=1n1 {{H1(xi)}{ri}β}i=1n1 {{H1(xi)}{ri}β} { { H1 H 1 ( xi x i ) }{ri}β } {ri}β { ri r i } β } i=1 i = 1 n1 n 1 {\\{\\{H_1(x_i)\\}^{\\{r_i\\}\\beta}\\}}_{i=1}^{n_1} {{H1​(xi​)}{ri​}β}i=1n1​​ {{H1​(xi​)}{ri​}β}i=1n1​​  {{H1​(xi​)}{ri​}β}i=1n1​​ {{H1​(xi​)}{ri​}β} {{ H1​ H 1​ 1​ 1​ 1 1  1 1 ​    ( xi​ x i​ i​ i​ i i  i i ​    ) }{ri​}β } {ri​}β {ri​}β {ri​}β {ri​}β {ri​}β  {ri​}β {ri​}β { ri​ r i​ i​ i​ i i  i i ​    } β } i=1n1​​ i=1n1​​ i=1n1​​ i=1n1​ i=1  i=1 i=1 i = 1 n1​  n1​ n1​ n1​ n 1​ 1​ 1​ 1 1  1 1 ​    ​    Alice receives {{H1(xi)}riβ}i=1n1{\\{\\{H_1(x_i)\\}^{r_i\\beta}\\}}_{i=1}^{n_1}{{H1​(xi​)}ri​β}i=1n1​​ from Bob, and unblinds it using rir_iri​,\ngets {{{H1(xi)}β}}i=1n1\\{\\{\\{H_1(x_i)\\}^\\beta\\}\\}_{i=1}^{n_1}{{{H1​(xi​)}β}}i=1n1​​, computes OPRF {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1}{{H2​(xi​,H1​(xi​)β)}}i=1n1​​. {{H1(xi)}riβ}i=1n1{\\{\\{H_1(x_i)\\}^{r_i\\beta}\\}}_{i=1}^{n_1}{{H1​(xi​)}ri​β}i=1n1​​ {{H1(xi)}riβ}i=1n1{\\{\\{H_1(x_i)\\}^{r_i\\beta}\\}}_{i=1}^{n_1}{{H1​(xi​)}ri​β}i=1n1​​ {{H1(xi)}riβ}i=1n1{\\{\\{H_1(x_i)\\}^{r_i\\beta}\\}}_{i=1}^{n_1} {{H1(xi)}riβ}i=1n1{\\{\\{H_1(x_i)\\}^{r_i\\beta}\\}}_{i=1}^{n_1} {{H1(xi)}riβ}i=1n1{\\{\\{H_1(x_i)\\}^{r_i\\beta}\\}}_{i=1}^{n_1} {{H1(xi)}riβ}i=1n1 {{H1(xi)}riβ}i=1n1 {{H1(xi)}riβ} { { H1 H 1 ( xi x i ) }riβ } riβ ri r i β } i=1 i = 1 n1 n 1 {\\{\\{H_1(x_i)\\}^{r_i\\beta}\\}}_{i=1}^{n_1} {{H1​(xi​)}ri​β}i=1n1​​ {{H1​(xi​)}ri​β}i=1n1​​  {{H1​(xi​)}ri​β}i=1n1​​ {{H1​(xi​)}ri​β} {{ H1​ H 1​ 1​ 1​ 1 1  1 1 ​    ( xi​ x i​ i​ i​ i i  i i ​    ) }ri​β } ri​β ri​β ri​β ri​β ri​β  ri​β ri​β ri​ r i​ i​ i​ i i  i i ​    β } i=1n1​​ i=1n1​​ i=1n1​​ i=1n1​ i=1  i=1 i=1 i = 1 n1​  n1​ n1​ n1​ n 1​ 1​ 1​ 1 1  1 1 ​    ​    rir_iri​ rir_iri​ rir_i rir_i rir_i ri ri r i r_i ri​ ri​  ri​ r i​ i​ i​ i i  i i ​    {{{H1(xi)}β}}i=1n1\\{\\{\\{H_1(x_i)\\}^\\beta\\}\\}_{i=1}^{n_1}{{{H1​(xi​)}β}}i=1n1​​ {{{H1(xi)}β}}i=1n1\\{\\{\\{H_1(x_i)\\}^\\beta\\}\\}_{i=1}^{n_1}{{{H1​(xi​)}β}}i=1n1​​ {{{H1(xi)}β}}i=1n1\\{\\{\\{H_1(x_i)\\}^\\beta\\}\\}_{i=1}^{n_1} {{{H1(xi)}β}}i=1n1\\{\\{\\{H_1(x_i)\\}^\\beta\\}\\}_{i=1}^{n_1} {{{H1(xi)}β}}i=1n1\\{\\{\\{H_1(x_i)\\}^\\beta\\}\\}_{i=1}^{n_1} {{{H1(xi)}β}}i=1n1 { { { H1 H 1 ( xi x i ) }β } β } }i=1n1 } i=1 i = 1 n1 n 1 \\{\\{\\{H_1(x_i)\\}^\\beta\\}\\}_{i=1}^{n_1} {{{H1​(xi​)}β}}i=1n1​​ {{{H1​(xi​)}β}}i=1n1​​  {{{ H1​ H 1​ 1​ 1​ 1 1  1 1 ​    ( xi​ x i​ i​ i​ i i  i i ​    ) }β } β β β β β  β β } }i=1n1​​ } i=1n1​​ i=1n1​​ i=1n1​​ i=1n1​ i=1  i=1 i=1 i = 1 n1​  n1​ n1​ n1​ n 1​ 1​ 1​ 1 1  1 1 ​    ​    {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1}{{H2​(xi​,H1​(xi​)β)}}i=1n1​​ {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1}{{H2​(xi​,H1​(xi​)β)}}i=1n1​​ {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1} {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1} {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1} {{H2(xi,H1(xi)β)}}i=1n1 { { H2 H 2 ( xi x i , H1(xi)β H1(xi) H1 H 1 ( xi x i ) β ) } }i=1n1 } i=1 i = 1 n1 n 1 \\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1} {{H2​(xi​,H1​(xi​)β)}}i=1n1​​ {{H2​(xi​,H1​(xi​)β)}}i=1n1​​  {{ H2​ H 2​ 2​ 2​ 2 2  2 2 ​    ( xi​ x i​ i​ i​ i i  i i ​    ,  H1​(xi​)β H1​(xi​) H1​ H 1​ 1​ 1​ 1 1  1 1 ​    ( xi​ x i​ i​ i​ i i  i i ​    ) β β β β β  β β )} }i=1n1​​ } i=1n1​​ i=1n1​​ i=1n1​​ i=1n1​ i=1  i=1 i=1 i = 1 n1​  n1​ n1​ n1​ n 1​ 1​ 1​ 1 1  1 1 ​    ​    Alice compares two sets {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1}{{H2​(xi​,H1​(xi​)β)}}i=1n1​​\nand {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2}{{H2​(yi​,H1​(yi​)β)}}i=1n2​​ and gets intersection. {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1}{{H2​(xi​,H1​(xi​)β)}}i=1n1​​ {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1}{{H2​(xi​,H1​(xi​)β)}}i=1n1​​ {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1} {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1} {{H2(xi,H1(xi)β)}}i=1n1\\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1} {{H2(xi,H1(xi)β)}}i=1n1 { { H2 H 2 ( xi x i , H1(xi)β H1(xi) H1 H 1 ( xi x i ) β ) } }i=1n1 } i=1 i = 1 n1 n 1 \\{\\{H_2(x_i,{H_1(x_i)}^\\beta)\\}\\}_{i=1}^{n_1} {{H2​(xi​,H1​(xi​)β)}}i=1n1​​ {{H2​(xi​,H1​(xi​)β)}}i=1n1​​  {{ H2​ H 2​ 2​ 2​ 2 2  2 2 ​    ( xi​ x i​ i​ i​ i i  i i ​    ,  H1​(xi​)β H1​(xi​) H1​ H 1​ 1​ 1​ 1 1  1 1 ​    ( xi​ x i​ i​ i​ i i  i i ​    ) β β β β β  β β )} }i=1n1​​ } i=1n1​​ i=1n1​​ i=1n1​​ i=1n1​ i=1  i=1 i=1 i = 1 n1​  n1​ n1​ n1​ n 1​ 1​ 1​ 1 1  1 1 ​    ​    {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2}{{H2​(yi​,H1​(yi​)β)}}i=1n2​​ {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2}{{H2​(yi​,H1​(yi​)β)}}i=1n2​​ {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2} {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2} {{H2(yi,H1(yi)β)}}i=1n2\\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2} {{H2(yi,H1(yi)β)}}i=1n2 { { H2 H 2 ( yi y i , H1(yi)β H1(yi) H1 H 1 ( yi y i ) β ) } }i=1n2 } i=1 i = 1 n2 n 2 \\{\\{H_2(y_i,{H_1(y_i)}^\\beta)\\}\\}_{i=1}^{n_2} {{H2​(yi​,H1​(yi​)β)}}i=1n2​​ {{H2​(yi​,H1​(yi​)β)}}i=1n2​​  {{ H2​ H 2​ 2​ 2​ 2 2  2 2 ​    ( yi​ y i​ i​ i​ i i  i i ​    ,  H1​(yi​)β H1​(yi​) H1​ H 1​ 1​ 1​ 1 1  1 1 ​    ( yi​ y i​ i​ i​ i i  i i ​    ) β β β β β  β β )} }i=1n2​​ } i=1n2​​ i=1n2​​ i=1n2​​ i=1n2​ i=1  i=1 i=1 i = 1 n2​  n2​ n2​ n2​ n 2​ 2​ 2​ 2 2  2 2 ​    ​    "],[49,"[RS21] introduced an efficient PSI protocol based on OKVS and VOLE. [RR22] present significant improvements\nto the OKVS data structure along with new techniquesfor further reducing the communication overhead of [RS]21. [RS21] [RR22] Oblivous Key-Value Stores(OKVS) consists of algorithms Encode and Decode. Encode takes a list of key-value (k,v)\npairs as input and returns an abstract data structure S. Decode takes such a data structure S and a key k’ as\ninput, and gives some output v’. Pseudorandom correlation generators(PCGs) allow for the efficient generation of\noblivious transfer (OT) and vector oblivious linear evaluations (VOLE)\nwith sublinear communication and concretely good computational overhead.\nPCG makes use of a so-called LPN-friendly errorcorrecting code.\nsecretflow/YACL  provides VOLE code implementation.\nLPN-friendly coeds now support [CRR21] silver codes(LDPC) and [BCGI+22] Expand-Accumulate Codes.\nSilver is Most efficient, but not recommended to use due to its security flaw. secretflow/YACL [CRR21] [BCGI+22] Semi-honest Protocol:    \nThe Receiver samples r←{0,1}κr \\leftarrow \\{0,1\\}^\\kappar←{0,1}κ and computes\nP⃗:=Encode(L,r)\\vec{P} :=  \\mathrm{Encode} (L,r)P:=Encode(L,r) where\nL:={(Hn∗m(x,r),H(x))∣x∈X}L := \\{(H^{n*m}(x,r),H(x))|x \\in X\\}L:={(Hn∗m(x,r),H(x))∣x∈X}.\nSender and Receiver Run (sub)VOLE protocol, Sender gets Δ\\DeltaΔ and\nB⃗\\vec{B}B, Receiver gets A⃗\\vec{A}A and C⃗\\vec{C}C, such that:\nC⃗=Δ∗A′⃗+B⃗\\vec{C}=\\Delta *\\vec{A'}+\\vec{B}C=Δ∗A′+B.\nReceiver sends r,A⃗=A′⃗+P⃗r, \\vec{A}=\\vec{A'}+\\vec{P}r,A=A′+P to Sender. Sender defines\nK⃗=B⃗+Δ⋅A⃗\\vec{K}=\\vec{B}+\\Delta \\cdot \\vec{A}K=B+Δ⋅A.\nSender sends Y′=Hn∗m(Y⃗,r)⋅K⃗−Δ⋅H(Y⃗)Y'=H^{n*m}(\\vec{Y},r)\\cdot \\vec{K}-\\Delta \\cdot H(\\vec{Y})Y′=Hn∗m(Y,r)⋅K−Δ⋅H(Y)\nto the Receiver.\nReceiver compares X′=Hn∗m(X⃗,r)⋅C⃗X'=H^{n*m}(\\vec{X},r)\\cdot \\vec{C}X′=Hn∗m(X,r)⋅C and Y′Y'Y′, outputs\nintersection result X∩YX \\cap YX∩Y.\n The Receiver samples r←{0,1}κr \\leftarrow \\{0,1\\}^\\kappar←{0,1}κ and computes\nP⃗:=Encode(L,r)\\vec{P} :=  \\mathrm{Encode} (L,r)P:=Encode(L,r) where\nL:={(Hn∗m(x,r),H(x))∣x∈X}L := \\{(H^{n*m}(x,r),H(x))|x \\in X\\}L:={(Hn∗m(x,r),H(x))∣x∈X}. r←{0,1}κr \\leftarrow \\{0,1\\}^\\kappar←{0,1}κ r←{0,1}κr \\leftarrow \\{0,1\\}^\\kappar←{0,1}κ r←{0,1}κr \\leftarrow \\{0,1\\}^\\kappa r←{0,1}κr \\leftarrow \\{0,1\\}^\\kappa r←{0,1}κr \\leftarrow \\{0,1\\}^\\kappa r←{0,1}κ r ← { 0 , 1 }κ } κ r \\leftarrow \\{0,1\\}^\\kappa r←{0,1}κ r←  r  ←  {0,1}κ  { 0 ,  1 }κ } κ κ κ κ κ  κ κ P⃗:=Encode(L,r)\\vec{P} :=  \\mathrm{Encode} (L,r)P:=Encode(L,r) P⃗:=Encode(L,r)\\vec{P} :=  \\mathrm{Encode} (L,r)P:=Encode(L,r) P⃗:=Encode(L,r)\\vec{P} :=  \\mathrm{Encode} (L,r) P⃗:=Encode(L,r)\\vec{P} :=  \\mathrm{Encode} (L,r) P⃗:=Encode(L,r)\\vec{P} :=  \\mathrm{Encode} (L,r) P⃗:=Encode(L,r) P⃗ P ⃗ : = Encode E n c o d e ( L , r ) \\vec{P} :=  \\mathrm{Encode} (L,r) P:=Encode(L,r) P:=  P P P P P  P        :=  Encode(L,r)  Encode Encode ( L ,  r ) L:={(Hn∗m(x,r),H(x))∣x∈X}L := \\{(H^{n*m}(x,r),H(x))|x \\in X\\}L:={(Hn∗m(x,r),H(x))∣x∈X} L:={(Hn∗m(x,r),H(x))∣x∈X}L := \\{(H^{n*m}(x,r),H(x))|x \\in X\\}L:={(Hn∗m(x,r),H(x))∣x∈X} L:={(Hn∗m(x,r),H(x))∣x∈X}L := \\{(H^{n*m}(x,r),H(x))|x \\in X\\} L:={(Hn∗m(x,r),H(x))∣x∈X}L := \\{(H^{n*m}(x,r),H(x))|x \\in X\\} L:={(Hn∗m(x,r),H(x))∣x∈X}L := \\{(H^{n*m}(x,r),H(x))|x \\in X\\} L:={(Hn∗m(x,r),H(x))∣x∈X} L : = { ( Hn∗m H n∗m n ∗ m ( x , r ) , H ( x ) ) ∣ x ∈ X } L := \\{(H^{n*m}(x,r),H(x))|x \\in X\\} L:={(Hn∗m(x,r),H(x))∣x∈X} L:=  L  :=  {(Hn∗m(x,r),H(x))∣x∈  {( Hn∗m H n∗m n∗m n∗m n∗m n∗m  n∗m n∗m n ∗ m ( x ,  r ) ,  H ( x )) ∣ x  ∈  X}  X } Sender and Receiver Run (sub)VOLE protocol, Sender gets Δ\\DeltaΔ and\nB⃗\\vec{B}B, Receiver gets A⃗\\vec{A}A and C⃗\\vec{C}C, such that:\nC⃗=Δ∗A′⃗+B⃗\\vec{C}=\\Delta *\\vec{A'}+\\vec{B}C=Δ∗A′+B. Δ\\DeltaΔ Δ\\DeltaΔ Δ\\Delta Δ\\Delta Δ\\Delta Δ Δ \\Delta Δ Δ  Δ B⃗\\vec{B}B B⃗\\vec{B}B B⃗\\vec{B} B⃗\\vec{B} B⃗\\vec{B} B⃗ B⃗ B ⃗ \\vec{B} B B  B B B B B  B       A⃗\\vec{A}A A⃗\\vec{A}A A⃗\\vec{A} A⃗\\vec{A} A⃗\\vec{A} A⃗ A⃗ A ⃗ \\vec{A} A A  A A A A A  A       C⃗\\vec{C}C C⃗\\vec{C}C C⃗\\vec{C} C⃗\\vec{C} C⃗\\vec{C} C⃗ C⃗ C ⃗ \\vec{C} C C  C C C C C  C       C⃗=Δ∗A′⃗+B⃗\\vec{C}=\\Delta *\\vec{A'}+\\vec{B}C=Δ∗A′+B C⃗=Δ∗A′⃗+B⃗\\vec{C}=\\Delta *\\vec{A'}+\\vec{B}C=Δ∗A′+B C⃗=Δ∗A′⃗+B⃗\\vec{C}=\\Delta *\\vec{A'}+\\vec{B} C⃗=Δ∗A′⃗+B⃗\\vec{C}=\\Delta *\\vec{A'}+\\vec{B} C⃗=Δ∗A′⃗+B⃗\\vec{C}=\\Delta *\\vec{A'}+\\vec{B} C⃗=Δ∗A′⃗+B⃗ C⃗ C ⃗ = Δ ∗ A′⃗ A′ A ′ ⃗ + B⃗ B ⃗ \\vec{C}=\\Delta *\\vec{A'}+\\vec{B} C=Δ∗A′+B C=  C C C C C  C        =  Δ∗  Δ  ∗  A′+  A′ A′ A′ A′ A′  A′ A ′ ′ ′ ′ ′  ′ ′ ′        +  B  B B B B B  B       Receiver sends r,A⃗=A′⃗+P⃗r, \\vec{A}=\\vec{A'}+\\vec{P}r,A=A′+P to Sender. Sender defines\nK⃗=B⃗+Δ⋅A⃗\\vec{K}=\\vec{B}+\\Delta \\cdot \\vec{A}K=B+Δ⋅A. r,A⃗=A′⃗+P⃗r, \\vec{A}=\\vec{A'}+\\vec{P}r,A=A′+P r,A⃗=A′⃗+P⃗r, \\vec{A}=\\vec{A'}+\\vec{P}r,A=A′+P r,A⃗=A′⃗+P⃗r, \\vec{A}=\\vec{A'}+\\vec{P} r,A⃗=A′⃗+P⃗r, \\vec{A}=\\vec{A'}+\\vec{P} r,A⃗=A′⃗+P⃗r, \\vec{A}=\\vec{A'}+\\vec{P} r,A⃗=A′⃗+P⃗ r , A⃗ A ⃗ = A′⃗ A′ A ′ ⃗ + P⃗ P ⃗ r, \\vec{A}=\\vec{A'}+\\vec{P} r,A=A′+P r,A=  r ,  A A A A A  A        =  A′+  A′ A′ A′ A′ A′  A′ A ′ ′ ′ ′ ′  ′ ′ ′        +  P  P P P P P  P       K⃗=B⃗+Δ⋅A⃗\\vec{K}=\\vec{B}+\\Delta \\cdot \\vec{A}K=B+Δ⋅A K⃗=B⃗+Δ⋅A⃗\\vec{K}=\\vec{B}+\\Delta \\cdot \\vec{A}K=B+Δ⋅A K⃗=B⃗+Δ⋅A⃗\\vec{K}=\\vec{B}+\\Delta \\cdot \\vec{A} K⃗=B⃗+Δ⋅A⃗\\vec{K}=\\vec{B}+\\Delta \\cdot \\vec{A} K⃗=B⃗+Δ⋅A⃗\\vec{K}=\\vec{B}+\\Delta \\cdot \\vec{A} K⃗=B⃗+Δ⋅A⃗ K⃗ K ⃗ = B⃗ B ⃗ + Δ ⋅ A⃗ A ⃗ \\vec{K}=\\vec{B}+\\Delta \\cdot \\vec{A} K=B+Δ⋅A K=  K K K K K  K        =  B+  B B B B B  B        +  Δ⋅  Δ  ⋅  A  A A A A A  A       Sender sends Y′=Hn∗m(Y⃗,r)⋅K⃗−Δ⋅H(Y⃗)Y'=H^{n*m}(\\vec{Y},r)\\cdot \\vec{K}-\\Delta \\cdot H(\\vec{Y})Y′=Hn∗m(Y,r)⋅K−Δ⋅H(Y)\nto the Receiver. Y′=Hn∗m(Y⃗,r)⋅K⃗−Δ⋅H(Y⃗)Y'=H^{n*m}(\\vec{Y},r)\\cdot \\vec{K}-\\Delta \\cdot H(\\vec{Y})Y′=Hn∗m(Y,r)⋅K−Δ⋅H(Y) Y′=Hn∗m(Y⃗,r)⋅K⃗−Δ⋅H(Y⃗)Y'=H^{n*m}(\\vec{Y},r)\\cdot \\vec{K}-\\Delta \\cdot H(\\vec{Y})Y′=Hn∗m(Y,r)⋅K−Δ⋅H(Y) Y′=Hn∗m(Y⃗,r)⋅K⃗−Δ⋅H(Y⃗)Y'=H^{n*m}(\\vec{Y},r)\\cdot \\vec{K}-\\Delta \\cdot H(\\vec{Y}) Y′=Hn∗m(Y⃗,r)⋅K⃗−Δ⋅H(Y⃗)Y'=H^{n*m}(\\vec{Y},r)\\cdot \\vec{K}-\\Delta \\cdot H(\\vec{Y}) Y′=Hn∗m(Y⃗,r)⋅K⃗−Δ⋅H(Y⃗)Y'=H^{n*m}(\\vec{Y},r)\\cdot \\vec{K}-\\Delta \\cdot H(\\vec{Y}) Y′=Hn∗m(Y⃗,r)⋅K⃗−Δ⋅H(Y⃗) Y′ Y ′ = Hn∗m H n∗m n ∗ m ( Y⃗ Y ⃗ , r ) ⋅ K⃗ K ⃗ − Δ ⋅ H ( Y⃗ Y ⃗ ) Y'=H^{n*m}(\\vec{Y},r)\\cdot \\vec{K}-\\Delta \\cdot H(\\vec{Y}) Y′=Hn∗m(Y,r)⋅K−Δ⋅H(Y) Y′=  Y′ Y ′ ′ ′ ′ ′  ′ ′ ′  =  Hn∗m(Y,r)⋅  Hn∗m H n∗m n∗m n∗m n∗m n∗m  n∗m n∗m n ∗ m ( Y Y Y Y Y  Y       ,  r )  ⋅  K−  K K K K K  K        −  Δ⋅  Δ  ⋅  H(Y)  H ( Y Y Y Y Y  Y       ) Receiver compares X′=Hn∗m(X⃗,r)⋅C⃗X'=H^{n*m}(\\vec{X},r)\\cdot \\vec{C}X′=Hn∗m(X,r)⋅C and Y′Y'Y′, outputs\nintersection result X∩YX \\cap YX∩Y. X′=Hn∗m(X⃗,r)⋅C⃗X'=H^{n*m}(\\vec{X},r)\\cdot \\vec{C}X′=Hn∗m(X,r)⋅C X′=Hn∗m(X⃗,r)⋅C⃗X'=H^{n*m}(\\vec{X},r)\\cdot \\vec{C}X′=Hn∗m(X,r)⋅C X′=Hn∗m(X⃗,r)⋅C⃗X'=H^{n*m}(\\vec{X},r)\\cdot \\vec{C} X′=Hn∗m(X⃗,r)⋅C⃗X'=H^{n*m}(\\vec{X},r)\\cdot \\vec{C} X′=Hn∗m(X⃗,r)⋅C⃗X'=H^{n*m}(\\vec{X},r)\\cdot \\vec{C} X′=Hn∗m(X⃗,r)⋅C⃗ X′ X ′ = Hn∗m H n∗m n ∗ m ( X⃗ X ⃗ , r ) ⋅ C⃗ C ⃗ X'=H^{n*m}(\\vec{X},r)\\cdot \\vec{C} X′=Hn∗m(X,r)⋅C X′=  X′ X ′ ′ ′ ′ ′  ′ ′ ′  =  Hn∗m(X,r)⋅  Hn∗m H n∗m n∗m n∗m n∗m n∗m  n∗m n∗m n ∗ m ( X X X X X  X       ,  r )  ⋅  C  C C C C C  C       Y′Y'Y′ Y′Y'Y′ Y′Y' Y′Y' Y′Y' Y′ Y′ Y ′ Y' Y′ Y′  Y′ Y ′ ′ ′ ′ ′  ′ ′ ′ X∩YX \\cap YX∩Y X∩YX \\cap YX∩Y X∩YX \\cap Y X∩YX \\cap Y X∩YX \\cap Y X∩Y X ∩ Y X \\cap Y X∩Y X∩  X  ∩  Y  Y "],[77,"Advanced Join allow duplicate keys. \nIf selected, duplicates_check is skipped.\nIf selected, both parties are allowed to contain duplicate keys.\nIf use left join, full join or difference, the size of difference set of\nleft party is revealed to right party.\nIf use right join, full join or difference, the size of difference set of\nright party is revealed to left party.\n If selected, duplicates_check is skipped. If selected, both parties are allowed to contain duplicate keys. If use left join, full join or difference, the size of difference set of\nleft party is revealed to right party. If use right join, full join or difference, the size of difference set of\nright party is revealed to left party. NameNumberDescriptionADVANCED_JOIN_TYPE_UNSPECIFIED0noneADVANCED_JOIN_TYPE_INNER_JOIN1noneADVANCED_JOIN_TYPE_LEFT_JOIN2noneADVANCED_JOIN_TYPE_RIGHT_JOIN3noneADVANCED_JOIN_TYPE_FULL_JOIN4noneADVANCED_JOIN_TYPE_DIFFERENCE5none NameNumberDescription NameNumberDescription Name Name Number Number Description Description ADVANCED_JOIN_TYPE_UNSPECIFIED0noneADVANCED_JOIN_TYPE_INNER_JOIN1noneADVANCED_JOIN_TYPE_LEFT_JOIN2noneADVANCED_JOIN_TYPE_RIGHT_JOIN3noneADVANCED_JOIN_TYPE_FULL_JOIN4noneADVANCED_JOIN_TYPE_DIFFERENCE5none ADVANCED_JOIN_TYPE_UNSPECIFIED0none ADVANCED_JOIN_TYPE_UNSPECIFIED ADVANCED_JOIN_TYPE_UNSPECIFIED 0 0 none none ADVANCED_JOIN_TYPE_INNER_JOIN1none ADVANCED_JOIN_TYPE_INNER_JOIN ADVANCED_JOIN_TYPE_INNER_JOIN 1 1 none none ADVANCED_JOIN_TYPE_LEFT_JOIN2none ADVANCED_JOIN_TYPE_LEFT_JOIN ADVANCED_JOIN_TYPE_LEFT_JOIN 2 2 none none ADVANCED_JOIN_TYPE_RIGHT_JOIN3none ADVANCED_JOIN_TYPE_RIGHT_JOIN ADVANCED_JOIN_TYPE_RIGHT_JOIN 3 3 none none ADVANCED_JOIN_TYPE_FULL_JOIN4none ADVANCED_JOIN_TYPE_FULL_JOIN ADVANCED_JOIN_TYPE_FULL_JOIN 4 4 none none ADVANCED_JOIN_TYPE_DIFFERENCE5none ADVANCED_JOIN_TYPE_DIFFERENCE ADVANCED_JOIN_TYPE_DIFFERENCE 5 5 none none "],[40,"Advanced topics related to principles, designs, benchmark and more. \nPSI Protocols Introduction\n \nPSI Protocols Introduction\n PSI Protocols Introduction PSI Protocols Introduction "],[166,"All of our experiments use a single thread for each party. If the bandwidth is enough, the upstream could try to perform multi-threading optimizations bandwidth limited by wondershaper. wondershaper 10Mbps = 10240Kbps, 100Mbps = 102400Kbps, 1000Mbps = 1024000Kbps  Intel(R) Xeon(R) Platinum 8269CY CPU @ 2.50GHz bandwidthphase2^182^202^222^24LANoffline0.012s0.012s0.012s0.014sonline0.495s2.474s10.765s44.368s100Mbpsoffline0.012s0.012s0.024s0.014sonline2.694s11.048s46.983s192.37s10Mbpsoffline0.016s0.019s0.0312s0.018sonline25.434s100.68s415.94s1672.21s bandwidthphase2^182^202^222^24 bandwidthphase2^182^202^222^24 bandwidth bandwidth phase phase 2^18 2^18 2^20 2^20 2^22 2^22 2^24 2^24 LANoffline0.012s0.012s0.012s0.014sonline0.495s2.474s10.765s44.368s100Mbpsoffline0.012s0.012s0.024s0.014sonline2.694s11.048s46.983s192.37s10Mbpsoffline0.016s0.019s0.0312s0.018sonline25.434s100.68s415.94s1672.21s LANoffline0.012s0.012s0.012s0.014s LAN LAN offline offline 0.012s 0.012s 0.012s 0.012s 0.012s 0.012s 0.014s 0.014s online0.495s2.474s10.765s44.368s online online 0.495s 0.495s 2.474s 2.474s 10.765s 10.765s 44.368s 44.368s 100Mbpsoffline0.012s0.012s0.024s0.014s 100Mbps 100Mbps offline offline 0.012s 0.012s 0.012s 0.012s 0.024s 0.024s 0.014s 0.014s online2.694s11.048s46.983s192.37s online online 2.694s 2.694s 11.048s 11.048s 46.983s 46.983s 192.37s 192.37s 10Mbpsoffline0.016s0.019s0.0312s0.018s 10Mbps 10Mbps offline offline 0.016s 0.016s 0.019s 0.019s 0.0312s 0.0312s 0.018s 0.018s online25.434s100.68s415.94s1672.21s online online 25.434s 25.434s 100.68s 100.68s 415.94s 415.94s 1672.21s 1672.21s "],[100,"AllocatedPorts represents allocated ports for pod. FieldTypeDescriptionportsrepeated PortAllocated ports. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description portsrepeated PortAllocated ports. portsrepeated PortAllocated ports. ports ports repeated Port repeated Port repeated Port Allocated ports. Allocated ports.  "],[69,"Any items related to PSI protocols. FieldTypeDescriptionprotocol Protocolnonerole Rolenonebroadcast_result boolReveal result to sender.ecdh_config EcdhConfigFor ECDH protocol.kkrt_config KkrtConfigFor KKRT protocol.rr22_config Rr22ConfigFor RR22 protocol. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description protocol Protocolnonerole Rolenonebroadcast_result boolReveal result to sender.ecdh_config EcdhConfigFor ECDH protocol.kkrt_config KkrtConfigFor KKRT protocol.rr22_config Rr22ConfigFor RR22 protocol. protocol Protocolnone protocol protocol  Protocol  Protocol  Protocol none none role Rolenone role role  Role  Role  Role none none broadcast_result boolReveal result to sender. broadcast_result broadcast_result  bool  bool  bool  bool Reveal result to sender. Reveal result to sender. ecdh_config EcdhConfigFor ECDH protocol. ecdh_config ecdh_config  EcdhConfig  EcdhConfig  EcdhConfig For ECDH protocol. For ECDH protocol. kkrt_config KkrtConfigFor KKRT protocol. kkrt_config kkrt_config  KkrtConfig  KkrtConfig  KkrtConfig For KKRT protocol. For KKRT protocol. rr22_config Rr22ConfigFor RR22 protocol. rr22_config rr22_config  Rr22Config  Rr22Config  Rr22Config For RR22 protocol. For RR22 protocol.  "],[124,"apsi_sender（32C64G）  Then run:  "],[164,"benchmark result without data load time "],[161,"Check official release docker image at dockerhub. We also have mirrors at Alibaba Cloud: secretflow-registry.cn-hangzhou.cr.aliyuncs.com/secretflow/psi-anolis8. dockerhub "],[129,"Check official release docker image at dockerhub. We also have mirrors at Alibaba Cloud: secretflow-registry.cn-hangzhou.cr.aliyuncs.com/secretflow/psi-anolis8. dockerhub secretflow-registry.cn-hangzhou.cr.aliyuncs.com/secretflow/psi-anolis8 "],[137,"Check official release docker image at dockerhub. We also have mirrors at Alibaba Cloud: secretflow-registry.cn-hangzhou.cr.aliyuncs.com/secretflow/psi-anolis8. dockerhub secretflow-registry.cn-hangzhou.cr.aliyuncs.com/secretflow/psi-anolis8 "],[101,"ClusterDefine represents the information of all parties. FieldTypeDescriptionpartiesrepeated PartyBasic information of all parties.self_party_idx int32index of self party.self_endpoint_idx int32index of self endpoint. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description partiesrepeated PartyBasic information of all parties.self_party_idx int32index of self party.self_endpoint_idx int32index of self endpoint. partiesrepeated PartyBasic information of all parties. parties parties repeated Party repeated Party repeated Party Basic information of all parties. Basic information of all parties. self_party_idx int32index of self party. self_party_idx self_party_idx  int32  int32  int32  int32 index of self party. index of self party. self_endpoint_idx int32index of self endpoint. self_endpoint_idx self_endpoint_idx  int32  int32  int32  int32 index of self endpoint. index of self endpoint.  "],[73,"config for unbalanced psi. FieldTypeDescriptionmode UbPsiConfig.ModeRequired.role RoleRequired for all modes except MODE_OFFLINE_GEN_CACHE.input_config IoConfigConfig for origin input. Servers: Required for MODE_OFFLINE_GEN_CACHE, MODE_OFFLINE, MODE_FULL. Clients: Required for MODE_ONLINE and MODE_FULL.keysrepeated stringJoin keys. Servers: Required for MODE_OFFLINE_GEN_CACHE, MODE_OFFLINE, MODE_FULL. Clients: Required for MODE_ONLINE and MODE_FULL.server_secret_key_path stringServers: Required for MODE_OFFLINE_GEN_CACHE, MODE_OFFLINE, MODE_ONLINE and MODE_FULL.cache_path stringRequired.server_get_result boolnoneclient_get_result boolnonedisable_alignment boolIt true, output is not promised to be aligned. Valid if both server_get_result and client_get_result are true.output_config IoConfigRequired for MODE_ONLINE and MODE_FULL.debug_options DebugOptionsLogging level.advanced_join_type PsiConfig.AdvancedJoinTypenoneleft_side RoleRequired if advanced_join_type is ADVANCED_JOIN_TYPE_LEFT_JOIN or ADVANCED_JOIN_TYPE_RIGHT_JOIN.input_attr InputAttrInput attributes.output_attr OutputAttrOutput attributes. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description mode UbPsiConfig.ModeRequired.role RoleRequired for all modes except MODE_OFFLINE_GEN_CACHE.input_config IoConfigConfig for origin input. Servers: Required for MODE_OFFLINE_GEN_CACHE, MODE_OFFLINE, MODE_FULL. Clients: Required for MODE_ONLINE and MODE_FULL.keysrepeated stringJoin keys. Servers: Required for MODE_OFFLINE_GEN_CACHE, MODE_OFFLINE, MODE_FULL. Clients: Required for MODE_ONLINE and MODE_FULL.server_secret_key_path stringServers: Required for MODE_OFFLINE_GEN_CACHE, MODE_OFFLINE, MODE_ONLINE and MODE_FULL.cache_path stringRequired.server_get_result boolnoneclient_get_result boolnonedisable_alignment boolIt true, output is not promised to be aligned. Valid if both server_get_result and client_get_result are true.output_config IoConfigRequired for MODE_ONLINE and MODE_FULL.debug_options DebugOptionsLogging level.advanced_join_type PsiConfig.AdvancedJoinTypenoneleft_side RoleRequired if advanced_join_type is ADVANCED_JOIN_TYPE_LEFT_JOIN or ADVANCED_JOIN_TYPE_RIGHT_JOIN.input_attr InputAttrInput attributes.output_attr OutputAttrOutput attributes. mode UbPsiConfig.ModeRequired. mode mode  UbPsiConfig.Mode  UbPsiConfig.Mode  UbPsiConfig.Mode Required. Required. role RoleRequired for all modes except MODE_OFFLINE_GEN_CACHE. role role  Role  Role  Role Required for all modes except MODE_OFFLINE_GEN_CACHE. Required for all modes except MODE_OFFLINE_GEN_CACHE. input_config IoConfigConfig for origin input. Servers: Required for MODE_OFFLINE_GEN_CACHE, MODE_OFFLINE, MODE_FULL. Clients: Required for MODE_ONLINE and MODE_FULL. input_config input_config  IoConfig  IoConfig  IoConfig Config for origin input. Servers: Required for MODE_OFFLINE_GEN_CACHE, MODE_OFFLINE, MODE_FULL. Clients: Required for MODE_ONLINE and MODE_FULL. Config for origin input. Servers: Required for MODE_OFFLINE_GEN_CACHE, MODE_OFFLINE, MODE_FULL. Clients: Required for MODE_ONLINE and MODE_FULL. keysrepeated stringJoin keys. Servers: Required for MODE_OFFLINE_GEN_CACHE, MODE_OFFLINE, MODE_FULL. Clients: Required for MODE_ONLINE and MODE_FULL. keys keys repeated string repeated string repeated string repeated string Join keys. Servers: Required for MODE_OFFLINE_GEN_CACHE, MODE_OFFLINE, MODE_FULL. Clients: Required for MODE_ONLINE and MODE_FULL. Join keys. Servers: Required for MODE_OFFLINE_GEN_CACHE, MODE_OFFLINE, MODE_FULL. Clients: Required for MODE_ONLINE and MODE_FULL. server_secret_key_path stringServers: Required for MODE_OFFLINE_GEN_CACHE, MODE_OFFLINE, MODE_ONLINE and MODE_FULL. server_secret_key_path server_secret_key_path  string  string  string  string Servers: Required for MODE_OFFLINE_GEN_CACHE, MODE_OFFLINE, MODE_ONLINE and MODE_FULL. Servers: Required for MODE_OFFLINE_GEN_CACHE, MODE_OFFLINE, MODE_ONLINE and MODE_FULL. cache_path stringRequired. cache_path cache_path  string  string  string  string Required. Required. server_get_result boolnone server_get_result server_get_result  bool  bool  bool  bool none none client_get_result boolnone client_get_result client_get_result  bool  bool  bool  bool none none disable_alignment boolIt true, output is not promised to be aligned. Valid if both server_get_result and client_get_result are true. disable_alignment disable_alignment  bool  bool  bool  bool It true, output is not promised to be aligned. Valid if both server_get_result and client_get_result are true. It true, output is not promised to be aligned. Valid if both server_get_result and client_get_result are true. output_config IoConfigRequired for MODE_ONLINE and MODE_FULL. output_config output_config  IoConfig  IoConfig  IoConfig Required for MODE_ONLINE and MODE_FULL. Required for MODE_ONLINE and MODE_FULL. debug_options DebugOptionsLogging level. debug_options debug_options  DebugOptions  DebugOptions  DebugOptions Logging level. Logging level. advanced_join_type PsiConfig.AdvancedJoinTypenone advanced_join_type advanced_join_type  PsiConfig.AdvancedJoinType  PsiConfig.AdvancedJoinType  PsiConfig.AdvancedJoinType none none left_side RoleRequired if advanced_join_type is ADVANCED_JOIN_TYPE_LEFT_JOIN or ADVANCED_JOIN_TYPE_RIGHT_JOIN. left_side left_side  Role  Role  Role Required if advanced_join_type is ADVANCED_JOIN_TYPE_LEFT_JOIN or ADVANCED_JOIN_TYPE_RIGHT_JOIN. Required if advanced_join_type is ADVANCED_JOIN_TYPE_LEFT_JOIN or ADVANCED_JOIN_TYPE_RIGHT_JOIN. input_attr InputAttrInput attributes. input_attr input_attr  InputAttr  InputAttr  InputAttr Input attributes. Input attributes. output_attr OutputAttrOutput attributes. output_attr output_attr  OutputAttr  OutputAttr  OutputAttr Output attributes. Output attributes.  "],[64,"Configs for ECDH protocol. FieldTypeDescriptioncurve psi.CurveTypenonebatch_size uint64If not set, use default value: 4096. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description curve psi.CurveTypenonebatch_size uint64If not set, use default value: 4096. curve psi.CurveTypenone curve curve  psi.CurveType  psi.CurveType  psi.CurveType  psi.CurveType none none batch_size uint64If not set, use default value: 4096. batch_size batch_size  uint64  uint64  uint64  uint64 If not set, use default value: 4096. If not set, use default value: 4096.  "],[67,"Configs for KKRT protocol FieldTypeDescriptionbucket_size uint64Since the total input may not fit in memory, the input may be splitted into buckets. bucket_size indicate the number of items in each bucket. If the memory of host is limited, you should set a smaller bucket size. Otherwise, you should use a larger one. If not set, use default value: 1 << 20. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description bucket_size uint64Since the total input may not fit in memory, the input may be splitted into buckets. bucket_size indicate the number of items in each bucket. If the memory of host is limited, you should set a smaller bucket size. Otherwise, you should use a larger one. If not set, use default value: 1 << 20. bucket_size uint64Since the total input may not fit in memory, the input may be splitted into buckets. bucket_size indicate the number of items in each bucket. If the memory of host is limited, you should set a smaller bucket size. Otherwise, you should use a larger one. If not set, use default value: 1 << 20. bucket_size bucket_size  uint64  uint64  uint64  uint64 Since the total input may not fit in memory, the input may be splitted into buckets. bucket_size indicate the number of items in each bucket. If the memory of host is limited, you should set a smaller bucket size. Otherwise, you should use a larger one. If not set, use default value: 1 << 20. Since the total input may not fit in memory, the input may be splitted into buckets. bucket_size indicate the number of items in each bucket. If the memory of host is limited, you should set a smaller bucket size. Otherwise, you should use a larger one. If not set, use default value: 1 << 20.  "],[72,"Configs for RR22 protocol. FieldTypeDescriptionbucket_size uint64Since the total input may not fit in memory, the input may be splitted into buckets. bucket_size indicate the number of items in each bucket. If the memory of host is limited, you should set a smaller bucket size. Otherwise, you should use a larger one. If not set, use default value: 1 << 20.low_comm_mode boolnone FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description bucket_size uint64Since the total input may not fit in memory, the input may be splitted into buckets. bucket_size indicate the number of items in each bucket. If the memory of host is limited, you should set a smaller bucket size. Otherwise, you should use a larger one. If not set, use default value: 1 << 20.low_comm_mode boolnone bucket_size uint64Since the total input may not fit in memory, the input may be splitted into buckets. bucket_size indicate the number of items in each bucket. If the memory of host is limited, you should set a smaller bucket size. Otherwise, you should use a larger one. If not set, use default value: 1 << 20. bucket_size bucket_size  uint64  uint64  uint64  uint64 Since the total input may not fit in memory, the input may be splitted into buckets. bucket_size indicate the number of items in each bucket. If the memory of host is limited, you should set a smaller bucket size. Otherwise, you should use a larger one. If not set, use default value: 1 << 20. Since the total input may not fit in memory, the input may be splitted into buckets. bucket_size indicate the number of items in each bucket. If the memory of host is limited, you should set a smaller bucket size. Otherwise, you should use a larger one. If not set, use default value: 1 << 20. low_comm_mode boolnone low_comm_mode low_comm_mode  bool  bool  bool  bool none none  "],[109,"Configuration for link config. FieldTypeDescriptionid stringthe UUID of this communication. optionalpartiesrepeated PartyProtoparty description, describes the world.connect_retry_times uint32connect to mesh retry time.connect_retry_interval_ms uint32connect to mesh retry interval.recv_timeout_ms uint64recv timeout in milliseconds. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description id stringthe UUID of this communication. optionalpartiesrepeated PartyProtoparty description, describes the world.connect_retry_times uint32connect to mesh retry time.connect_retry_interval_ms uint32connect to mesh retry interval.recv_timeout_ms uint64recv timeout in milliseconds. id stringthe UUID of this communication. optional id id  string  string  string  string the UUID of this communication. optional the UUID of this communication. optional partiesrepeated PartyProtoparty description, describes the world. parties parties repeated PartyProto repeated PartyProto repeated PartyProto party description, describes the world. party description, describes the world. connect_retry_times uint32connect to mesh retry time. connect_retry_times connect_retry_times  uint32  uint32  uint32  uint32 connect to mesh retry time. connect to mesh retry time. connect_retry_interval_ms uint32connect to mesh retry interval. connect_retry_interval_ms connect_retry_interval_ms  uint32  uint32  uint32  uint32 connect to mesh retry interval. connect to mesh retry interval. recv_timeout_ms uint64recv timeout in milliseconds. recv_timeout_ms recv_timeout_ms  uint64  uint64  uint64  uint64 recv timeout in milliseconds. recv timeout in milliseconds. ‘recv time’ is the max time that a party will wait for a given event. for example: begin recv end recv |——–|——-recv-time———-|——————| alice’s timeline begin send end send |—–busy-work————-|————-|————| bob’s timeline in above case, when alice begins recv for a specific event, bob is still busy doing its job, when alice’s wait time exceed wait_timeout_ms, it raise exception, although bob now is starting to send data. so for long time work(that one party may wait for the others for very long time), this value should be changed accordingly. |\n| http_max_payload_size |  uint32 | http max payload size, if a single http request size is greater than this limit, it will be unpacked into small chunks then reassembled.  uint32 This field does affect performance. Please choose wisely. |\n| http_timeout_ms |  uint32 | a single http request timetout. |\n| throttle_window_size |  uint32 | throttle window size for channel. if there are more than limited size messages are flying, SendAsync will block until messages are processed or throw exception after wait for recv_timeout_ms |\n| brpc_channel_protocol |  string | BRPC client channel protocol. |\n| brpc_channel_connection_type |  string | BRPC client channel connection type. |\n| enable_ssl |  bool | ssl options for link channel. |\n| client_ssl_opts |  SSLOptionsProto | ssl configs for channel this config is ignored if enable_ssl == false; |\n| server_ssl_opts |  SSLOptionsProto | ssl configs for service this config is ignored if enable_ssl == false; |\n| chunk_parallel_send_size |  uint32 | chunk parallel send size for channel. if need chunked send when send message, the max paralleled send size is chunk_parallel_send_size |\n| retry_opts |  RetryOptionsProto | retry options |  uint32  uint32 SendAsync recv_timeout_ms  string  string  bool  SSLOptionsProto  SSLOptionsProto  uint32  RetryOptionsProto  "],[71,"Configuration for recovery.\nIf a PSI task failed unexpectedly, e.g. network failures and restart, the\ntask can resume to the latest checkpoint to save time.\nHowever, enabling recovery would due in extra disk IOs and disk space\noccupation. FieldTypeDescriptionenabled boolnonefolder stringStores status and checkpoint files. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description enabled boolnonefolder stringStores status and checkpoint files. enabled boolnone enabled enabled  bool  bool  bool  bool none none folder stringStores status and checkpoint files. folder folder  string  string  string  string Stores status and checkpoint files. Stores status and checkpoint files.  "],[165,"DH-PSI benchmark code DH-PSI benchmark code cpu limited by docker(–cpu) Intel(R) Xeon(R) Platinumcpu2^202^212^222^232^248269CY CPU @ 2.50GHzwith curve25519-donna4c40.181s81.227s163.509s330.466s666.807s8c20.682s42.054s85.272s173.836s354.842s16c11.639s23.670s48.965s100.903s208.156s Intel(R) Xeon(R) Platinumcpu2^202^212^222^232^24 Intel(R) Xeon(R) Platinumcpu2^202^212^222^232^24 Intel(R) Xeon(R) Platinum Intel(R) Xeon(R) Platinum cpu cpu 2^20 2^20 2^21 2^21 2^22 2^22 2^23 2^23 2^24 2^24 8269CY CPU @ 2.50GHzwith curve25519-donna4c40.181s81.227s163.509s330.466s666.807s8c20.682s42.054s85.272s173.836s354.842s16c11.639s23.670s48.965s100.903s208.156s 8269CY CPU @ 2.50GHzwith curve25519-donna4c40.181s81.227s163.509s330.466s666.807s 8269CY CPU @ 2.50GHzwith curve25519-donna 8269CY CPU @ 2.50GHz with curve25519-donna 4c 4c 40.181s 40.181s 81.227s 81.227s 163.509s 163.509s 330.466s 330.466s 666.807s 666.807s 8c20.682s42.054s85.272s173.836s354.842s 8c 8c 20.682s 20.682s 42.054s 42.054s 85.272s 85.272s 173.836s 173.836s 354.842s 354.842s 16c11.639s23.670s48.965s100.903s208.156s 16c 16c 11.639s 11.639s 23.670s 23.670s 48.965s 48.965s 100.903s 100.903s 208.156s 208.156s ipp-crypto Multi-buffer Functions ipp-crypto Multi-buffer Functions Intel(R) Xeon(R) Platinumcpu2^202^212^222^232^248369B CPU @ 2.70GHzcurve25519(ipp-crypto)4c7.37s15.32s31.932s66.802s139.994s8c4.3s9.095s18.919s40.828s87.649s16c2.921s6.081s13.186s29.614s65.186s Intel(R) Xeon(R) Platinumcpu2^202^212^222^232^24 Intel(R) Xeon(R) Platinumcpu2^202^212^222^232^24 Intel(R) Xeon(R) Platinum Intel(R) Xeon(R) Platinum cpu cpu 2^20 2^20 2^21 2^21 2^22 2^22 2^23 2^23 2^24 2^24 8369B CPU @ 2.70GHzcurve25519(ipp-crypto)4c7.37s15.32s31.932s66.802s139.994s8c4.3s9.095s18.919s40.828s87.649s16c2.921s6.081s13.186s29.614s65.186s 8369B CPU @ 2.70GHzcurve25519(ipp-crypto)4c7.37s15.32s31.932s66.802s139.994s 8369B CPU @ 2.70GHzcurve25519(ipp-crypto) 8369B CPU @ 2.70GHz curve25519(ipp-crypto) 4c 4c 7.37s 7.37s 15.32s 15.32s 31.932s 31.932s 66.802s 66.802s 139.994s 139.994s 8c4.3s9.095s18.919s40.828s87.649s 8c 8c 4.3s 4.3s 9.095s 9.095s 18.919s 18.919s 40.828s 40.828s 87.649s 87.649s 16c2.921s6.081s13.186s29.614s65.186s 16c 16c 2.921s 2.921s 6.081s 6.081s 13.186s 13.186s 29.614s 29.614s 65.186s 65.186s "],[50,"E. Boyle, G. Couteau, N. Gilboa, and Y. Ishai. Compressing vector OLE. In ACM CCS 2018,\npages 896–912. ACM Press, October 2018. E. Boyle, G. Couteau, N. Gilboa, and Y. Ishai. Compressing vector OLE. In ACM CCS 2018,\npages 896–912. ACM Press, October 2018. E. Boyle, G. Couteau, N. Gilboa, Y. Ishai, L. Kohl, P. Rindal, and P. Scholl. Efficient two-round\nOT extension and silent non-interactive secure computation. In ACM CCS 2019, pages 291–308.\nACM Press, November 2019. E. Boyle, G. Couteau, N. Gilboa, Y. Ishai, L. Kohl, P. Rindal, and P. Scholl. Efficient two-round\nOT extension and silent non-interactive secure computation. In ACM CCS 2019, pages 291–308.\nACM Press, November 2019. E. Boyle, G. Couteau, N. Gilboa, Y. Ishai, L. Kohl, P. Rindal, and P. Scholl.\nEfficient two-round OT extension and silent non-interactive secure computation. In ACM CCS 2019,\npages 291–308. ACM Press, November 2019. E. Boyle, G. Couteau, N. Gilboa, Y. Ishai, L. Kohl, P. Rindal, and P. Scholl.\nEfficient two-round OT extension and silent non-interactive secure computation. In ACM CCS 2019,\npages 291–308. ACM Press, November 2019. Daniel J. Bernstein. Curve25519: new diffie-hellman speed records. In In Public\nKey Cryptography (PKC), Springer-Verlag LNCS 3958, page 2006, 2006. (Cited on page 4.) Daniel J. Bernstein. Curve25519: new diffie-hellman speed records. In In Public\nKey Cryptography (PKC), Springer-Verlag LNCS 3958, page 2006, 2006. (Cited on page 4.) Elette Boyle, Geoffroy Couteau, Niv Gilboa, Yuval Ishai, Lisa Kohl, Nicolas Resch, Peter Scholl.\nCorrelated Pseudorandomness from Expand-Accumulate Codes. Crypto2022. Elette Boyle, Geoffroy Couteau, Niv Gilboa, Yuval Ishai, Lisa Kohl, Nicolas Resch, Peter Scholl.\nCorrelated Pseudorandomness from Expand-Accumulate Codes. Crypto2022. Baldi, P., Baronio, R., Cristofaro, E.D., Gasti, P., Tsudik, G.: Countering GATTACA:\nEfficient and Secure Testing of Fully-sequenced Human Genomes. In: ACM\nConference on Computer and Communications Security. pp. 691–702. ACM (2011). Baldi, P., Baronio, R., Cristofaro, E.D., Gasti, P., Tsudik, G.: Countering GATTACA:\nEfficient and Secure Testing of Fully-sequenced Human Genomes. In: ACM\nConference on Computer and Communications Security. pp. 691–702. ACM (2011). G. Couteau, Y. Ishai, L. Kohl, E. Boyle, P. Scholl, and N. Gilboa. Efficient pseudorandom\ncorrelation generators from ring-lpn. Springer-Verlag, 2020. G. Couteau, Y. Ishai, L. Kohl, E. Boyle, P. Scholl, and N. Gilboa. Efficient pseudorandom\ncorrelation generators from ring-lpn. Springer-Verlag, 2020. Chen, H., Huang, Z., Laine, K., Rindal, P.: Labeled PSI from fully homomorphic encryption with malicious\nsecurity. In: Lie, D., Mannan, M., Backes, M., Wang, X. (eds.) ACM CCS 2018. pp. 1223{1237. ACM Press (Oct\n2018). https://doi.org/10.1145/3243734.3243836 Chen, H., Huang, Z., Laine, K., Rindal, P.: Labeled PSI from fully homomorphic encryption with malicious\nsecurity. In: Lie, D., Mannan, M., Backes, M., Wang, X. (eds.) ACM CCS 2018. pp. 1223{1237. ACM Press (Oct\n2018). https://doi.org/10.1145/3243734.3243836 https://doi.org/10.1145/3243734.3243836 Chen, H., Laine, K., Rindal, P.: Fast private set intersection from homomorphic encryption. In: Thuraisingham,\nB.M., Evans, D., Malkin, T., Xu, D. (eds.) ACM CCS 2017. pp. 1243{1255. ACM Press (Oct / Nov 2017).\nhttps://doi.org/10.1145/3133956.3134061 Chen, H., Laine, K., Rindal, P.: Fast private set intersection from homomorphic encryption. In: Thuraisingham,\nB.M., Evans, D., Malkin, T., Xu, D. (eds.) ACM CCS 2017. pp. 1243{1255. ACM Press (Oct / Nov 2017).\nhttps://doi.org/10.1145/3133956.3134061 https://doi.org/10.1145/3133956.3134061 Kelong Cong, Radames Cruz Moreno, Mariana Botelho da Gama, Wei Dai, Ilia Iliashenko, Kim Laine,\nMichael Rosenberg. Labeled PSI from Homomorphic Encryption with Reduced Computation and Communication\nCCS’21: Proceedings of the 2021 ACM SIGSAC Conference on Computer and Communications SecurityNovember 2021 Kelong Cong, Radames Cruz Moreno, Mariana Botelho da Gama, Wei Dai, Ilia Iliashenko, Kim Laine,\nMichael Rosenberg. Labeled PSI from Homomorphic Encryption with Reduced Computation and Communication\nCCS’21: Proceedings of the 2021 ACM SIGSAC Conference on Computer and Communications SecurityNovember 2021 Geoffroy Couteau, Peter Rindal, and Srinivasan Raghuraman. Silver: Silent VOLE and Oblivious Transfer\nfrom Hardness of Decoding Structured LDPC Codes. Crypto2021. Geoffroy Couteau, Peter Rindal, and Srinivasan Raghuraman. Silver: Silent VOLE and Oblivious Transfer\nfrom Hardness of Decoding Structured LDPC Codes. Crypto2021. Differentially-Private PSI https://arxiv.org/pdf/2208.13249.pdf Differentially-Private PSI https://arxiv.org/pdf/2208.13249.pdf https://arxiv.org/pdf/2208.13249.pdf Costello, C., Longa, P.: Fourq: four-dimensional decompositions on a q-curve over the mersenne prime.\nCryptology ePrint Archive, Report 2015/565 (2015), https://eprint.iacr.org/2015/565 Costello, C., Longa, P.: Fourq: four-dimensional decompositions on a q-curve over the mersenne prime.\nCryptology ePrint Archive, Report 2015/565 (2015), https://eprint.iacr.org/2015/565 https://eprint.iacr.org/2015/565 Fan, J., Vercauteren, F.: Somewhat practical fully homomorphic encryption. Cryptology ePrint Archive,\nReport 2012/144 (2012), http://eprint.iacr.org/2012/144.pdf Fan, J., Vercauteren, F.: Somewhat practical fully homomorphic encryption. Cryptology ePrint Archive,\nReport 2012/144 (2012), http://eprint.iacr.org/2012/144.pdf http://eprint.iacr.org/2012/144.pdf Bernardo A. Huberman, Matt Franklin, and Tad Hogg. Enhancing privacy and trust in electronic\ncommunities. In ACM CONFERENCE ON ELECTRONIC COMMERCE. ACM, 1999. Bernardo A. Huberman, Matt Franklin, and Tad Hogg. Enhancing privacy and trust in electronic\ncommunities. In ACM CONFERENCE ON ELECTRONIC COMMERCE. ACM, 1999. https://github.com/intel/ipp-crypto/ https://github.com/intel/ipp-crypto/ https://github.com/intel/ipp-crypto/ Jarecki, S., Liu, X.: Fast Secure Computation of Set Intersection. In: SCN. LNCS,\nvol. 6280, pp. 418–435. Springer (2010) Jarecki, S., Liu, X.: Fast Secure Computation of Set Intersection. In: SCN. LNCS,\nvol. 6280, pp. 418–435. Springer (2010) V. Kolesnikov, R. Kumaresan, M. Rosulek, and N. Trieu. Efficient batched oblivious PRF with\napplications to private set intersection. In ACM CCS 2016, pages 818–829. ACM Press, October 2016. V. Kolesnikov, R. Kumaresan, M. Rosulek, and N. Trieu. Efficient batched oblivious PRF with\napplications to private set intersection. In ACM CCS 2016, pages 818–829. ACM Press, October 2016. C. Meadows. A more efficient cryptographic matchmaking protocol for use in the absence of a\ncontinuously available third party. In 1986 IEEE Symposium on Security and Privacy, pages 134–134, April 1986. C. Meadows. A more efficient cryptographic matchmaking protocol for use in the absence of a\ncontinuously available third party. In 1986 IEEE Symposium on Security and Privacy, pages 134–134, April 1986. B. Pinkas, T. Schneider, and M. Zohner. Scalable private set intersection based on ot extension.\nACM Transactions on Privacy and Security (TOPS), 21(2)–35, 2018. B. Pinkas, T. Schneider, and M. Zohner. Scalable private set intersection based on ot extension.\nACM Transactions on Privacy and Security (TOPS), 21(2)–35, 2018. Resende, A.C.D., Aranha, D.F.: Faster unbalanced private set intersection. In: Meiklejohn, S.,\nSako, K. (eds.) FC2018. LNCS, vol. 10957, pp. 203{221. Springer, Heidelberg (Feb / Mar 2018) Resende, A.C.D., Aranha, D.F.: Faster unbalanced private set intersection. In: Meiklejohn, S.,\nSako, K. (eds.) FC2018. LNCS, vol. 10957, pp. 203{221. Springer, Heidelberg (Feb / Mar 2018) Srinivasan Raghuraman and Peter Rindal. Blazing Fast PSI from Improved OKVS and Subfield VOLE. CCS’22. Srinivasan Raghuraman and Peter Rindal. Blazing Fast PSI from Improved OKVS and Subfield VOLE. CCS’22. Srinivasan Raghuraman, Peter Rindal, Titouan Tanguy. Expand-Convolute Codes for Pseudorandom\nCorrelation Generators from LPN. Crypto2023. Srinivasan Raghuraman, Peter Rindal, Titouan Tanguy. Expand-Convolute Codes for Pseudorandom\nCorrelation Generators from LPN. Crypto2023. Peter Rindal and Phillipp Schoppmann. VOLE-PSI: fast OPRF and circuit-psi from vector-ole. EUROCRYPT2021. Peter Rindal and Phillipp Schoppmann. VOLE-PSI: fast OPRF and circuit-psi from vector-ole. EUROCRYPT2021. Microsoft SEAL (release 4.0). https://github.com/Microsoft/SEAL (Sep 2022),\nmicrosoft Research, Redmond, WA. Microsoft SEAL (release 4.0). https://github.com/Microsoft/SEAL (Sep 2022),\nmicrosoft Research, Redmond, WA. https://github.com/Microsoft/SEAL Standards for Efficient Cryptography (SEC) <http://www.secg.org/sec2-v2.pdf> Standards for Efficient Cryptography (SEC) <http://www.secg.org/sec2-v2.pdf> http://www.secg.org/sec2-v2.pdf P. Schoppmann, A. Gascón, L. Reichert, and M. Raykova. Distributed vector-OLE: Improved\nconstructions and implementation. In ACM CCS 2019, pages 1055–1072. ACM Press, November 2019. P. Schoppmann, A. Gascón, L. Reichert, and M. Raykova. Distributed vector-OLE: Improved\nconstructions and implementation. In ACM CCS 2019, pages 1055–1072. ACM Press, November 2019. C. Weng, K. Yang, J. Katz, and X. Wang. Wolverine: fast, scalable, and communication-efficient\nzero-knowledge proofs for boolean and arithmetic circuits. In 2021 IEEE Symposium on Security\nand Privacy (SP), pages 1074–1091. IEEE, 2021. C. Weng, K. Yang, J. Katz, and X. Wang. Wolverine: fast, scalable, and communication-efficient\nzero-knowledge proofs for boolean and arithmetic circuits. In 2021 IEEE Symposium on Security\nand Privacy (SP), pages 1074–1091. IEEE, 2021. Oblivious Pseudorandom Functions (OPRFs) using Prime-Order Groups.\nhttps://www.ietf.org/archive/id/draft-irtf-cfrg-voprf-10.html Oblivious Pseudorandom Functions (OPRFs) using Prime-Order Groups.\nhttps://www.ietf.org/archive/id/draft-irtf-cfrg-voprf-10.html https://www.ietf.org/archive/id/draft-irtf-cfrg-voprf-10.html "],[68,"FieldTypeDescriptioncsv_null_rep stringNull representation in output csv file. If not set, use default value: “NULL”. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description csv_null_rep stringNull representation in output csv file. If not set, use default value: “NULL”. csv_null_rep stringNull representation in output csv file. If not set, use default value: “NULL”. csv_null_rep csv_null_rep  string  string  string  string Null representation in output csv file. If not set, use default value: “NULL”. Null representation in output csv file. If not set, use default value: “NULL”.  "],[110,"FieldTypeDescriptionid stringnonehost stringnone FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description id stringnonehost stringnone id stringnone id id  string  string  string  string none none host stringnone host host  string  string  string  string none none  "],[106,"FieldTypeDescriptionkey stringnonevalue psi.LaunchConfignone FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description key stringnonevalue psi.LaunchConfignone key stringnone key key  string  string  string  string none none value psi.LaunchConfignone value value  psi.LaunchConfig  psi.LaunchConfig  psi.LaunchConfig  psi.LaunchConfig none none  "],[65,"FieldTypeDescriptionkeys_unique boolKeys in input file are unique. If not set, use default value: false. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description keys_unique boolKeys in input file are unique. If not set, use default value: false. keys_unique boolKeys in input file are unique. If not set, use default value: false. keys_unique keys_unique  bool  bool  bool  bool Keys in input file are unique. If not set, use default value: false. Keys in input file are unique. If not set, use default value: false.  "],[97,"FieldTypeDescriptionlink_config yacl.link.ContextDescProtoConfigs for network.self_link_party stringWith link_config.oneof runtime_config.legacy_psi_config BucketPsiConfigPlease check at psi.proto.oneof runtime_config.psi_config v2.PsiConfigPlease check at psi_v2.proto.oneof runtime_config.ub_psi_config v2.UbPsiConfigPlease check at psi_v2.proto.oneof runtime_config.apsi_sender_config ApsiSenderConfigPlease check at pir.proto.oneof runtime_config.apsi_receiver_config ApsiReceiverConfignone FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description link_config yacl.link.ContextDescProtoConfigs for network.self_link_party stringWith link_config.oneof runtime_config.legacy_psi_config BucketPsiConfigPlease check at psi.proto.oneof runtime_config.psi_config v2.PsiConfigPlease check at psi_v2.proto.oneof runtime_config.ub_psi_config v2.UbPsiConfigPlease check at psi_v2.proto.oneof runtime_config.apsi_sender_config ApsiSenderConfigPlease check at pir.proto.oneof runtime_config.apsi_receiver_config ApsiReceiverConfignone link_config yacl.link.ContextDescProtoConfigs for network. link_config link_config  yacl.link.ContextDescProto  yacl.link.ContextDescProto  yacl.link.ContextDescProto  yacl.link.ContextDescProto Configs for network. Configs for network. self_link_party stringWith link_config. self_link_party self_link_party  string  string  string  string With link_config. With link_config. oneof runtime_config.legacy_psi_config BucketPsiConfigPlease check at psi.proto. oneof runtime_config.legacy_psi_config oneof runtime_config.legacy_psi_config oneof oneof  BucketPsiConfig  BucketPsiConfig  BucketPsiConfig  BucketPsiConfig Please check at psi.proto. Please check at psi.proto. oneof runtime_config.psi_config v2.PsiConfigPlease check at psi_v2.proto. oneof runtime_config.psi_config oneof runtime_config.psi_config oneof oneof  v2.PsiConfig  v2.PsiConfig  v2.PsiConfig  v2.PsiConfig Please check at psi_v2.proto. Please check at psi_v2.proto. oneof runtime_config.ub_psi_config v2.UbPsiConfigPlease check at psi_v2.proto. oneof runtime_config.ub_psi_config oneof runtime_config.ub_psi_config oneof oneof  v2.UbPsiConfig  v2.UbPsiConfig  v2.UbPsiConfig  v2.UbPsiConfig Please check at psi_v2.proto. Please check at psi_v2.proto. oneof runtime_config.apsi_sender_config ApsiSenderConfigPlease check at pir.proto. oneof runtime_config.apsi_sender_config oneof runtime_config.apsi_sender_config oneof oneof  ApsiSenderConfig  ApsiSenderConfig  ApsiSenderConfig  ApsiSenderConfig Please check at pir.proto. Please check at pir.proto. oneof runtime_config.apsi_receiver_config ApsiReceiverConfignone oneof runtime_config.apsi_receiver_config oneof runtime_config.apsi_receiver_config oneof oneof  ApsiReceiverConfig  ApsiReceiverConfig  ApsiReceiverConfig  ApsiReceiverConfig none none  "],[105,"FieldTypeDescriptionsf_psi_config_mapmap TaskInputConfig.SfPsiConfigMapEntrynone FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description sf_psi_config_mapmap TaskInputConfig.SfPsiConfigMapEntrynone sf_psi_config_mapmap TaskInputConfig.SfPsiConfigMapEntrynone sf_psi_config_map sf_psi_config_map map TaskInputConfig.SfPsiConfigMapEntry map TaskInputConfig.SfPsiConfigMapEntry map TaskInputConfig.SfPsiConfigMapEntry none none  "],[55,"FieldTypeDescriptionthreads uint32Number of threads to uselog_file stringLog file path. For APSI only.silent boolDo not write output to console. For APSI only.log_level stringOne of ‘all’, ‘debug’, ‘info’ (default), ‘warning’, ‘error’, ‘off’. For APSI only.query_file stringPath to a text file containing query data (one per line). Header is not needed.output_file stringPath to a file where intersection result will be written.params_file stringPath to a JSON file describing the parameters to be used by the sender. If not set, receiver will ask sender, which results in additional communication.experimental_enable_bucketize boolMust be same as sender config.experimental_bucket_cnt uint32Must be same as sender config.query_batch_size uint32The number of query in a batch. default 1. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description threads uint32Number of threads to uselog_file stringLog file path. For APSI only.silent boolDo not write output to console. For APSI only.log_level stringOne of ‘all’, ‘debug’, ‘info’ (default), ‘warning’, ‘error’, ‘off’. For APSI only.query_file stringPath to a text file containing query data (one per line). Header is not needed.output_file stringPath to a file where intersection result will be written.params_file stringPath to a JSON file describing the parameters to be used by the sender. If not set, receiver will ask sender, which results in additional communication.experimental_enable_bucketize boolMust be same as sender config.experimental_bucket_cnt uint32Must be same as sender config.query_batch_size uint32The number of query in a batch. default 1. threads uint32Number of threads to use threads threads  uint32  uint32  uint32  uint32 Number of threads to use Number of threads to use log_file stringLog file path. For APSI only. log_file log_file  string  string  string  string Log file path. For APSI only. Log file path. For APSI only. silent boolDo not write output to console. For APSI only. silent silent  bool  bool  bool  bool Do not write output to console. For APSI only. Do not write output to console. For APSI only. log_level stringOne of ‘all’, ‘debug’, ‘info’ (default), ‘warning’, ‘error’, ‘off’. For APSI only. log_level log_level  string  string  string  string One of ‘all’, ‘debug’, ‘info’ (default), ‘warning’, ‘error’, ‘off’. For APSI only. One of ‘all’, ‘debug’, ‘info’ (default), ‘warning’, ‘error’, ‘off’. For APSI only. query_file stringPath to a text file containing query data (one per line). Header is not needed. query_file query_file  string  string  string  string Path to a text file containing query data (one per line). Header is not needed. Path to a text file containing query data (one per line). Header is not needed. output_file stringPath to a file where intersection result will be written. output_file output_file  string  string  string  string Path to a file where intersection result will be written. Path to a file where intersection result will be written. params_file stringPath to a JSON file describing the parameters to be used by the sender. If not set, receiver will ask sender, which results in additional communication. params_file params_file  string  string  string  string Path to a JSON file describing the parameters to be used by the sender. If not set, receiver will ask sender, which results in additional communication. Path to a JSON file describing the parameters to be used by the sender. If not set, receiver will ask sender, which results in additional communication. experimental_enable_bucketize boolMust be same as sender config. experimental_enable_bucketize experimental_enable_bucketize  bool  bool  bool  bool Must be same as sender config. Must be same as sender config. experimental_bucket_cnt uint32Must be same as sender config. experimental_bucket_cnt experimental_bucket_cnt  uint32  uint32  uint32  uint32 Must be same as sender config. Must be same as sender config. query_batch_size uint32The number of query in a batch. default 1. query_batch_size query_batch_size  uint32  uint32  uint32  uint32 The number of query in a batch. default 1. The number of query in a batch. default 1.  "],[140,"For Senders (Servers), you must provide a input csv or a sender db file. An input csv file could be turned into a sender db file after setup. "],[127,"Here we present the APSI Benchmark measured as described above. Please note that we do not record the time taken during the server-side setup phase, as this process can always be completed offline. Additionally, only a small amount of performance data under specific data settings is presented here. This is because performance testing for APSI is quite complex; different data scales and label lengths require finding a corresponding set of parameters to achieve optimal performance. Therefore, the data settings here are intended to provide you with a rough reference. If you wish to measure the APSI performance for a specific data scale and label length, you can follow the steps outlined above to reproduce the results. Finally, to further optimize performance, a good understanding of the APSI algorithm principles is necessary. If you have any further inquiries related to PIR, please feel free to contact us. \nms represents millisecond.\n ms represents millisecond. ms                       Note that the above data does not represent the optimal performance of APSI. Under fixed data scale conditions, the query performance of APSI is highly correlated with the corresponding parameters. Additionally, if you want to support larger datasets, such as one billion data entries, we also offer a bucket mode. However, this mode requires consideration of more parameters, so it is not displayed in this benchmark. "],[157,"Here we show the PSI V2 Benchmark measured as above. \nThe default time unit is seconds, m represents minutes, and h represents hours.\n The default time unit is seconds, m represents minutes, and h represents hours. m h                                                                                                                                                                                                                                                                                         "],[151,"In order to measure the performance of different PSI protocols under different data scales, we need to generate dummy data through generate_psi.py generate_psi.py  "],[155,"In order to measure the PSI V2 benchmark under different machine configurations and network configurations, we use two dockers to act as sender and receiver respectively. alice  bob  "],[131,"In the first terminal, run the following command:  In the other terminal, run the following command simultaneously:  "],[162,"In the first terminal, run the following command:  In the other terminal, run the following command simultaneously:  "],[66,"IO configuration. FieldTypeDescriptiontype IoTypenonepath stringRequired for FILE. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description type IoTypenonepath stringRequired for FILE. type IoTypenone type type  IoType  IoType  IoType none none path stringRequired for FILE. path path  string  string  string  string Required for FILE. Required for FILE.  "],[63,"Logging level for default logger.\nDefault to info.\nSupports: \ntrace: SPDLOG_LEVEL_TRACE\ndebug: SPDLOG_LEVEL_DEBUG\ninfo: SPDLOG_LEVEL_INFO\nwarn: SPDLOG_LEVEL_WARN\nerr: SPDLOG_LEVEL_ERROR\ncritical: SPDLOG_LEVEL_CRITICAL\noff: SPDLOG_LEVEL_OFF\n trace: SPDLOG_LEVEL_TRACE debug: SPDLOG_LEVEL_DEBUG info: SPDLOG_LEVEL_INFO warn: SPDLOG_LEVEL_WARN err: SPDLOG_LEVEL_ERROR critical: SPDLOG_LEVEL_CRITICAL off: SPDLOG_LEVEL_OFF FieldTypeDescriptionlogging_level stringnonetrace_path stringThe path of trace. Deafult to /tmp/psi.trace FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description logging_level stringnonetrace_path stringThe path of trace. Deafult to /tmp/psi.trace logging_level stringnone logging_level logging_level  string  string  string  string none none trace_path stringThe path of trace. Deafult to /tmp/psi.trace trace_path trace_path  string  string  string  string The path of trace. Deafult to /tmp/psi.trace The path of trace. Deafult to /tmp/psi.trace  "],[79,"NameNumberDescriptionMODE_UNSPECIFIED0noneMODE_OFFLINE_GEN_CACHE1Servers generate cache only. First part of offline stage.MODE_OFFLINE_TRANSFER_CACHE2Servers send cache to clients only. Second part of offline stage.MODE_OFFLINE3Run offline stage.MODE_ONLINE4Run online stage.MODE_FULL5Run all stages. NameNumberDescription NameNumberDescription Name Name Number Number Description Description MODE_UNSPECIFIED0noneMODE_OFFLINE_GEN_CACHE1Servers generate cache only. First part of offline stage.MODE_OFFLINE_TRANSFER_CACHE2Servers send cache to clients only. Second part of offline stage.MODE_OFFLINE3Run offline stage.MODE_ONLINE4Run online stage.MODE_FULL5Run all stages. MODE_UNSPECIFIED0none MODE_UNSPECIFIED MODE_UNSPECIFIED 0 0 none none MODE_OFFLINE_GEN_CACHE1Servers generate cache only. First part of offline stage. MODE_OFFLINE_GEN_CACHE MODE_OFFLINE_GEN_CACHE 1 1 Servers generate cache only. First part of offline stage. Servers generate cache only. First part of offline stage. MODE_OFFLINE_TRANSFER_CACHE2Servers send cache to clients only. Second part of offline stage. MODE_OFFLINE_TRANSFER_CACHE MODE_OFFLINE_TRANSFER_CACHE 2 2 Servers send cache to clients only. Second part of offline stage. Servers send cache to clients only. Second part of offline stage. MODE_OFFLINE3Run offline stage. MODE_OFFLINE MODE_OFFLINE 3 3 Run offline stage. Run offline stage. MODE_ONLINE4Run online stage. MODE_ONLINE MODE_ONLINE 4 4 Run online stage. Run online stage. MODE_FULL5Run all stages. MODE_FULL MODE_FULL 5 5 Run all stages. Run all stages.  "],[120,"Note that for different data scales, we need to use different params_file. params_file  "],[122,"Note that for different data scales, we need to use different params_file. params_file  "],[56,"NOTE(junfeng): We provide a config identical to original APSI CLI.\nPlease check\nhttps://github.com/microsoft/APSI?tab=readme-ov-file#command-line-interface-cli\nfor details. https://github.com/microsoft/APSI?tab=readme-ov-file#command-line-interface-cli FieldTypeDescriptionthreads uint32Number of threads to uselog_file stringLog file path. For APSI only.silent boolDo not write output to console. For APSI only.log_level stringOne of ‘all’, ‘debug’, ‘info’ (default), ‘warning’, ‘error’, ‘off’. For APSI only.db_file stringPath to a CSV file describing the sender’s dataset (an item-label pair on each row) or a file containing a serialized SenderDB; the CLI will first attempt to load the data as a serialized SenderDB, and – upon failure – will proceed to attempt to read it as a CSV file For CSV File: 1. the first col is processed as item while the second col as label. OTHER COLS ARE IGNORED. 2. NO HEADERS ARE ALLOWED.params_file stringPath to a JSON file describing the parameters to be used by the sender. Not required if db_file points to a serialized SenderDB.sdb_out_file stringSave the SenderDB in the given file. Required if gen_db_only is set true. Use experimental_bucket_folder instead if you turn experimental_enable_bucketize on.nonce_byte_count uint32Number of bytes used for the nonce in labeled mode (default is 16)compress boolWhether to compress the SenderDB in memory; this will make the memory footprint smaller at the cost of increased computation.save_db_only boolWhether to save sender db only.experimental_enable_bucketize bool[experimental] Whether to split data in buckets and Each bucket would be a seperate SenderDB. If set, experimental_bucket_folder must be a valid folder.experimental_bucket_cnt uint32[experimental] The number of bucket to fit data.experimental_bucket_folder string[experimental] Folder to save bucketized small csv files and db files.experimental_db_generating_process_num int32[experimental] The number of processes to use for generating db.source_file stringSource file used to genenerate sender db. Currently only support csv file.experimental_bucket_group_cnt int32[experimental] The number of group of bucket, each group has a db_file, default 1024. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description threads uint32Number of threads to uselog_file stringLog file path. For APSI only.silent boolDo not write output to console. For APSI only.log_level stringOne of ‘all’, ‘debug’, ‘info’ (default), ‘warning’, ‘error’, ‘off’. For APSI only.db_file stringPath to a CSV file describing the sender’s dataset (an item-label pair on each row) or a file containing a serialized SenderDB; the CLI will first attempt to load the data as a serialized SenderDB, and – upon failure – will proceed to attempt to read it as a CSV file For CSV File: 1. the first col is processed as item while the second col as label. OTHER COLS ARE IGNORED. 2. NO HEADERS ARE ALLOWED.params_file stringPath to a JSON file describing the parameters to be used by the sender. Not required if db_file points to a serialized SenderDB.sdb_out_file stringSave the SenderDB in the given file. Required if gen_db_only is set true. Use experimental_bucket_folder instead if you turn experimental_enable_bucketize on.nonce_byte_count uint32Number of bytes used for the nonce in labeled mode (default is 16)compress boolWhether to compress the SenderDB in memory; this will make the memory footprint smaller at the cost of increased computation.save_db_only boolWhether to save sender db only.experimental_enable_bucketize bool[experimental] Whether to split data in buckets and Each bucket would be a seperate SenderDB. If set, experimental_bucket_folder must be a valid folder.experimental_bucket_cnt uint32[experimental] The number of bucket to fit data.experimental_bucket_folder string[experimental] Folder to save bucketized small csv files and db files.experimental_db_generating_process_num int32[experimental] The number of processes to use for generating db.source_file stringSource file used to genenerate sender db. Currently only support csv file.experimental_bucket_group_cnt int32[experimental] The number of group of bucket, each group has a db_file, default 1024. threads uint32Number of threads to use threads threads  uint32  uint32  uint32  uint32 Number of threads to use Number of threads to use log_file stringLog file path. For APSI only. log_file log_file  string  string  string  string Log file path. For APSI only. Log file path. For APSI only. silent boolDo not write output to console. For APSI only. silent silent  bool  bool  bool  bool Do not write output to console. For APSI only. Do not write output to console. For APSI only. log_level stringOne of ‘all’, ‘debug’, ‘info’ (default), ‘warning’, ‘error’, ‘off’. For APSI only. log_level log_level  string  string  string  string One of ‘all’, ‘debug’, ‘info’ (default), ‘warning’, ‘error’, ‘off’. For APSI only. One of ‘all’, ‘debug’, ‘info’ (default), ‘warning’, ‘error’, ‘off’. For APSI only. db_file stringPath to a CSV file describing the sender’s dataset (an item-label pair on each row) or a file containing a serialized SenderDB; the CLI will first attempt to load the data as a serialized SenderDB, and – upon failure – will proceed to attempt to read it as a CSV file For CSV File: 1. the first col is processed as item while the second col as label. OTHER COLS ARE IGNORED. 2. NO HEADERS ARE ALLOWED. db_file db_file  string  string  string  string Path to a CSV file describing the sender’s dataset (an item-label pair on each row) or a file containing a serialized SenderDB; the CLI will first attempt to load the data as a serialized SenderDB, and – upon failure – will proceed to attempt to read it as a CSV file For CSV File: 1. the first col is processed as item while the second col as label. OTHER COLS ARE IGNORED. 2. NO HEADERS ARE ALLOWED. Path to a CSV file describing the sender’s dataset (an item-label pair on each row) or a file containing a serialized SenderDB; the CLI will first attempt to load the data as a serialized SenderDB, and – upon failure – will proceed to attempt to read it as a CSV file For CSV File: 1. the first col is processed as item while the second col as label. OTHER COLS ARE IGNORED. 2. NO HEADERS ARE ALLOWED. params_file stringPath to a JSON file describing the parameters to be used by the sender. Not required if db_file points to a serialized SenderDB. params_file params_file  string  string  string  string Path to a JSON file describing the parameters to be used by the sender. Not required if db_file points to a serialized SenderDB. Path to a JSON file describing the parameters to be used by the sender. Not required if db_file points to a serialized SenderDB. sdb_out_file stringSave the SenderDB in the given file. Required if gen_db_only is set true. Use experimental_bucket_folder instead if you turn experimental_enable_bucketize on. sdb_out_file sdb_out_file  string  string  string  string Save the SenderDB in the given file. Required if gen_db_only is set true. Use experimental_bucket_folder instead if you turn experimental_enable_bucketize on. Save the SenderDB in the given file. Required if gen_db_only is set true. Use experimental_bucket_folder instead if you turn experimental_enable_bucketize on. nonce_byte_count uint32Number of bytes used for the nonce in labeled mode (default is 16) nonce_byte_count nonce_byte_count  uint32  uint32  uint32  uint32 Number of bytes used for the nonce in labeled mode (default is 16) Number of bytes used for the nonce in labeled mode (default is 16) compress boolWhether to compress the SenderDB in memory; this will make the memory footprint smaller at the cost of increased computation. compress compress  bool  bool  bool  bool Whether to compress the SenderDB in memory; this will make the memory footprint smaller at the cost of increased computation. Whether to compress the SenderDB in memory; this will make the memory footprint smaller at the cost of increased computation. save_db_only boolWhether to save sender db only. save_db_only save_db_only  bool  bool  bool  bool Whether to save sender db only. Whether to save sender db only. experimental_enable_bucketize bool[experimental] Whether to split data in buckets and Each bucket would be a seperate SenderDB. If set, experimental_bucket_folder must be a valid folder. experimental_enable_bucketize experimental_enable_bucketize  bool  bool  bool  bool [experimental] Whether to split data in buckets and Each bucket would be a seperate SenderDB. If set, experimental_bucket_folder must be a valid folder. [experimental] Whether to split data in buckets and Each bucket would be a seperate SenderDB. If set, experimental_bucket_folder must be a valid folder. experimental_bucket_cnt uint32[experimental] The number of bucket to fit data. experimental_bucket_cnt experimental_bucket_cnt  uint32  uint32  uint32  uint32 [experimental] The number of bucket to fit data. [experimental] The number of bucket to fit data. experimental_bucket_folder string[experimental] Folder to save bucketized small csv files and db files. experimental_bucket_folder experimental_bucket_folder  string  string  string  string [experimental] Folder to save bucketized small csv files and db files. [experimental] Folder to save bucketized small csv files and db files. experimental_db_generating_process_num int32[experimental] The number of processes to use for generating db. experimental_db_generating_process_num experimental_db_generating_process_num  int32  int32  int32  int32 [experimental] The number of processes to use for generating db. [experimental] The number of processes to use for generating db. source_file stringSource file used to genenerate sender db. Currently only support csv file. source_file source_file  string  string  string  string Source file used to genenerate sender db. Currently only support csv file. Source file used to genenerate sender db. Currently only support csv file. experimental_bucket_group_cnt int32[experimental] The number of group of bucket, each group has a db_file, default 1024. experimental_bucket_group_cnt experimental_bucket_group_cnt  int32  int32  int32  int32 [experimental] The number of group of bucket, each group has a db_file, default 1024. [experimental] The number of group of bucket, each group has a db_file, default 1024.  "],[102,"Party represents the basic information of the party. FieldTypeDescriptionname stringName of party.role stringrole carried by party. Examples: client, server…servicesrepeated ServiceList of services exposed by pod. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description name stringName of party.role stringrole carried by party. Examples: client, server…servicesrepeated ServiceList of services exposed by pod. name stringName of party. name name  string  string  string  string Name of party. Name of party. role stringrole carried by party. Examples: client, server… role role  string  string  string  string role carried by party. Examples: client, server… role carried by party. Examples: client, server… servicesrepeated ServiceList of services exposed by pod. services services repeated Service repeated Service repeated Service List of services exposed by pod. List of services exposed by pod.  "],[136,"PIR protocolsTypeServer NumberSealPIR(later)Index PIRSingle ServerAPSIKeyword PIRSingle Server PIR protocolsTypeServer Number PIR protocolsTypeServer Number PIR protocols PIR protocols Type Type Server Number Server Number SealPIR(later)Index PIRSingle ServerAPSIKeyword PIRSingle Server SealPIR(later)Index PIRSingle Server SealPIR(later) SealPIR(later) Index PIR Index PIR Single Server Single Server APSIKeyword PIRSingle Server APSI APSI Keyword PIR Keyword PIR Single Server Single Server At this moment, SealPIR is under development. "],[130,"Please check details of configs at here. To launch PSI, please check LaunchConfig at Launch Configuration. Launch Configuration receiver.config receiver.config receiver.config  sender.config sender.config sender.config  You need to prepare following files: File NameLocationDescriptionreceiver.config/tmp/receiver/receiver.configConfig for receiver.sender.config/tmp/sender/sender.configConfig for sender.receiver_input.csv/tmp/receiver/receiver_input.configInput for receiver. Make sure the file contains two id keys - id0 and id1.sender_input.csv/tmp/sender/sender_input.configInput for sender. Make sure the file contains two id keys - id0 and id1. File NameLocationDescription File NameLocationDescription File Name File Name Location Location Description Description receiver.config/tmp/receiver/receiver.configConfig for receiver.sender.config/tmp/sender/sender.configConfig for sender.receiver_input.csv/tmp/receiver/receiver_input.configInput for receiver. Make sure the file contains two id keys - id0 and id1.sender_input.csv/tmp/sender/sender_input.configInput for sender. Make sure the file contains two id keys - id0 and id1. receiver.config/tmp/receiver/receiver.configConfig for receiver. receiver.config receiver.config /tmp/receiver/receiver.config /tmp/receiver/receiver.config Config for receiver. Config for receiver. sender.config/tmp/sender/sender.configConfig for sender. sender.config sender.config /tmp/sender/sender.config /tmp/sender/sender.config Config for sender. Config for sender. receiver_input.csv/tmp/receiver/receiver_input.configInput for receiver. Make sure the file contains two id keys - id0 and id1. receiver_input.csv receiver_input.csv /tmp/receiver/receiver_input.config /tmp/receiver/receiver_input.config Input for receiver. Make sure the file contains two id keys - id0 and id1. Input for receiver. Make sure the file contains two id keys - id0 and id1. sender_input.csv/tmp/sender/sender_input.configInput for sender. Make sure the file contains two id keys - id0 and id1. sender_input.csv sender_input.csv /tmp/sender/sender_input.config /tmp/sender/sender_input.config Input for sender. Make sure the file contains two id keys - id0 and id1. Input for sender. Make sure the file contains two id keys - id0 and id1. "],[160,"Please check details of configs at PSI v1 Configuration. PSI v1 Configuration To launch PSI, please check LaunchConfig at Launch Configuration and fillin runtime_config.legacy_psi_config. Launch Configuration runtime_config.legacy_psi_config "],[33,"Please check Easy PSI handbook. Easy PSI handbook "],[25,"Please check official release docker image at dockerhub. We also have mirrors at Alibaba Cloud: secretflow-registry.cn-hangzhou.cr.aliyuncs.com/secretflow/psi-anolis8. dockerhub secretflow-registry.cn-hangzhou.cr.aliyuncs.com/secretflow/psi-anolis8 "],[94,"Please check psi.BucketPsiConfig at PSI v1 Configuration.\nPlease check psi.v2.PsiConfig and psi.v2.UbPsiConfig at PSI v2 Configuration. PSI v1 Configuration PSI v2 Configuration "],[31,"Please check SCQL Quickstart tutorial. SCQL Quickstart tutorial Featured operators using PSI:\nhttps://www.secretflow.org.cn/en/docs/scql/main/reference/operators#in\nhttps://www.secretflow.org.cn/en/docs/scql/main/reference/operators#join\n Featured operators using PSI:\nhttps://www.secretflow.org.cn/en/docs/scql/main/reference/operators#in\nhttps://www.secretflow.org.cn/en/docs/scql/main/reference/operators#join\n Featured operators using PSI: Featured operators using PSI: Featured operators using PSI: \nhttps://www.secretflow.org.cn/en/docs/scql/main/reference/operators#in\nhttps://www.secretflow.org.cn/en/docs/scql/main/reference/operators#join\n \nhttps://www.secretflow.org.cn/en/docs/scql/main/reference/operators#in\nhttps://www.secretflow.org.cn/en/docs/scql/main/reference/operators#join\n https://www.secretflow.org.cn/en/docs/scql/main/reference/operators#in https://www.secretflow.org.cn/en/docs/scql/main/reference/operators#in https://www.secretflow.org.cn/en/docs/scql/main/reference/operators#join https://www.secretflow.org.cn/en/docs/scql/main/reference/operators#join "],[29,"Please check SecretFlow Installation page. SecretFlow Installation page APIs: \n\nPSI v1:\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_df\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_csv\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_df\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_csv\n\n\n\nPSI v2:\nhttps://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_v2\n\n\n\nPIR:\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_setup\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_query\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_memory_query\nPIR Configuration: https://www.secretflow.org.cn/en/docs/psi/v0.5.0b0/reference/pir_config\n\n\n\nComponent: https://www.secretflow.org.cn/en/docs/secretflow/main/component/comp_list#psi\n\n \nPSI v1:\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_df\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_csv\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_df\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_csv\n\n PSI v1:\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_df\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_csv\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_df\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_csv\n PSI v1:\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_df\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_csv\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_df\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_csv\n PSI v1: PSI v1: PSI v1: \n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_df\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_csv\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_df\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_csv\n \n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_df\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_csv\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_df\n(Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_csv\n (Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_df https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_df (Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_csv https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_csv (Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_df https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_df (Deprecated) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_csv https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_join_csv \nPSI v2:\nhttps://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_v2\n\n PSI v2:\nhttps://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_v2\n PSI v2:\nhttps://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_v2\n PSI v2: PSI v2: PSI v2: \nhttps://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_v2\n \nhttps://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_v2\n https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_v2 https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.psi_v2 \nPIR:\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_setup\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_query\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_memory_query\nPIR Configuration: https://www.secretflow.org.cn/en/docs/psi/v0.5.0b0/reference/pir_config\n\n PIR:\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_setup\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_query\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_memory_query\nPIR Configuration: https://www.secretflow.org.cn/en/docs/psi/v0.5.0b0/reference/pir_config\n PIR:\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_setup\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_query\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_memory_query\nPIR Configuration: https://www.secretflow.org.cn/en/docs/psi/v0.5.0b0/reference/pir_config\n PIR: PIR: PIR: \n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_setup\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_query\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_memory_query\nPIR Configuration: https://www.secretflow.org.cn/en/docs/psi/v0.5.0b0/reference/pir_config\n \n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_setup\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_query\n(Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_memory_query\nPIR Configuration: https://www.secretflow.org.cn/en/docs/psi/v0.5.0b0/reference/pir_config\n (Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_setup https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_setup (Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_query https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_query (Deleted) https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_memory_query https://www.secretflow.org.cn/en/docs/secretflow/main/source/secretflow#secretflow.SPU.pir_memory_query PIR Configuration: https://www.secretflow.org.cn/en/docs/psi/v0.5.0b0/reference/pir_config https://www.secretflow.org.cn/en/docs/psi/v0.5.0b0/reference/pir_config \nComponent: https://www.secretflow.org.cn/en/docs/secretflow/main/component/comp_list#psi\n Component: https://www.secretflow.org.cn/en/docs/secretflow/main/component/comp_list#psi https://www.secretflow.org.cn/en/docs/secretflow/main/component/comp_list#psi "],[32,"Please check SecretPad handbook. SecretPad handbook "],[28,"Please check SPU Installation Guidelines. SPU Installation Guidelines APIs: https://www.secretflow.org.cn/en/docs/spu/main/reference/py_api https://www.secretflow.org.cn/en/docs/spu/main/reference/py_api "],[39,"Please create an issue at Github Issues. Github Issues We will look into issues and get back to you soon. "],[144,"Please read examples.\nFor more demo configs, you can check here. examples here "],[133,"Please read README,\nPlease check more demo configs at psi config. README psi config "],[26,"Please see Building. Building "],[103,"Port represents an allocated port for pod. FieldTypeDescriptionname stringEach named port in a pod must have a unique name.port int32Number of port allocated for pod.scope stringScope of port. Must be Cluster,Domain,Local. Defaults to “Local”. +optionalprotocol stringProtocol for port. Must be HTTP,GRPC. Defaults to “HTTP”. +optional FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description name stringEach named port in a pod must have a unique name.port int32Number of port allocated for pod.scope stringScope of port. Must be Cluster,Domain,Local. Defaults to “Local”. +optionalprotocol stringProtocol for port. Must be HTTP,GRPC. Defaults to “HTTP”. +optional name stringEach named port in a pod must have a unique name. name name  string  string  string  string Each named port in a pod must have a unique name. Each named port in a pod must have a unique name. port int32Number of port allocated for pod. port port  int32  int32  int32  int32 Number of port allocated for pod. Number of port allocated for pod. scope stringScope of port. Must be Cluster,Domain,Local. Defaults to “Local”. +optional scope scope  string  string  string  string Scope of port. Must be Cluster,Domain,Local. Defaults to “Local”. +optional Scope of port. Must be Cluster,Domain,Local. Defaults to “Local”. +optional protocol stringProtocol for port. Must be HTTP,GRPC. Defaults to “HTTP”. +optional protocol protocol  string  string  string  string Protocol for port. Must be HTTP,GRPC. Defaults to “HTTP”. +optional Protocol for port. Must be HTTP,GRPC. Defaults to “HTTP”. +optional  "],[76,"PSI protocols. NameNumberDescriptionPROTOCOL_UNSPECIFIED0nonePROTOCOL_ECDH1[Mea86]C. Meadows, “A More Efficient Cryptographic Matchmaking Protocol for Use in the Absence of a Continuously Available Third Party,” 1986 IEEE Symposium on Security and Privacy, Oakland, CA, USA, 1986, pp. 134-134, doi: 10.1109/SP.1986.10022.PROTOCOL_KKRT2Efficient Batched Oblivious PRF with Applications to Private Set Intersection https://eprint.iacr.org/2016/799.pdfPROTOCOL_RR223Blazing Fast PSI https://eprint.iacr.org/2022/320.pdf NameNumberDescription NameNumberDescription Name Name Number Number Description Description PROTOCOL_UNSPECIFIED0nonePROTOCOL_ECDH1[Mea86]C. Meadows, “A More Efficient Cryptographic Matchmaking Protocol for Use in the Absence of a Continuously Available Third Party,” 1986 IEEE Symposium on Security and Privacy, Oakland, CA, USA, 1986, pp. 134-134, doi: 10.1109/SP.1986.10022.PROTOCOL_KKRT2Efficient Batched Oblivious PRF with Applications to Private Set Intersection https://eprint.iacr.org/2016/799.pdfPROTOCOL_RR223Blazing Fast PSI https://eprint.iacr.org/2022/320.pdf PROTOCOL_UNSPECIFIED0none PROTOCOL_UNSPECIFIED PROTOCOL_UNSPECIFIED 0 0 none none PROTOCOL_ECDH1[Mea86]C. Meadows, “A More Efficient Cryptographic Matchmaking Protocol for Use in the Absence of a Continuously Available Third Party,” 1986 IEEE Symposium on Security and Privacy, Oakland, CA, USA, 1986, pp. 134-134, doi: 10.1109/SP.1986.10022. PROTOCOL_ECDH PROTOCOL_ECDH 1 1 [Mea86]C. Meadows, “A More Efficient Cryptographic Matchmaking Protocol for Use in the Absence of a Continuously Available Third Party,” 1986 IEEE Symposium on Security and Privacy, Oakland, CA, USA, 1986, pp. 134-134, doi: 10.1109/SP.1986.10022. [Mea86]C. Meadows, “A More Efficient Cryptographic Matchmaking Protocol for Use in the Absence of a Continuously Available Third Party,” 1986 IEEE Symposium on Security and Privacy, Oakland, CA, USA, 1986, pp. 134-134, doi: 10.1109/SP.1986.10022. PROTOCOL_KKRT2Efficient Batched Oblivious PRF with Applications to Private Set Intersection https://eprint.iacr.org/2016/799.pdf PROTOCOL_KKRT PROTOCOL_KKRT 2 2 Efficient Batched Oblivious PRF with Applications to Private Set Intersection https://eprint.iacr.org/2016/799.pdf Efficient Batched Oblivious PRF with Applications to Private Set Intersection https://eprint.iacr.org/2016/799.pdf https://eprint.iacr.org/2016/799.pdf PROTOCOL_RR223Blazing Fast PSI https://eprint.iacr.org/2022/320.pdf PROTOCOL_RR22 PROTOCOL_RR22 3 3 Blazing Fast PSI https://eprint.iacr.org/2022/320.pdf Blazing Fast PSI https://eprint.iacr.org/2022/320.pdf https://eprint.iacr.org/2022/320.pdf "],[115,"PSI v2 is recommended to use. We are still working on PIR code refactoring. \nPSI v1 QuickStart (Deprecated)\nPSI v2 QuickStart\nPIR QuickStart\nFrequently Asked Questions (FAQ)\nPSI V2 Benchmark\nAPSI Benchmark\n \nPSI v1 QuickStart (Deprecated)\nPSI v2 QuickStart\nPIR QuickStart\nFrequently Asked Questions (FAQ)\nPSI V2 Benchmark\nAPSI Benchmark\n PSI v1 QuickStart (Deprecated) PSI v1 QuickStart (Deprecated) PSI v2 QuickStart PSI v2 QuickStart PIR QuickStart PIR QuickStart Frequently Asked Questions (FAQ) Frequently Asked Questions (FAQ) PSI V2 Benchmark PSI V2 Benchmark APSI Benchmark APSI Benchmark "],[158,"Quick start with Private Set Intersection (PSI) V1 APIs. "],[135,"Quick start with SPU Private Information Retrival (PIR). "],[111,"Retry options. FieldTypeDescriptionmax_retry uint32max retry count default 3retry_interval_ms uint32time between retries at first retry default 1 secondretry_interval_incr_ms uint32The amount of time to increase the interval between retries default 2smax_retry_interval_ms uint32The maximum interval between retries default 10serror_codesrepeated uint32retry on these brpc error codes, if empty, retry on all codeshttp_codesrepeated uint32retry on these http codes, if empty, retry on all http codesaggressive_retry booldo aggressive retry， this means that retries will be made on additional error codes FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description max_retry uint32max retry count default 3retry_interval_ms uint32time between retries at first retry default 1 secondretry_interval_incr_ms uint32The amount of time to increase the interval between retries default 2smax_retry_interval_ms uint32The maximum interval between retries default 10serror_codesrepeated uint32retry on these brpc error codes, if empty, retry on all codeshttp_codesrepeated uint32retry on these http codes, if empty, retry on all http codesaggressive_retry booldo aggressive retry， this means that retries will be made on additional error codes max_retry uint32max retry count default 3 max_retry max_retry  uint32  uint32  uint32  uint32 max retry count default 3 max retry count default 3 retry_interval_ms uint32time between retries at first retry default 1 second retry_interval_ms retry_interval_ms  uint32  uint32  uint32  uint32 time between retries at first retry default 1 second time between retries at first retry default 1 second retry_interval_incr_ms uint32The amount of time to increase the interval between retries default 2s retry_interval_incr_ms retry_interval_incr_ms  uint32  uint32  uint32  uint32 The amount of time to increase the interval between retries default 2s The amount of time to increase the interval between retries default 2s max_retry_interval_ms uint32The maximum interval between retries default 10s max_retry_interval_ms max_retry_interval_ms  uint32  uint32  uint32  uint32 The maximum interval between retries default 10s The maximum interval between retries default 10s error_codesrepeated uint32retry on these brpc error codes, if empty, retry on all codes error_codes error_codes repeated uint32 repeated uint32 repeated uint32 repeated uint32 retry on these brpc error codes, if empty, retry on all codes retry on these brpc error codes, if empty, retry on all codes http_codesrepeated uint32retry on these http codes, if empty, retry on all http codes http_codes http_codes repeated uint32 repeated uint32 repeated uint32 repeated uint32 retry on these http codes, if empty, retry on all http codes retry on these http codes, if empty, retry on all http codes aggressive_retry booldo aggressive retry， this means that retries will be made on additional error codes aggressive_retry aggressive_retry  bool  bool  bool  bool do aggressive retry， this means that retries will be made on additional error codes do aggressive retry， this means that retries will be made on additional error codes  "],[78,"Role of parties. NameNumberDescriptionROLE_UNSPECIFIED0noneROLE_RECEIVER1receiver In 2P symmetric PSI, receivers would always receive the result in the origin protocol.ROLE_SENDER2sender In 2P symmetric PSI, senders are the other participants apart from receiver.ROLE_SERVER3server In 2P unbalanced PSI, servers own a much larger dataset.ROLE_CLIENT4server In 2P unbalanced PSI, clients own a much smaller dataset. NameNumberDescription NameNumberDescription Name Name Number Number Description Description ROLE_UNSPECIFIED0noneROLE_RECEIVER1receiver In 2P symmetric PSI, receivers would always receive the result in the origin protocol.ROLE_SENDER2sender In 2P symmetric PSI, senders are the other participants apart from receiver.ROLE_SERVER3server In 2P unbalanced PSI, servers own a much larger dataset.ROLE_CLIENT4server In 2P unbalanced PSI, clients own a much smaller dataset. ROLE_UNSPECIFIED0none ROLE_UNSPECIFIED ROLE_UNSPECIFIED 0 0 none none ROLE_RECEIVER1receiver In 2P symmetric PSI, receivers would always receive the result in the origin protocol. ROLE_RECEIVER ROLE_RECEIVER 1 1 receiver In 2P symmetric PSI, receivers would always receive the result in the origin protocol. receiver In 2P symmetric PSI, receivers would always receive the result in the origin protocol. ROLE_SENDER2sender In 2P symmetric PSI, senders are the other participants apart from receiver. ROLE_SENDER ROLE_SENDER 2 2 sender In 2P symmetric PSI, senders are the other participants apart from receiver. sender In 2P symmetric PSI, senders are the other participants apart from receiver. ROLE_SERVER3server In 2P unbalanced PSI, servers own a much larger dataset. ROLE_SERVER ROLE_SERVER 3 3 server In 2P unbalanced PSI, servers own a much larger dataset. server In 2P unbalanced PSI, servers own a much larger dataset. ROLE_CLIENT4server In 2P unbalanced PSI, clients own a much smaller dataset. ROLE_CLIENT ROLE_CLIENT 4 4 server In 2P unbalanced PSI, clients own a much smaller dataset. server In 2P unbalanced PSI, clients own a much smaller dataset. "],[145,"Searching in a large sender db is costly. So we can split data into buckets.\nThe server knows which bucket the client is querying, but does not know which specific element: In the setup stage, sender split data into buckets. Each bucket will generate a sender db. In the online stage, receiver split query into subqueries. Each subquery only contains items residing in the same bucket.\nWhen receivers sends a subquery to the sender, bucket idx is also provided. For each subquery, sender only search in the corresponding sender db for specific bucket. Assuming the query indindiscernibility degree is \\text{ind_degree}, and sender has \\text{sender_data_rows} rows,\nthen the number of buckets should be \\text{bucket_num} = \\text{sender_data_rows} / \\text{ind_degree}, you can set experimental_bucket_cnt with \\text{bucket_num}.\nIf the client has \\text{query_rows} rows of data, the we know client has \\text{query_rows_per_bucket} = \\text{query_rows} / \\text{bucket_num} rows per bucket,\nwe can select \\text{ind_degree}-\\text{query_rows_per_bucket}-xxx.json as params_file. \\text{ind_degree} \\text{ind_degree} \\text{sender_data_rows} \\text{sender_data_rows} \\text{bucket_num} = \\text{sender_data_rows} / \\text{ind_degree} \\text{bucket_num} = \\text{sender_data_rows} / \\text{ind_degree} \\text{bucket_num} \\text{bucket_num} \\text{query_rows} \\text{query_rows} \\text{query_rows_per_bucket} = \\text{query_rows} / \\text{bucket_num} \\text{query_rows_per_bucket} = \\text{query_rows} / \\text{bucket_num} \\text{ind_degree} \\text{ind_degree} \\text{query_rows_per_bucket} \\text{query_rows_per_bucket} "],[41,"SecretFlow SPU implements the following PSI protocols, \nSemi-honest ECDH-based two-party PSI protocol [HFH99]\nSemi-honest ECDH-based three-party PSI protocol\nSemi-honest OT-based two-party PSI protocol [KKRT16]\nDifferentially Private (DP) PSI Protocol [DP-PSI]\nUnbalanced PSI Protocol\nSemi-honest and Malicious VOLE-based two-party PSI protocol [RS21] [RR22]\n Semi-honest ECDH-based two-party PSI protocol [HFH99] [HFH99] Semi-honest ECDH-based three-party PSI protocol Semi-honest OT-based two-party PSI protocol [KKRT16] [KKRT16] Differentially Private (DP) PSI Protocol [DP-PSI] [DP-PSI] Unbalanced PSI Protocol Semi-honest and Malicious VOLE-based two-party PSI protocol [RS21] [RR22] [RS21] [RR22] "],[143,"Sender: Setup Stage. In this stage, sender generates sender db file with csv file. This stage is offline.\nSince version 0.4.0b0, the source csv file for db generating should be specified as source_file, and db_file\nis used to specify the generated db file. 0.4.0b0 source_file db_file apsi_sender_setup.json apsi_sender_setup.json apsi_sender_setup.json  Sender: Online stage. In this stage, sender generates responses to receivers’ queries. This stage is online. apsi_sender_online.json apsi_sender_online.json apsi_sender_online.json  Receiver: Online stage. apsi_receiver.json apsi_receiver.json apsi_receiver.json  params_file field is optional. If not provided, receiver will ask sender for params. If provided, please make sure you provide the same one to sender’s. "],[104,"Service represents the service address corresponding to the port. FieldTypeDescriptionport_name stringName of port.endpointsrepeated stringEndpoint list corresponding to the port. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description port_name stringName of port.endpointsrepeated stringEndpoint list corresponding to the port. port_name stringName of port. port_name port_name  string  string  string  string Name of port. Name of port. endpointsrepeated stringEndpoint list corresponding to the port. endpoints endpoints repeated string repeated string repeated string repeated string Endpoint list corresponding to the port. Endpoint list corresponding to the port.  "],[48,"Somewhat homomorphic encryption (SHE) can be used to build efficient (labeled) Private Set Intersection\nprotocols in the unbalanced setting, where one of the sets is much larger than the other.\n[CMGD+21] introduces several optimizations and improvements to the protocols of\n[CLR17], [CHLR18], resulting in improved running time and improved communication complexity in the\nsender’s set size. [CMGD+21] [CLR17] [CHLR18] Microsoft APSI (Asymmetric PSI)  library provides a PSI functionality\nfor asymmetric set sizes based on the latest [CMGD+21].  APSI uses the BFV([FV12]) encryption scheme implemented\nin the Microsoft [SEAL] library. APSI (Asymmetric PSI) [CMGD+21] [FV12] [SEAL] SecretFlow SPU wraps APSI library, can be used for APSI \nUnbalanced PSI\nMalicious PSI\nLabeled PSI\nKeyword PIR\n Unbalanced PSI Malicious PSI Labeled PSI Keyword PIR    \nSetup Phase\n\nChoose ItemParams, TableParams, QueryParams, SEALParams.\nSender’s OPRF: The sender samples a key β\\betaβ for the OPRF, updates its items set\nto {{H2(si,H1(si)β)}}si∈S\\{\\{H_2(s_i,{H_1(s_i)}^\\beta)\\}\\}_{s_i\\in S}{{H2​(si​,H1​(si​)β)}}si​∈S​.\nSender’s Hashing: Sender inserts all si∈Ss_i\\in Ssi​∈S into the sets B[h0(si)]\\mathcal{B}[h_0(s_i)]B[h0​(si​)],\nB[h1(si)]\\mathcal{B}[h_1(s_i)]B[h1​(si​)] and B[h2(si)]\\mathcal{B}[h_2(s_i)]B[h2​(si​)].\nSplitting: For each set B[i]\\mathcal{B}[i]B[i], the sender splits it into bin bundles, denoted as\nB[i,1]\\mathcal{B}[i,1]B[i,1], …, B[i,k]\\mathcal{B}[i,k]B[i,k].\nComputing Coeffcients:\n\nMatching Polynomial: For each bin bundle B[i,j]\\mathcal{B}[i,j]B[i,j], the sender computes the\nmatching polynomial over Ft\\mathbb{F}_tFt​.\nLabel Polynomial: If the sender has labels associated with its set, then for each bin bundle\nB[i,j]\\mathcal{B}[i,j]B[i,j], the sender interpolates the label polynomial over Ft\\mathbb{F}_tFt​.\n\n\n\n\nIntersection Phase\n\nReceiver Encrypt ri∈Rr_i \\in Rri​∈R.\n\nReceiver’s OPRF: Receiver and Sender run ecdh-OPRF protocol, get\n{{H2(ri,H1(ri)β)}}ri∈R\\{\\{H_2(r_i,{H_1(r_i)}^\\beta)\\}\\}_{r_i\\in R}{{H2​(ri​,H1​(ri​)β)}}ri​∈R​.\nReceiver’s CuckooHash: Receiver performs cuckoo hashing on the set RRR into CuckooTable C with m bins\nusing h1; h2; h3 has the hash functions.\nPacking: Receiver packs items in CuckooTable C into a FHE plaintext polynomial.\nWindowsing: the receiver computes the component-wise query powers.\nEncrypt: The receiver uses FHE.Encrypt to encrypt query powers and sends the ciphertexts to the sender.\n\n\nSender Homomorphically evaluate Matching Polynomial: The sender receives the collection of\nciphertexts and homomorphically evaluates Matching Polynomial. If Labeled PSI is desired, Sender homomorphically evaluates\nLabel Polynomial. The sender sends evaluated ciphertexts to Receiver.\nReceiver Decrypt and Get result: receiver receives and decrypts the matching ciphertexts, and labels\nciphertexts if needed, outputs the matching set and labels.\n\n\n Setup Phase\n\nChoose ItemParams, TableParams, QueryParams, SEALParams.\nSender’s OPRF: The sender samples a key β\\betaβ for the OPRF, updates its items set\nto {{H2(si,H1(si)β)}}si∈S\\{\\{H_2(s_i,{H_1(s_i)}^\\beta)\\}\\}_{s_i\\in S}{{H2​(si​,H1​(si​)β)}}si​∈S​.\nSender’s Hashing: Sender inserts all si∈Ss_i\\in Ssi​∈S into the sets B[h0(si)]\\mathcal{B}[h_0(s_i)]B[h0​(si​)],\nB[h1(si)]\\mathcal{B}[h_1(s_i)]B[h1​(si​)] and B[h2(si)]\\mathcal{B}[h_2(s_i)]B[h2​(si​)].\nSplitting: For each set B[i]\\mathcal{B}[i]B[i], the sender splits it into bin bundles, denoted as\nB[i,1]\\mathcal{B}[i,1]B[i,1], …, B[i,k]\\mathcal{B}[i,k]B[i,k].\nComputing Coeffcients:\n\nMatching Polynomial: For each bin bundle B[i,j]\\mathcal{B}[i,j]B[i,j], the sender computes the\nmatching polynomial over Ft\\mathbb{F}_tFt​.\nLabel Polynomial: If the sender has labels associated with its set, then for each bin bundle\nB[i,j]\\mathcal{B}[i,j]B[i,j], the sender interpolates the label polynomial over Ft\\mathbb{F}_tFt​.\n\n\n\n \nChoose ItemParams, TableParams, QueryParams, SEALParams.\nSender’s OPRF: The sender samples a key β\\betaβ for the OPRF, updates its items set\nto {{H2(si,H1(si)β)}}si∈S\\{\\{H_2(s_i,{H_1(s_i)}^\\beta)\\}\\}_{s_i\\in S}{{H2​(si​,H1​(si​)β)}}si​∈S​.\nSender’s Hashing: Sender inserts all si∈Ss_i\\in Ssi​∈S into the sets B[h0(si)]\\mathcal{B}[h_0(s_i)]B[h0​(si​)],\nB[h1(si)]\\mathcal{B}[h_1(s_i)]B[h1​(si​)] and B[h2(si)]\\mathcal{B}[h_2(s_i)]B[h2​(si​)].\nSplitting: For each set B[i]\\mathcal{B}[i]B[i], the sender splits it into bin bundles, denoted as\nB[i,1]\\mathcal{B}[i,1]B[i,1], …, B[i,k]\\mathcal{B}[i,k]B[i,k].\nComputing Coeffcients:\n\nMatching Polynomial: For each bin bundle B[i,j]\\mathcal{B}[i,j]B[i,j], the sender computes the\nmatching polynomial over Ft\\mathbb{F}_tFt​.\nLabel Polynomial: If the sender has labels associated with its set, then for each bin bundle\nB[i,j]\\mathcal{B}[i,j]B[i,j], the sender interpolates the label polynomial over Ft\\mathbb{F}_tFt​.\n\n\n Choose ItemParams, TableParams, QueryParams, SEALParams. Choose ItemParams Sender’s OPRF: The sender samples a key β\\betaβ for the OPRF, updates its items set\nto {{H2(si,H1(si)β)}}si∈S\\{\\{H_2(s_i,{H_1(s_i)}^\\beta)\\}\\}_{s_i\\in S}{{H2​(si​,H1​(si​)β)}}si​∈S​. Sender’s OPRF β\\betaβ β\\betaβ β\\beta β\\beta β\\beta β β \\beta β β  β {{H2(si,H1(si)β)}}si∈S\\{\\{H_2(s_i,{H_1(s_i)}^\\beta)\\}\\}_{s_i\\in S}{{H2​(si​,H1​(si​)β)}}si​∈S​ {{H2(si,H1(si)β)}}si∈S\\{\\{H_2(s_i,{H_1(s_i)}^\\beta)\\}\\}_{s_i\\in S}{{H2​(si​,H1​(si​)β)}}si​∈S​ {{H2(si,H1(si)β)}}si∈S\\{\\{H_2(s_i,{H_1(s_i)}^\\beta)\\}\\}_{s_i\\in S} {{H2(si,H1(si)β)}}si∈S\\{\\{H_2(s_i,{H_1(s_i)}^\\beta)\\}\\}_{s_i\\in S} {{H2(si,H1(si)β)}}si∈S\\{\\{H_2(s_i,{H_1(s_i)}^\\beta)\\}\\}_{s_i\\in S} {{H2(si,H1(si)β)}}si∈S { { H2 H 2 ( si s i , H1(si)β H1(si) H1 H 1 ( si s i ) β ) } }si∈S } si∈S si s i ∈ S \\{\\{H_2(s_i,{H_1(s_i)}^\\beta)\\}\\}_{s_i\\in S} {{H2​(si​,H1​(si​)β)}}si​∈S​ {{H2​(si​,H1​(si​)β)}}si​∈S​  {{ H2​ H 2​ 2​ 2​ 2 2  2 2 ​    ( si​ s i​ i​ i​ i i  i i ​    ,  H1​(si​)β H1​(si​) H1​ H 1​ 1​ 1​ 1 1  1 1 ​    ( si​ s i​ i​ i​ i i  i i ​    ) β β β β β  β β )} }si​∈S​ } si​∈S​ si​∈S​ si​∈S​ si​∈S si​∈S  si​∈S si​∈S si​ s i​ i​ i​ i i  i i ​    ∈ S ​    Sender’s Hashing: Sender inserts all si∈Ss_i\\in Ssi​∈S into the sets B[h0(si)]\\mathcal{B}[h_0(s_i)]B[h0​(si​)],\nB[h1(si)]\\mathcal{B}[h_1(s_i)]B[h1​(si​)] and B[h2(si)]\\mathcal{B}[h_2(s_i)]B[h2​(si​)]. Sender’s Hashing si∈Ss_i\\in Ssi​∈S si∈Ss_i\\in Ssi​∈S si∈Ss_i\\in S si∈Ss_i\\in S si∈Ss_i\\in S si∈S si s i ∈ S s_i\\in S si​∈S si​∈  si​ s i​ i​ i​ i i  i i ​     ∈  S  S B[h0(si)]\\mathcal{B}[h_0(s_i)]B[h0​(si​)] B[h0(si)]\\mathcal{B}[h_0(s_i)]B[h0​(si​)] B[h0(si)]\\mathcal{B}[h_0(s_i)] B[h0(si)]\\mathcal{B}[h_0(s_i)] B[h0(si)]\\mathcal{B}[h_0(s_i)] B[h0(si)] B [ h0 h 0 ( si s i ) ] \\mathcal{B}[h_0(s_i)] B[h0​(si​)] B[h0​(si​)]  B [ h0​ h 0​ 0​ 0​ 0 0  0 0 ​    ( si​ s i​ i​ i​ i i  i i ​    )] B[h1(si)]\\mathcal{B}[h_1(s_i)]B[h1​(si​)] B[h1(si)]\\mathcal{B}[h_1(s_i)]B[h1​(si​)] B[h1(si)]\\mathcal{B}[h_1(s_i)] B[h1(si)]\\mathcal{B}[h_1(s_i)] B[h1(si)]\\mathcal{B}[h_1(s_i)] B[h1(si)] B [ h1 h 1 ( si s i ) ] \\mathcal{B}[h_1(s_i)] B[h1​(si​)] B[h1​(si​)]  B [ h1​ h 1​ 1​ 1​ 1 1  1 1 ​    ( si​ s i​ i​ i​ i i  i i ​    )] B[h2(si)]\\mathcal{B}[h_2(s_i)]B[h2​(si​)] B[h2(si)]\\mathcal{B}[h_2(s_i)]B[h2​(si​)] B[h2(si)]\\mathcal{B}[h_2(s_i)] B[h2(si)]\\mathcal{B}[h_2(s_i)] B[h2(si)]\\mathcal{B}[h_2(s_i)] B[h2(si)] B [ h2 h 2 ( si s i ) ] \\mathcal{B}[h_2(s_i)] B[h2​(si​)] B[h2​(si​)]  B [ h2​ h 2​ 2​ 2​ 2 2  2 2 ​    ( si​ s i​ i​ i​ i i  i i ​    )] Splitting: For each set B[i]\\mathcal{B}[i]B[i], the sender splits it into bin bundles, denoted as\nB[i,1]\\mathcal{B}[i,1]B[i,1], …, B[i,k]\\mathcal{B}[i,k]B[i,k]. Splitting B[i]\\mathcal{B}[i]B[i] B[i]\\mathcal{B}[i]B[i] B[i]\\mathcal{B}[i] B[i]\\mathcal{B}[i] B[i]\\mathcal{B}[i] B[i] B [ i ] \\mathcal{B}[i] B[i] B[i]  B [ i ] B[i,1]\\mathcal{B}[i,1]B[i,1] B[i,1]\\mathcal{B}[i,1]B[i,1] B[i,1]\\mathcal{B}[i,1] B[i,1]\\mathcal{B}[i,1] B[i,1]\\mathcal{B}[i,1] B[i,1] B [ i , 1 ] \\mathcal{B}[i,1] B[i,1] B[i,1]  B [ i ,  1 ] B[i,k]\\mathcal{B}[i,k]B[i,k] B[i,k]\\mathcal{B}[i,k]B[i,k] B[i,k]\\mathcal{B}[i,k] B[i,k]\\mathcal{B}[i,k] B[i,k]\\mathcal{B}[i,k] B[i,k] B [ i , k ] \\mathcal{B}[i,k] B[i,k] B[i,k]  B [ i ,  k ] Computing Coeffcients:\n\nMatching Polynomial: For each bin bundle B[i,j]\\mathcal{B}[i,j]B[i,j], the sender computes the\nmatching polynomial over Ft\\mathbb{F}_tFt​.\nLabel Polynomial: If the sender has labels associated with its set, then for each bin bundle\nB[i,j]\\mathcal{B}[i,j]B[i,j], the sender interpolates the label polynomial over Ft\\mathbb{F}_tFt​.\n\n Computing Coeffcients \nMatching Polynomial: For each bin bundle B[i,j]\\mathcal{B}[i,j]B[i,j], the sender computes the\nmatching polynomial over Ft\\mathbb{F}_tFt​.\nLabel Polynomial: If the sender has labels associated with its set, then for each bin bundle\nB[i,j]\\mathcal{B}[i,j]B[i,j], the sender interpolates the label polynomial over Ft\\mathbb{F}_tFt​.\n Matching Polynomial: For each bin bundle B[i,j]\\mathcal{B}[i,j]B[i,j], the sender computes the\nmatching polynomial over Ft\\mathbb{F}_tFt​. Matching Polynomial B[i,j]\\mathcal{B}[i,j]B[i,j] B[i,j]\\mathcal{B}[i,j]B[i,j] B[i,j]\\mathcal{B}[i,j] B[i,j]\\mathcal{B}[i,j] B[i,j]\\mathcal{B}[i,j] B[i,j] B [ i , j ] \\mathcal{B}[i,j] B[i,j] B[i,j]  B [ i ,  j ] Ft\\mathbb{F}_tFt​ Ft\\mathbb{F}_tFt​ Ft\\mathbb{F}_t Ft\\mathbb{F}_t Ft\\mathbb{F}_t Ft Ft F t \\mathbb{F}_t Ft​ Ft​  Ft​ F t​ t​ t​ t t  t t ​    Label Polynomial: If the sender has labels associated with its set, then for each bin bundle\nB[i,j]\\mathcal{B}[i,j]B[i,j], the sender interpolates the label polynomial over Ft\\mathbb{F}_tFt​. Label Polynomial B[i,j]\\mathcal{B}[i,j]B[i,j] B[i,j]\\mathcal{B}[i,j]B[i,j] B[i,j]\\mathcal{B}[i,j] B[i,j]\\mathcal{B}[i,j] B[i,j]\\mathcal{B}[i,j] B[i,j] B [ i , j ] \\mathcal{B}[i,j] B[i,j] B[i,j]  B [ i ,  j ] Ft\\mathbb{F}_tFt​ Ft\\mathbb{F}_tFt​ Ft\\mathbb{F}_t Ft\\mathbb{F}_t Ft\\mathbb{F}_t Ft Ft F t \\mathbb{F}_t Ft​ Ft​  Ft​ F t​ t​ t​ t t  t t ​    Intersection Phase\n\nReceiver Encrypt ri∈Rr_i \\in Rri​∈R.\n\nReceiver’s OPRF: Receiver and Sender run ecdh-OPRF protocol, get\n{{H2(ri,H1(ri)β)}}ri∈R\\{\\{H_2(r_i,{H_1(r_i)}^\\beta)\\}\\}_{r_i\\in R}{{H2​(ri​,H1​(ri​)β)}}ri​∈R​.\nReceiver’s CuckooHash: Receiver performs cuckoo hashing on the set RRR into CuckooTable C with m bins\nusing h1; h2; h3 has the hash functions.\nPacking: Receiver packs items in CuckooTable C into a FHE plaintext polynomial.\nWindowsing: the receiver computes the component-wise query powers.\nEncrypt: The receiver uses FHE.Encrypt to encrypt query powers and sends the ciphertexts to the sender.\n\n\nSender Homomorphically evaluate Matching Polynomial: The sender receives the collection of\nciphertexts and homomorphically evaluates Matching Polynomial. If Labeled PSI is desired, Sender homomorphically evaluates\nLabel Polynomial. The sender sends evaluated ciphertexts to Receiver.\nReceiver Decrypt and Get result: receiver receives and decrypts the matching ciphertexts, and labels\nciphertexts if needed, outputs the matching set and labels.\n\n \nReceiver Encrypt ri∈Rr_i \\in Rri​∈R.\n\nReceiver’s OPRF: Receiver and Sender run ecdh-OPRF protocol, get\n{{H2(ri,H1(ri)β)}}ri∈R\\{\\{H_2(r_i,{H_1(r_i)}^\\beta)\\}\\}_{r_i\\in R}{{H2​(ri​,H1​(ri​)β)}}ri​∈R​.\nReceiver’s CuckooHash: Receiver performs cuckoo hashing on the set RRR into CuckooTable C with m bins\nusing h1; h2; h3 has the hash functions.\nPacking: Receiver packs items in CuckooTable C into a FHE plaintext polynomial.\nWindowsing: the receiver computes the component-wise query powers.\nEncrypt: The receiver uses FHE.Encrypt to encrypt query powers and sends the ciphertexts to the sender.\n\n\nSender Homomorphically evaluate Matching Polynomial: The sender receives the collection of\nciphertexts and homomorphically evaluates Matching Polynomial. If Labeled PSI is desired, Sender homomorphically evaluates\nLabel Polynomial. The sender sends evaluated ciphertexts to Receiver.\nReceiver Decrypt and Get result: receiver receives and decrypts the matching ciphertexts, and labels\nciphertexts if needed, outputs the matching set and labels.\n Receiver Encrypt ri∈Rr_i \\in Rri​∈R.\n\nReceiver’s OPRF: Receiver and Sender run ecdh-OPRF protocol, get\n{{H2(ri,H1(ri)β)}}ri∈R\\{\\{H_2(r_i,{H_1(r_i)}^\\beta)\\}\\}_{r_i\\in R}{{H2​(ri​,H1​(ri​)β)}}ri​∈R​.\nReceiver’s CuckooHash: Receiver performs cuckoo hashing on the set RRR into CuckooTable C with m bins\nusing h1; h2; h3 has the hash functions.\nPacking: Receiver packs items in CuckooTable C into a FHE plaintext polynomial.\nWindowsing: the receiver computes the component-wise query powers.\nEncrypt: The receiver uses FHE.Encrypt to encrypt query powers and sends the ciphertexts to the sender.\n\n ri∈Rr_i \\in Rri​∈R ri∈Rr_i \\in Rri​∈R ri∈Rr_i \\in R ri∈Rr_i \\in R ri∈Rr_i \\in R ri∈R ri r i ∈ R r_i \\in R ri​∈R ri​∈  ri​ r i​ i​ i​ i i  i i ​     ∈  R  R \nReceiver’s OPRF: Receiver and Sender run ecdh-OPRF protocol, get\n{{H2(ri,H1(ri)β)}}ri∈R\\{\\{H_2(r_i,{H_1(r_i)}^\\beta)\\}\\}_{r_i\\in R}{{H2​(ri​,H1​(ri​)β)}}ri​∈R​.\nReceiver’s CuckooHash: Receiver performs cuckoo hashing on the set RRR into CuckooTable C with m bins\nusing h1; h2; h3 has the hash functions.\nPacking: Receiver packs items in CuckooTable C into a FHE plaintext polynomial.\nWindowsing: the receiver computes the component-wise query powers.\nEncrypt: The receiver uses FHE.Encrypt to encrypt query powers and sends the ciphertexts to the sender.\n Receiver’s OPRF: Receiver and Sender run ecdh-OPRF protocol, get\n{{H2(ri,H1(ri)β)}}ri∈R\\{\\{H_2(r_i,{H_1(r_i)}^\\beta)\\}\\}_{r_i\\in R}{{H2​(ri​,H1​(ri​)β)}}ri​∈R​. Receiver’s OPRF {{H2(ri,H1(ri)β)}}ri∈R\\{\\{H_2(r_i,{H_1(r_i)}^\\beta)\\}\\}_{r_i\\in R}{{H2​(ri​,H1​(ri​)β)}}ri​∈R​ {{H2(ri,H1(ri)β)}}ri∈R\\{\\{H_2(r_i,{H_1(r_i)}^\\beta)\\}\\}_{r_i\\in R}{{H2​(ri​,H1​(ri​)β)}}ri​∈R​ {{H2(ri,H1(ri)β)}}ri∈R\\{\\{H_2(r_i,{H_1(r_i)}^\\beta)\\}\\}_{r_i\\in R} {{H2(ri,H1(ri)β)}}ri∈R\\{\\{H_2(r_i,{H_1(r_i)}^\\beta)\\}\\}_{r_i\\in R} {{H2(ri,H1(ri)β)}}ri∈R\\{\\{H_2(r_i,{H_1(r_i)}^\\beta)\\}\\}_{r_i\\in R} {{H2(ri,H1(ri)β)}}ri∈R { { H2 H 2 ( ri r i , H1(ri)β H1(ri) H1 H 1 ( ri r i ) β ) } }ri∈R } ri∈R ri r i ∈ R \\{\\{H_2(r_i,{H_1(r_i)}^\\beta)\\}\\}_{r_i\\in R} {{H2​(ri​,H1​(ri​)β)}}ri​∈R​ {{H2​(ri​,H1​(ri​)β)}}ri​∈R​  {{ H2​ H 2​ 2​ 2​ 2 2  2 2 ​    ( ri​ r i​ i​ i​ i i  i i ​    ,  H1​(ri​)β H1​(ri​) H1​ H 1​ 1​ 1​ 1 1  1 1 ​    ( ri​ r i​ i​ i​ i i  i i ​    ) β β β β β  β β )} }ri​∈R​ } ri​∈R​ ri​∈R​ ri​∈R​ ri​∈R ri​∈R  ri​∈R ri​∈R ri​ r i​ i​ i​ i i  i i ​    ∈ R ​    Receiver’s CuckooHash: Receiver performs cuckoo hashing on the set RRR into CuckooTable C with m bins\nusing h1; h2; h3 has the hash functions. Receiver’s CuckooHash RRR RRR RR RR RR R R R R R  R Packing: Receiver packs items in CuckooTable C into a FHE plaintext polynomial. Packing Windowsing: the receiver computes the component-wise query powers. Windowsing Encrypt: The receiver uses FHE.Encrypt to encrypt query powers and sends the ciphertexts to the sender. Encrypt FHE.Encrypt Sender Homomorphically evaluate Matching Polynomial: The sender receives the collection of\nciphertexts and homomorphically evaluates Matching Polynomial. If Labeled PSI is desired, Sender homomorphically evaluates\nLabel Polynomial. The sender sends evaluated ciphertexts to Receiver. Sender Homomorphically evaluate Matching Polynomial Receiver Decrypt and Get result: receiver receives and decrypts the matching ciphertexts, and labels\nciphertexts if needed, outputs the matching set and labels. Receiver Decrypt and Get result Labeled PSI Parameters Paramsfunction1ItemParamsfelts_per_itemhow many Microsoft SEAL batching slots should represent each item\n= item_bit_size / plain_modulus_bits\nitem_bit_size = stats_params + log(ns)+log(nr)2TableParamshash_func_countcuckoo hash count. if nr>1,hash_func_count = 3\nnr=1-> hash_func_count=1 means essentially disabling cuckoo hashingtable_sizepositive multiple of floor(poly_modulus_degree/felts_per_item)max_items_per_binhow many items fit into each row of the sender’s bin bundles3QueryParamsps_low_degreeany number between 0 and max_items_per_bin\nIf set to zero, the Paterson-Stockmeyer algorithm is not used\nps_low_degree > 1, use Paterson-Stockmeyer algorithmquery_powershow many items fit into each row of the sender’s bin bundles\nref Challis and Robinson (2010) to determine good source powers4SEALParamspoly_modulus_degree2048 /  4096 / 8192plain_modulus(_bits)16(65535) / 22(bits)coeff_modulus_bits{48} / {48, 30, 30} / {56, 56, 56, 50} Paramsfunction Paramsfunction  Params Params function function 1ItemParamsfelts_per_itemhow many Microsoft SEAL batching slots should represent each item\n= item_bit_size / plain_modulus_bits\nitem_bit_size = stats_params + log(ns)+log(nr)2TableParamshash_func_countcuckoo hash count. if nr>1,hash_func_count = 3\nnr=1-> hash_func_count=1 means essentially disabling cuckoo hashingtable_sizepositive multiple of floor(poly_modulus_degree/felts_per_item)max_items_per_binhow many items fit into each row of the sender’s bin bundles3QueryParamsps_low_degreeany number between 0 and max_items_per_bin\nIf set to zero, the Paterson-Stockmeyer algorithm is not used\nps_low_degree > 1, use Paterson-Stockmeyer algorithmquery_powershow many items fit into each row of the sender’s bin bundles\nref Challis and Robinson (2010) to determine good source powers4SEALParamspoly_modulus_degree2048 /  4096 / 8192plain_modulus(_bits)16(65535) / 22(bits)coeff_modulus_bits{48} / {48, 30, 30} / {56, 56, 56, 50} 1ItemParams 1 1 ItemParams ItemParams   felts_per_itemhow many Microsoft SEAL batching slots should represent each item\n= item_bit_size / plain_modulus_bits\nitem_bit_size = stats_params + log(ns)+log(nr)  felts_per_item felts_per_item how many Microsoft SEAL batching slots should represent each item\n= item_bit_size / plain_modulus_bits\nitem_bit_size = stats_params + log(ns)+log(nr) how many Microsoft SEAL batching slots should represent each item\n= item_bit_size / plain_modulus_bits\nitem_bit_size = stats_params + log(ns)+log(nr) 2TableParams 2 2 TableParams TableParams   hash_func_countcuckoo hash count. if nr>1,hash_func_count = 3\nnr=1-> hash_func_count=1 means essentially disabling cuckoo hashing  hash_func_count hash_func_count cuckoo hash count. if nr>1,hash_func_count = 3\nnr=1-> hash_func_count=1 means essentially disabling cuckoo hashing cuckoo hash count. if nr>1,hash_func_count = 3\nnr=1-> hash_func_count=1 means essentially disabling cuckoo hashing table_sizepositive multiple of floor(poly_modulus_degree/felts_per_item)  table_size table_size positive multiple of floor(poly_modulus_degree/felts_per_item) positive multiple of floor(poly_modulus_degree/felts_per_item) max_items_per_binhow many items fit into each row of the sender’s bin bundles  max_items_per_bin max_items_per_bin how many items fit into each row of the sender’s bin bundles how many items fit into each row of the sender’s bin bundles 3QueryParams 3 3 QueryParams QueryParams   ps_low_degreeany number between 0 and max_items_per_bin\nIf set to zero, the Paterson-Stockmeyer algorithm is not used\nps_low_degree > 1, use Paterson-Stockmeyer algorithm  ps_low_degree ps_low_degree any number between 0 and max_items_per_bin\nIf set to zero, the Paterson-Stockmeyer algorithm is not used\nps_low_degree > 1, use Paterson-Stockmeyer algorithm any number between 0 and max_items_per_bin\nIf set to zero, the Paterson-Stockmeyer algorithm is not used\nps_low_degree > 1, use Paterson-Stockmeyer algorithm query_powershow many items fit into each row of the sender’s bin bundles\nref Challis and Robinson (2010) to determine good source powers  query_powers query_powers how many items fit into each row of the sender’s bin bundles\nref Challis and Robinson (2010) to determine good source powers how many items fit into each row of the sender’s bin bundles\nref Challis and Robinson (2010) to determine good source powers 4SEALParams 4 4 SEALParams SEALParams   poly_modulus_degree2048 /  4096 / 8192  poly_modulus_degree poly_modulus_degree 2048 /  4096 / 8192 2048 /  4096 / 8192 plain_modulus(_bits)16(65535) / 22(bits)  plain_modulus(_bits) plain_modulus(_bits) 16(65535) / 22(bits) 16(65535) / 22(bits) coeff_modulus_bits{48} / {48, 30, 30} / {56, 56, 56, 50}  coeff_modulus_bits coeff_modulus_bits {48} / {48, 30, 30} / {56, 56, 56, 50} {48} / {48, 30, 30} / {56, 56, 56, 50} "],[112,"SSL options. FieldTypeDescriptioncertificate_path stringCertificate file pathprivate_key_path stringPrivate key file pathverify_depth int32Set the maximum depth of the certificate chain for verification If 0, turn off the verificationca_file_path stringSet the trusted CA file to verify the peer’s certificate If empty, use the system default CA files FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description certificate_path stringCertificate file pathprivate_key_path stringPrivate key file pathverify_depth int32Set the maximum depth of the certificate chain for verification If 0, turn off the verificationca_file_path stringSet the trusted CA file to verify the peer’s certificate If empty, use the system default CA files certificate_path stringCertificate file path certificate_path certificate_path  string  string  string  string Certificate file path Certificate file path private_key_path stringPrivate key file path private_key_path private_key_path  string  string  string  string Private key file path Private key file path verify_depth int32Set the maximum depth of the certificate chain for verification If 0, turn off the verification verify_depth verify_depth  int32  int32  int32  int32 Set the maximum depth of the certificate chain for verification If 0, turn off the verification Set the maximum depth of the certificate chain for verification If 0, turn off the verification ca_file_path stringSet the trusted CA file to verify the peer’s certificate If empty, use the system default CA files ca_file_path ca_file_path  string  string  string  string Set the trusted CA file to verify the peer’s certificate If empty, use the system default CA files Set the trusted CA file to verify the peer’s certificate If empty, use the system default CA files  "],[141,"The csv file should looks like  Please make sure: \nSince version 0.4.0b0, headers line is required.\nThe first row must be headers, only key and value are allowed.\nThe key column must be items(keys)\nThe value column must be labels(values), this column is optional.\n Since version 0.4.0b0, headers line is required. 0.4.0b0 The first row must be headers, only key and value are allowed. key value The key column must be items(keys) key The value column must be labels(values), this column is optional. value "],[159,"The ECDH-PSI is favorable if the bandwidth is the bottleneck.\nIf the computing is the bottleneck, you should try the BaRK-OPRF based\nPSI KKRT-PSI. ECDH-PSI KKRT-PSI PSI protocolsThreat ModelParty NumberPsiTypeCodeECDH-PSISemi-Honest2P1ECDH-OPRF-PSISemi-Honest2P\n\nKKRTSemi-Honest2P2PCG_PSISemi-Honest2P3Mini-PSIMalicious2P\n\nDP-PSISemi-Honest2P\n\n PSI protocolsThreat ModelParty NumberPsiTypeCode PSI protocolsThreat ModelParty NumberPsiTypeCode PSI protocols PSI protocols Threat Model Threat Model Party Number Party Number PsiTypeCode PsiTypeCode ECDH-PSISemi-Honest2P1ECDH-OPRF-PSISemi-Honest2P\n\nKKRTSemi-Honest2P2PCG_PSISemi-Honest2P3Mini-PSIMalicious2P\n\nDP-PSISemi-Honest2P\n\n ECDH-PSISemi-Honest2P1 ECDH-PSI ECDH-PSI Semi-Honest Semi-Honest 2P 2P 1 1 ECDH-OPRF-PSISemi-Honest2P\n\n ECDH-OPRF-PSI ECDH-OPRF-PSI Semi-Honest Semi-Honest 2P 2P \n\n \n\n  KKRTSemi-Honest2P2 KKRT KKRT KKRT Semi-Honest Semi-Honest 2P 2P 2 2 PCG_PSISemi-Honest2P3 PCG_PSI PCG_PSI PCG_PSI Semi-Honest Semi-Honest 2P 2P 3 3 Mini-PSIMalicious2P\n\n Mini-PSI Mini-PSI Mini-PSI Malicious Malicious 2P 2P \n\n \n\n  DP-PSISemi-Honest2P\n\n DP-PSI DP-PSI DP-PSI Semi-Honest Semi-Honest 2P 2P \n\n \n\n  MPC and PSI protocols are designed for specific Security model (or Threat Models). Security model are widely considered to capture the capabilities of adversaries.\nAdversaries of semi-honest model and malicious model are Semi-honest Adversary and\nMalicious Adversary. \nSemi-honest Adversary\nMalicious Adversary\n Semi-honest Adversary Semi-honest Adversary Malicious Adversary Malicious Adversary Semi-Honest PSI Must not be used in Malicious environment, may be attacked and leak information. Our implementation of ECDH-PSI protocol supports multiple ECC curves: \nCurve25519\nSecp256k1\nFourQ\nSM2\n Curve25519 Curve25519 Secp256k1 Secp256k1 FourQ FourQ SM2 SM2 Please check PSI Protocols Introduction for details. PSI Protocols Introduction "],[85,"The input parameters of dp-psi. FieldTypeDescriptionbob_sub_sampling doublebob sub-sampling bernoulli_distribution probability.epsilon doubledp epsilon FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description bob_sub_sampling doublebob sub-sampling bernoulli_distribution probability.epsilon doubledp epsilon bob_sub_sampling doublebob sub-sampling bernoulli_distribution probability. bob_sub_sampling bob_sub_sampling  double  double  double  double bob sub-sampling bernoulli_distribution probability. bob sub-sampling bernoulli_distribution probability. epsilon doubledp epsilon epsilon epsilon  double  double  double  double dp epsilon dp epsilon  "],[57,"The report of pir task. FieldTypeDescriptionmatch_cnt int64none FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description match_cnt int64none match_cnt int64none match_cnt match_cnt  int64  int64  int64  int64 none none  "],[89,"The report of psi result. FieldTypeDescriptionoriginal_count int64The data count of input.intersection_count int64The count of intersection. Get -1 when self party can not get result.original_key_count int64noneintersection_key_count int64none FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description original_count int64The data count of input.intersection_count int64The count of intersection. Get -1 when self party can not get result.original_key_count int64noneintersection_key_count int64none original_count int64The data count of input. original_count original_count  int64  int64  int64  int64 The data count of input. The data count of input. intersection_count int64The count of intersection. Get -1 when self party can not get result. intersection_count intersection_count  int64  int64  int64  int64 The count of intersection. Get -1 when self party can not get result. The count of intersection. Get -1 when self party can not get result. -1 original_key_count int64none original_key_count original_key_count  int64  int64  int64  int64 none none intersection_key_count int64none intersection_key_count intersection_key_count  int64  int64  int64  int64 none none  "],[42,"The semi-honest DH-PSI protocol is due to Huberman, Franklin, and Hogg [HFH99],\nbut with roots as far back as Meadows [Mea86]. It is a semi-honest protocol that\nrequires exponentiations in a Diffie-Hellman group proportional to the number of items in the sets. [HFH99] [Mea86] As a general rule, OT-based PSI protocols are (significantly) faster but require more communication\nthan Diffie-Hellman-based PSI protocols.\nIn some scenarios, communication cost is overwhelmingly more important than computation cost. DH-PSI protocol based on the Decisional Diffie-Hellman assumption: \nAgree on a group G, with a generator g.\nThe assumption: for random a,b,c cannot distinguish (ga,gb,gab)(g^a, g^b, g^{ab})(ga,gb,gab) from (ga,gb,gc)(g^a, g^b, g^c)(ga,gb,gc)\n Agree on a group G, with a generator g. The assumption: for random a,b,c cannot distinguish (ga,gb,gab)(g^a, g^b, g^{ab})(ga,gb,gab) from (ga,gb,gc)(g^a, g^b, g^c)(ga,gb,gc) (ga,gb,gab)(g^a, g^b, g^{ab})(ga,gb,gab) (ga,gb,gab)(g^a, g^b, g^{ab})(ga,gb,gab) (ga,gb,gab)(g^a, g^b, g^{ab}) (ga,gb,gab)(g^a, g^b, g^{ab}) (ga,gb,gab)(g^a, g^b, g^{ab}) (ga,gb,gab) ( ga g a , gb g b , gab g ab a b ) (g^a, g^b, g^{ab}) (ga,gb,gab) (ga,gb,gab)  ( ga g a a a a a  a a ,  gb g b b b b b  b b ,  gab g ab ab ab ab ab  ab ab ab ) (ga,gb,gc)(g^a, g^b, g^c)(ga,gb,gc) (ga,gb,gc)(g^a, g^b, g^c)(ga,gb,gc) (ga,gb,gc)(g^a, g^b, g^c) (ga,gb,gc)(g^a, g^b, g^c) (ga,gb,gc)(g^a, g^b, g^c) (ga,gb,gc) ( ga g a , gb g b , gc g c ) (g^a, g^b, g^c) (ga,gb,gc) (ga,gb,gc)  ( ga g a a a a a  a a ,  gb g b b b b b  b b ,  gc g c c c c c  c c ) Several candidate groups are widely used, such as subgroups of the multiplication group of a finite\nfield and elliptic curve groups. In practice, carefully chosen elliptic curves like\nCurve25519 [Ber06] offer a good balance between security and performance. [Ber06]    \nFor each element xix_ixi​ in its set, Alice applies the hash function and then exponentiates it\nusing its key α\\alphaα, thus computing H(xi)α{H(x_i)}^\\alphaH(xi​)α . Alice sends\n{{H(xi)}α}i=1n1\\{\\{H(x_i)\\}^\\alpha\\}_{i=1}^{n_1}{{H(xi​)}α}i=1n1​​ to Bob.\nFor each element H(xi)α{H(x_i)}^\\alphaH(xi​)α  received from Alice in the previous step, Bob exponentiates\nit using its key β\\betaβ, computing H(xi)αβ{H(x_i)}^{\\alpha\\beta}H(xi​)αβ.\nBob sends {{H(xi)}αβ}i=1n1{\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1}{{H(xi​)}αβ}i=1n1​​ to Alice.\nFor each element yiy_iyi​ in its set, Bob applies the hash function and then exponentiates it\nusing its key β\\betaβ, thus computing H(yi)β{H(y_i)}^\\betaH(yi​)β .\nBob sends the set {{H(yi)}β}i=1n2\\{\\{H(y_i)\\}^\\beta\\}_{i=1}^{n_2}{{H(yi​)}β}i=1n2​​ to Alice.\nFor each element H(yi)β{H(y_i)}^\\betaH(yi​)β  received from Bob in the previous step, Alice exponentiates\nit using its key α\\alphaα, computing H(yi)βα{H(y_i)}^{\\beta\\alpha}H(yi​)βα .\nAlice compares two set {{H(xi)}αβ}i=1n1{\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1}{{H(xi​)}αβ}i=1n1​​\nand {{H(yi)}βα}i=1n2{\\{\\{H(y_i)\\}^{\\beta\\alpha}\\}}_{i=1}^{n_2}{{H(yi​)}βα}i=1n2​​  and gets intersection.\n For each element xix_ixi​ in its set, Alice applies the hash function and then exponentiates it\nusing its key α\\alphaα, thus computing H(xi)α{H(x_i)}^\\alphaH(xi​)α . Alice sends\n{{H(xi)}α}i=1n1\\{\\{H(x_i)\\}^\\alpha\\}_{i=1}^{n_1}{{H(xi​)}α}i=1n1​​ to Bob. xix_ixi​ xix_ixi​ xix_i xix_i xix_i xi xi x i x_i xi​ xi​  xi​ x i​ i​ i​ i i  i i ​    α\\alphaα α\\alphaα α\\alpha α\\alpha α\\alpha α α \\alpha α α  α H(xi)α{H(x_i)}^\\alphaH(xi​)α H(xi)α{H(x_i)}^\\alphaH(xi​)α H(xi)α{H(x_i)}^\\alpha H(xi)α{H(x_i)}^\\alpha H(xi)α{H(x_i)}^\\alpha H(xi)α H(xi)α H(xi) H ( xi x i ) α {H(x_i)}^\\alpha H(xi​)α H(xi​)α  H(xi​)α H(xi​) H ( xi​ x i​ i​ i​ i i  i i ​    ) α α α α α  α α {{H(xi)}α}i=1n1\\{\\{H(x_i)\\}^\\alpha\\}_{i=1}^{n_1}{{H(xi​)}α}i=1n1​​ {{H(xi)}α}i=1n1\\{\\{H(x_i)\\}^\\alpha\\}_{i=1}^{n_1}{{H(xi​)}α}i=1n1​​ {{H(xi)}α}i=1n1\\{\\{H(x_i)\\}^\\alpha\\}_{i=1}^{n_1} {{H(xi)}α}i=1n1\\{\\{H(x_i)\\}^\\alpha\\}_{i=1}^{n_1} {{H(xi)}α}i=1n1\\{\\{H(x_i)\\}^\\alpha\\}_{i=1}^{n_1} {{H(xi)}α}i=1n1 { { H ( xi x i ) }α } α }i=1n1 } i=1 i = 1 n1 n 1 \\{\\{H(x_i)\\}^\\alpha\\}_{i=1}^{n_1} {{H(xi​)}α}i=1n1​​ {{H(xi​)}α}i=1n1​​  {{ H ( xi​ x i​ i​ i​ i i  i i ​    ) }α } α α α α α  α α }i=1n1​​ } i=1n1​​ i=1n1​​ i=1n1​​ i=1n1​ i=1  i=1 i=1 i = 1 n1​  n1​ n1​ n1​ n 1​ 1​ 1​ 1 1  1 1 ​    ​    For each element H(xi)α{H(x_i)}^\\alphaH(xi​)α  received from Alice in the previous step, Bob exponentiates\nit using its key β\\betaβ, computing H(xi)αβ{H(x_i)}^{\\alpha\\beta}H(xi​)αβ.\nBob sends {{H(xi)}αβ}i=1n1{\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1}{{H(xi​)}αβ}i=1n1​​ to Alice. H(xi)α{H(x_i)}^\\alphaH(xi​)α H(xi)α{H(x_i)}^\\alphaH(xi​)α H(xi)α{H(x_i)}^\\alpha H(xi)α{H(x_i)}^\\alpha H(xi)α{H(x_i)}^\\alpha H(xi)α H(xi)α H(xi) H ( xi x i ) α {H(x_i)}^\\alpha H(xi​)α H(xi​)α  H(xi​)α H(xi​) H ( xi​ x i​ i​ i​ i i  i i ​    ) α α α α α  α α β\\betaβ β\\betaβ β\\beta β\\beta β\\beta β β \\beta β β  β H(xi)αβ{H(x_i)}^{\\alpha\\beta}H(xi​)αβ H(xi)αβ{H(x_i)}^{\\alpha\\beta}H(xi​)αβ H(xi)αβ{H(x_i)}^{\\alpha\\beta} H(xi)αβ{H(x_i)}^{\\alpha\\beta} H(xi)αβ{H(x_i)}^{\\alpha\\beta} H(xi)αβ H(xi)αβ H(xi) H ( xi x i ) αβ α β {H(x_i)}^{\\alpha\\beta} H(xi​)αβ H(xi​)αβ  H(xi​)αβ H(xi​) H ( xi​ x i​ i​ i​ i i  i i ​    ) αβ αβ αβ αβ αβ  αβ αβ α β {{H(xi)}αβ}i=1n1{\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1}{{H(xi​)}αβ}i=1n1​​ {{H(xi)}αβ}i=1n1{\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1}{{H(xi​)}αβ}i=1n1​​ {{H(xi)}αβ}i=1n1{\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1} {{H(xi)}αβ}i=1n1{\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1} {{H(xi)}αβ}i=1n1{\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1} {{H(xi)}αβ}i=1n1 {{H(xi)}αβ}i=1n1 {{H(xi)}αβ} { { H ( xi x i ) }αβ } αβ α β } i=1 i = 1 n1 n 1 {\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1} {{H(xi​)}αβ}i=1n1​​ {{H(xi​)}αβ}i=1n1​​  {{H(xi​)}αβ}i=1n1​​ {{H(xi​)}αβ} {{ H ( xi​ x i​ i​ i​ i i  i i ​    ) }αβ } αβ αβ αβ αβ αβ  αβ αβ α β } i=1n1​​ i=1n1​​ i=1n1​​ i=1n1​ i=1  i=1 i=1 i = 1 n1​  n1​ n1​ n1​ n 1​ 1​ 1​ 1 1  1 1 ​    ​    For each element yiy_iyi​ in its set, Bob applies the hash function and then exponentiates it\nusing its key β\\betaβ, thus computing H(yi)β{H(y_i)}^\\betaH(yi​)β .\nBob sends the set {{H(yi)}β}i=1n2\\{\\{H(y_i)\\}^\\beta\\}_{i=1}^{n_2}{{H(yi​)}β}i=1n2​​ to Alice. yiy_iyi​ yiy_iyi​ yiy_i yiy_i yiy_i yi yi y i y_i yi​ yi​  yi​ y i​ i​ i​ i i  i i ​    β\\betaβ β\\betaβ β\\beta β\\beta β\\beta β β \\beta β β  β H(yi)β{H(y_i)}^\\betaH(yi​)β H(yi)β{H(y_i)}^\\betaH(yi​)β H(yi)β{H(y_i)}^\\beta H(yi)β{H(y_i)}^\\beta H(yi)β{H(y_i)}^\\beta H(yi)β H(yi)β H(yi) H ( yi y i ) β {H(y_i)}^\\beta H(yi​)β H(yi​)β  H(yi​)β H(yi​) H ( yi​ y i​ i​ i​ i i  i i ​    ) β β β β β  β β {{H(yi)}β}i=1n2\\{\\{H(y_i)\\}^\\beta\\}_{i=1}^{n_2}{{H(yi​)}β}i=1n2​​ {{H(yi)}β}i=1n2\\{\\{H(y_i)\\}^\\beta\\}_{i=1}^{n_2}{{H(yi​)}β}i=1n2​​ {{H(yi)}β}i=1n2\\{\\{H(y_i)\\}^\\beta\\}_{i=1}^{n_2} {{H(yi)}β}i=1n2\\{\\{H(y_i)\\}^\\beta\\}_{i=1}^{n_2} {{H(yi)}β}i=1n2\\{\\{H(y_i)\\}^\\beta\\}_{i=1}^{n_2} {{H(yi)}β}i=1n2 { { H ( yi y i ) }β } β }i=1n2 } i=1 i = 1 n2 n 2 \\{\\{H(y_i)\\}^\\beta\\}_{i=1}^{n_2} {{H(yi​)}β}i=1n2​​ {{H(yi​)}β}i=1n2​​  {{ H ( yi​ y i​ i​ i​ i i  i i ​    ) }β } β β β β β  β β }i=1n2​​ } i=1n2​​ i=1n2​​ i=1n2​​ i=1n2​ i=1  i=1 i=1 i = 1 n2​  n2​ n2​ n2​ n 2​ 2​ 2​ 2 2  2 2 ​    ​    For each element H(yi)β{H(y_i)}^\\betaH(yi​)β  received from Bob in the previous step, Alice exponentiates\nit using its key α\\alphaα, computing H(yi)βα{H(y_i)}^{\\beta\\alpha}H(yi​)βα . H(yi)β{H(y_i)}^\\betaH(yi​)β H(yi)β{H(y_i)}^\\betaH(yi​)β H(yi)β{H(y_i)}^\\beta H(yi)β{H(y_i)}^\\beta H(yi)β{H(y_i)}^\\beta H(yi)β H(yi)β H(yi) H ( yi y i ) β {H(y_i)}^\\beta H(yi​)β H(yi​)β  H(yi​)β H(yi​) H ( yi​ y i​ i​ i​ i i  i i ​    ) β β β β β  β β α\\alphaα α\\alphaα α\\alpha α\\alpha α\\alpha α α \\alpha α α  α H(yi)βα{H(y_i)}^{\\beta\\alpha}H(yi​)βα H(yi)βα{H(y_i)}^{\\beta\\alpha}H(yi​)βα H(yi)βα{H(y_i)}^{\\beta\\alpha} H(yi)βα{H(y_i)}^{\\beta\\alpha} H(yi)βα{H(y_i)}^{\\beta\\alpha} H(yi)βα H(yi)βα H(yi) H ( yi y i ) βα β α {H(y_i)}^{\\beta\\alpha} H(yi​)βα H(yi​)βα  H(yi​)βα H(yi​) H ( yi​ y i​ i​ i​ i i  i i ​    ) βα βα βα βα βα  βα βα β α Alice compares two set {{H(xi)}αβ}i=1n1{\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1}{{H(xi​)}αβ}i=1n1​​\nand {{H(yi)}βα}i=1n2{\\{\\{H(y_i)\\}^{\\beta\\alpha}\\}}_{i=1}^{n_2}{{H(yi​)}βα}i=1n2​​  and gets intersection. {{H(xi)}αβ}i=1n1{\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1}{{H(xi​)}αβ}i=1n1​​ {{H(xi)}αβ}i=1n1{\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1}{{H(xi​)}αβ}i=1n1​​ {{H(xi)}αβ}i=1n1{\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1} {{H(xi)}αβ}i=1n1{\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1} {{H(xi)}αβ}i=1n1{\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1} {{H(xi)}αβ}i=1n1 {{H(xi)}αβ}i=1n1 {{H(xi)}αβ} { { H ( xi x i ) }αβ } αβ α β } i=1 i = 1 n1 n 1 {\\{\\{H(x_i)\\}^{\\alpha\\beta}\\}}_{i=1}^{n_1} {{H(xi​)}αβ}i=1n1​​ {{H(xi​)}αβ}i=1n1​​  {{H(xi​)}αβ}i=1n1​​ {{H(xi​)}αβ} {{ H ( xi​ x i​ i​ i​ i i  i i ​    ) }αβ } αβ αβ αβ αβ αβ  αβ αβ α β } i=1n1​​ i=1n1​​ i=1n1​​ i=1n1​ i=1  i=1 i=1 i = 1 n1​  n1​ n1​ n1​ n 1​ 1​ 1​ 1 1  1 1 ​    ​    {{H(yi)}βα}i=1n2{\\{\\{H(y_i)\\}^{\\beta\\alpha}\\}}_{i=1}^{n_2}{{H(yi​)}βα}i=1n2​​ {{H(yi)}βα}i=1n2{\\{\\{H(y_i)\\}^{\\beta\\alpha}\\}}_{i=1}^{n_2}{{H(yi​)}βα}i=1n2​​ {{H(yi)}βα}i=1n2{\\{\\{H(y_i)\\}^{\\beta\\alpha}\\}}_{i=1}^{n_2} {{H(yi)}βα}i=1n2{\\{\\{H(y_i)\\}^{\\beta\\alpha}\\}}_{i=1}^{n_2} {{H(yi)}βα}i=1n2{\\{\\{H(y_i)\\}^{\\beta\\alpha}\\}}_{i=1}^{n_2} {{H(yi)}βα}i=1n2 {{H(yi)}βα}i=1n2 {{H(yi)}βα} { { H ( yi y i ) }βα } βα β α } i=1 i = 1 n2 n 2 {\\{\\{H(y_i)\\}^{\\beta\\alpha}\\}}_{i=1}^{n_2} {{H(yi​)}βα}i=1n2​​ {{H(yi​)}βα}i=1n2​​  {{H(yi​)}βα}i=1n2​​ {{H(yi​)}βα} {{ H ( yi​ y i​ i​ i​ i i  i i ​    ) }βα } βα βα βα βα βα  βα βα β α } i=1n2​​ i=1n2​​ i=1n2​​ i=1n2​ i=1  i=1 i=1 i = 1 n2​  n2​ n2​ n2​ n 2​ 2​ 2​ 2 2  2 2 ​    ​    The Elliptic Curve groups, supported in secretflow SPU PSI module. EC groupReferenceCryptoLibCurve25519[Ber06]LibSoidum[ipp-crypto] (Intel® CPU support AVX-512 IFMA)Secp256k1[SEC2-v2]OpenSSLSM2GBT.32918.1-2016OpenSSLISO/IEC 14888-3FourQ[FourQ]FourQlib EC groupReferenceCryptoLib EC groupReferenceCryptoLib EC group EC group Reference Reference CryptoLib CryptoLib Curve25519[Ber06]LibSoidum[ipp-crypto] (Intel® CPU support AVX-512 IFMA)Secp256k1[SEC2-v2]OpenSSLSM2GBT.32918.1-2016OpenSSLISO/IEC 14888-3FourQ[FourQ]FourQlib Curve25519[Ber06]LibSoidum Curve25519 Curve25519 [Ber06] [Ber06] [Ber06] [Ber06] LibSoidum LibSoidum LibSoidum [ipp-crypto] (Intel® CPU support AVX-512 IFMA) [ipp-crypto] (Intel® CPU support AVX-512 IFMA) [ipp-crypto] (Intel® CPU support AVX-512 IFMA) [ipp-crypto] [ipp-crypto] Secp256k1[SEC2-v2]OpenSSL Secp256k1 Secp256k1 [SEC2-v2] [SEC2-v2] [SEC2-v2] [SEC2-v2] OpenSSL OpenSSL OpenSSL SM2GBT.32918.1-2016OpenSSL SM2 SM2 GBT.32918.1-2016 GBT.32918.1-2016 OpenSSL OpenSSL OpenSSL ISO/IEC 14888-3 ISO/IEC 14888-3 ISO/IEC 14888-3 FourQ[FourQ]FourQlib FourQ FourQ [FourQ] [FourQ] [FourQ] [FourQ] FourQlib FourQlib FourQlib "],[91,"The specified elliptic curve cryptography used in psi. NameNumberDescriptionCURVE_INVALID_TYPE0noneCURVE_255191Daniel J. Bernstein. Curve25519: new diffie-hellman speed recordsCURVE_FOURQ2FourQ: four-dimensional decompositions on a Q-curve over the Mersenne primeCURVE_SM23SM2 is an elliptic curve based cryptosystem (ECC) published as a Chinese National Standard as GBT.32918.1-2016 and published in ISO/IEC 14888-3CURVE_SECP256K14parameters of the elliptic curve defined in Standards for Efficient Cryptography (SEC) http://www.secg.org/sec2-v2.pdfCURVE_25519_ELLIGATOR25Curve25519 with rfc9380 elligator2 hash_to_curve NameNumberDescription NameNumberDescription Name Name Number Number Description Description CURVE_INVALID_TYPE0noneCURVE_255191Daniel J. Bernstein. Curve25519: new diffie-hellman speed recordsCURVE_FOURQ2FourQ: four-dimensional decompositions on a Q-curve over the Mersenne primeCURVE_SM23SM2 is an elliptic curve based cryptosystem (ECC) published as a Chinese National Standard as GBT.32918.1-2016 and published in ISO/IEC 14888-3CURVE_SECP256K14parameters of the elliptic curve defined in Standards for Efficient Cryptography (SEC) http://www.secg.org/sec2-v2.pdfCURVE_25519_ELLIGATOR25Curve25519 with rfc9380 elligator2 hash_to_curve CURVE_INVALID_TYPE0none CURVE_INVALID_TYPE CURVE_INVALID_TYPE 0 0 none none CURVE_255191Daniel J. Bernstein. Curve25519: new diffie-hellman speed records CURVE_25519 CURVE_25519 1 1 Daniel J. Bernstein. Curve25519: new diffie-hellman speed records Daniel J. Bernstein. Curve25519: new diffie-hellman speed records CURVE_FOURQ2FourQ: four-dimensional decompositions on a Q-curve over the Mersenne prime CURVE_FOURQ CURVE_FOURQ 2 2 FourQ: four-dimensional decompositions on a Q-curve over the Mersenne prime FourQ: four-dimensional decompositions on a Q-curve over the Mersenne prime CURVE_SM23SM2 is an elliptic curve based cryptosystem (ECC) published as a Chinese National Standard as GBT.32918.1-2016 and published in ISO/IEC 14888-3 CURVE_SM2 CURVE_SM2 3 3 SM2 is an elliptic curve based cryptosystem (ECC) published as a Chinese National Standard as GBT.32918.1-2016 and published in ISO/IEC 14888-3 SM2 is an elliptic curve based cryptosystem (ECC) published as a Chinese National Standard as GBT.32918.1-2016 and published in ISO/IEC 14888-3 CURVE_SECP256K14parameters of the elliptic curve defined in Standards for Efficient Cryptography (SEC) http://www.secg.org/sec2-v2.pdf CURVE_SECP256K1 CURVE_SECP256K1 4 4 parameters of the elliptic curve defined in Standards for Efficient Cryptography (SEC) http://www.secg.org/sec2-v2.pdf parameters of the elliptic curve defined in Standards for Efficient Cryptography (SEC) http://www.secg.org/sec2-v2.pdf http://www.secg.org/sec2-v2.pdf CURVE_25519_ELLIGATOR25Curve25519 with rfc9380 elligator2 hash_to_curve CURVE_25519_ELLIGATOR2 CURVE_25519_ELLIGATOR2 5 5 Curve25519 with rfc9380 elligator2 hash_to_curve Curve25519 with rfc9380 elligator2 hash_to_curve "],[70,"The top level of Configs.\nrun(PsiConfig)->PsiReport Advanced Joins\nType: Inner Join\ne.g. If input of receiver is  and input of sender is  After inner join.\nThe output of receiver is:  The output of sender is  Type: Left Join\nAfter left join.\nThe output of left side is:  The output of right side is  Type: Right Join\nAfter right join.\nThe output of left side is:  The output of right side is  Type: Full Join\nAfter full join.\nThe output of left side is:  The output of right side is  Type: Difference\nAfter difference.\nThe output of left side is:  The output of right side is  FieldTypeDescriptionprotocol_config ProtocolConfigConfigs for protocols.input_config IoConfigConfigs for input.output_config IoConfigConfigs for output.keysrepeated stringkeys for intersection.debug_options DebugOptionsLogging level.disable_alignment boolIt true, output is not promised to be aligned.recovery_config RecoveryConfigConfigs for recovery.advanced_join_type PsiConfig.AdvancedJoinTypenoneleft_side RoleRequired if advanced_join_type is ADVANCED_JOIN_TYPE_LEFT_JOIN or ADVANCED_JOIN_TYPE_RIGHT_JOIN.check_hash_digest boolCheck if hash digest of keys from parties are equal to determine whether to early-stop.input_attr InputAttrInput attributes.output_attr OutputAttrOutput attributes. FieldTypeDescription FieldTypeDescription Field Field Type Type Description Description protocol_config ProtocolConfigConfigs for protocols.input_config IoConfigConfigs for input.output_config IoConfigConfigs for output.keysrepeated stringkeys for intersection.debug_options DebugOptionsLogging level.disable_alignment boolIt true, output is not promised to be aligned.recovery_config RecoveryConfigConfigs for recovery.advanced_join_type PsiConfig.AdvancedJoinTypenoneleft_side RoleRequired if advanced_join_type is ADVANCED_JOIN_TYPE_LEFT_JOIN or ADVANCED_JOIN_TYPE_RIGHT_JOIN.check_hash_digest boolCheck if hash digest of keys from parties are equal to determine whether to early-stop.input_attr InputAttrInput attributes.output_attr OutputAttrOutput attributes. protocol_config ProtocolConfigConfigs for protocols. protocol_config protocol_config  ProtocolConfig  ProtocolConfig  ProtocolConfig Configs for protocols. Configs for protocols. input_config IoConfigConfigs for input. input_config input_config  IoConfig  IoConfig  IoConfig Configs for input. Configs for input. output_config IoConfigConfigs for output. output_config output_config  IoConfig  IoConfig  IoConfig Configs for output. Configs for output. keysrepeated stringkeys for intersection. keys keys repeated string repeated string repeated string repeated string keys for intersection. keys for intersection. debug_options DebugOptionsLogging level. debug_options debug_options  DebugOptions  DebugOptions  DebugOptions Logging level. Logging level. disable_alignment boolIt true, output is not promised to be aligned. disable_alignment disable_alignment  bool  bool  bool  bool It true, output is not promised to be aligned. It true, output is not promised to be aligned. recovery_config RecoveryConfigConfigs for recovery. recovery_config recovery_config  RecoveryConfig  RecoveryConfig  RecoveryConfig Configs for recovery. Configs for recovery. advanced_join_type PsiConfig.AdvancedJoinTypenone advanced_join_type advanced_join_type  PsiConfig.AdvancedJoinType  PsiConfig.AdvancedJoinType  PsiConfig.AdvancedJoinType none none left_side RoleRequired if advanced_join_type is ADVANCED_JOIN_TYPE_LEFT_JOIN or ADVANCED_JOIN_TYPE_RIGHT_JOIN. left_side left_side  Role  Role  Role Required if advanced_join_type is ADVANCED_JOIN_TYPE_LEFT_JOIN or ADVANCED_JOIN_TYPE_RIGHT_JOIN. Required if advanced_join_type is ADVANCED_JOIN_TYPE_LEFT_JOIN or ADVANCED_JOIN_TYPE_RIGHT_JOIN. check_hash_digest boolCheck if hash digest of keys from parties are equal to determine whether to early-stop. check_hash_digest check_hash_digest  bool  bool  bool  bool Check if hash digest of keys from parties are equal to determine whether to early-stop. Check if hash digest of keys from parties are equal to determine whether to early-stop. input_attr InputAttrInput attributes. input_attr input_attr  InputAttr  InputAttr  InputAttr Input attributes. Input attributes. output_attr OutputAttrOutput attributes. output_attr output_attr  OutputAttr  OutputAttr  OutputAttr Output attributes. Output attributes.  "],[116,"This document introduces the APSI Benchmark. "],[149,"This document will introduce the PSI V2 Benchmark. It uses the PSI V2 version of the interface. "],[1,"This is the repo of Private Set Intersection(PSI) and Private Information Retrieval(PIR) from SecretFlow team, which provides PSI and PIR functionality for SecretFlow , SCQL  and SecretPad. SecretFlow SCQL SecretPad This repo is formerly psi/pir part from secretflow/spu repo. secretflow/spu  "],[51,"This page covers all Protocol Buffers message as APIs. \nPSI v1 Configuration\nPSI v2 Configuration\nPIR Configuration\nLaunch Configuration\n \nPSI v1 Configuration\nPSI v2 Configuration\nPIR Configuration\nLaunch Configuration\n PSI v1 Configuration PSI v1 Configuration PSI v2 Configuration PSI v2 Configuration PIR Configuration PIR Configuration Launch Configuration Launch Configuration "],[134,"To launch PSI, please check LaunchConfig at Launch Configuration and here. Launch Configuration Please read examples. examples Example configs are: \n\nserver\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_offline.json\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_online.json\n\n\n\nclient\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_offline.json\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_online.json\n\n\n \nserver\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_offline.json\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_online.json\n\n server\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_offline.json\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_online.json\n server\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_offline.json\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_online.json\n server server server \nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_offline.json\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_online.json\n \nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_offline.json\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_online.json\n https://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_offline.json https://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_offline.json https://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_online.json https://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_server_online.json \nclient\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_offline.json\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_online.json\n\n client\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_offline.json\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_online.json\n client\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_offline.json\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_online.json\n client client client \nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_offline.json\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_online.json\n \nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_offline.json\nhttps://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_online.json\n https://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_offline.json https://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_offline.json https://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_online.json https://github.com/secretflow/psi/tree/main/examples/psi/config/ecdh_client_online.json "],[123,"To measure the APSI benchmark under different machine and network configurations, we use two Docker containers to act as sender and receiver, respectively. "],[118,"To measure the performance of APSI protocols under different data scales, we need to generate dummy data.  Next, we need to copy the data and parameter files into /tmp:  Please note that to achieve optimal APSI performance, we need to find a suitable set of parameters for the corresponding data scale and label length. Here, we directly use a set of default parameters provided by APSI, such as 1M-1-32.json. 1M-1-32.json "],[75,"TODO(junfeng): support more io types including oss, sql, etc. NameNumberDescriptionIO_TYPE_UNSPECIFIED0noneIO_TYPE_FILE_CSV1Local csv file. NameNumberDescription NameNumberDescription Name Name Number Number Description Description IO_TYPE_UNSPECIFIED0noneIO_TYPE_FILE_CSV1Local csv file. IO_TYPE_UNSPECIFIED0none IO_TYPE_UNSPECIFIED IO_TYPE_UNSPECIFIED 0 0 none none IO_TYPE_FILE_CSV1Local csv file. IO_TYPE_FILE_CSV IO_TYPE_FILE_CSV 1 1 Local csv file. Local csv file. "],[167,"Warning:  KKRT16 is semi-honest PSI protocols,\nand may be attacked in malicious model.\nWe recommend using KKRT16 PSI protocol as one-way PSI, i.e., one party gets the final intersection result. KKRT16 "],[45,"We also implement a Differentially Private (DP) Private Set Intersection (PSI)\nProtocol. Our implementation bases on ECDH-PSI, and provides: \nDifferentially private PSI results.\n Differentially private PSI results. This feature is currently under test, please use at your own risk! Why PSI with differentially private results? If we want a scheme that protects\nboth the private inputs and output privacy, an ideal way is to use circuit\nPSI, which is a typical PSI variant that allows secure computation (e.g. MPC or\nHE) on the PSI result without revealing it. PSTY19 However those protocols are expensive\nin terms of efficiency. circuit\nPSI PSTY19 DP-PSI is a way of utilizing the up-sampling and sub-sampling mechanism to add\ncalibrated noises to the PSI results, without revealing its concise value. The protocol is listed below, assume Alice has a (hashed and shuffled) set\nXXX and Bob has a (hashed and shuffled) YYY. XXX XXX XX XX XX X X X X X  X YYY YYY YY YY YY Y Y Y Y Y  Y    Note that we use “encrypt” to denote the process of calculating y←xay\\gets\nx^ay←xa. y←xay\\gets\nx^ay←xa y←xay\\gets\nx^ay←xa y←xay\\gets\nx^a y←xay\\gets\nx^a y←xay\\gets\nx^a y←xa y ← xa x a y\\gets\nx^a y←xa y←  y  ←  xa  xa x a a a a a  a a Protocol: \nAlice and Bob first encrypts their own dataset, and gets XaX^aXa and\nYbY^bYb separately.\nAlice sends XaX^aXa to Bob.\nBob performs random subsampling on YbY^bYb, gets Y∗bY_*^bY∗b​ and sends it\nto Alice. In the meantime, on receiving XaX^aXa from Alice, Bob\nre-encrypts it with bbb, gets XabX^{ab}Xab. Then it samples a random\npermutation π\\piπ to permute Alice’s set, and sends permuted\nπ(Xab)\\pi(X^{ab})π(Xab) back to Alice.\nOn receiving Y∗bY_*^bY∗b​ and π(Xab)\\pi(X^{ab})π(Xab) from Bob, Alice re-encrypts\nY∗bY_*^bY∗b​ and gets Y∗abY_*^{ab}Y∗ab​, then calculates the intersection\nI∗ab←π(Xab)∩Y∗abI_*^{ab}\\gets\\pi(X^{ab})\\cap Y_*^{ab}I∗ab​←π(Xab)∩Y∗ab​.\nAlice randomly subsamples the intersection, gets I∗∗abI_{**}^{ab}I∗∗ab​, and\nthen finds their corresponding index in Y∗bY_*^bY∗b​. Then randomly adds\nnon-intersection index to this set.\nAlice sends the index set to Bob, then Bob reveals the final results.\n Alice and Bob first encrypts their own dataset, and gets XaX^aXa and\nYbY^bYb separately. XaX^aXa XaX^aXa XaX^a XaX^a XaX^a Xa Xa X a X^a Xa Xa  Xa X a a a a a  a a YbY^bYb YbY^bYb YbY^b YbY^b YbY^b Yb Yb Y b Y^b Yb Yb  Yb Y b b b b b  b b Alice sends XaX^aXa to Bob. XaX^aXa XaX^aXa XaX^a XaX^a XaX^a Xa Xa X a X^a Xa Xa  Xa X a a a a a  a a Bob performs random subsampling on YbY^bYb, gets Y∗bY_*^bY∗b​ and sends it\nto Alice. In the meantime, on receiving XaX^aXa from Alice, Bob\nre-encrypts it with bbb, gets XabX^{ab}Xab. Then it samples a random\npermutation π\\piπ to permute Alice’s set, and sends permuted\nπ(Xab)\\pi(X^{ab})π(Xab) back to Alice. YbY^bYb YbY^bYb YbY^b YbY^b YbY^b Yb Yb Y b Y^b Yb Yb  Yb Y b b b b b  b b Y∗bY_*^bY∗b​ Y∗bY_*^bY∗b​ Y∗bY_*^b Y∗bY_*^b Y∗bY_*^b Y∗b Y∗b Y ∗ b Y_*^b Y∗b​ Y∗b​  Y∗b​ Y ∗b​ ∗b​ ∗b​ ∗b ∗  ∗ ∗ b  b b ​    XaX^aXa XaX^aXa XaX^a XaX^a XaX^a Xa Xa X a X^a Xa Xa  Xa X a a a a a  a a bbb bbb bb bb bb b b b b b  b XabX^{ab}Xab XabX^{ab}Xab XabX^{ab} XabX^{ab} XabX^{ab} Xab Xab X ab a b X^{ab} Xab Xab  Xab X ab ab ab ab ab  ab ab ab π\\piπ π\\piπ π\\pi π\\pi π\\pi π π \\pi π π  π π(Xab)\\pi(X^{ab})π(Xab) π(Xab)\\pi(X^{ab})π(Xab) π(Xab)\\pi(X^{ab}) π(Xab)\\pi(X^{ab}) π(Xab)\\pi(X^{ab}) π(Xab) π ( Xab X ab a b ) \\pi(X^{ab}) π(Xab) π(Xab)  π ( Xab X ab ab ab ab ab  ab ab ab ) On receiving Y∗bY_*^bY∗b​ and π(Xab)\\pi(X^{ab})π(Xab) from Bob, Alice re-encrypts\nY∗bY_*^bY∗b​ and gets Y∗abY_*^{ab}Y∗ab​, then calculates the intersection\nI∗ab←π(Xab)∩Y∗abI_*^{ab}\\gets\\pi(X^{ab})\\cap Y_*^{ab}I∗ab​←π(Xab)∩Y∗ab​. Y∗bY_*^bY∗b​ Y∗bY_*^bY∗b​ Y∗bY_*^b Y∗bY_*^b Y∗bY_*^b Y∗b Y∗b Y ∗ b Y_*^b Y∗b​ Y∗b​  Y∗b​ Y ∗b​ ∗b​ ∗b​ ∗b ∗  ∗ ∗ b  b b ​    π(Xab)\\pi(X^{ab})π(Xab) π(Xab)\\pi(X^{ab})π(Xab) π(Xab)\\pi(X^{ab}) π(Xab)\\pi(X^{ab}) π(Xab)\\pi(X^{ab}) π(Xab) π ( Xab X ab a b ) \\pi(X^{ab}) π(Xab) π(Xab)  π ( Xab X ab ab ab ab ab  ab ab ab ) Y∗bY_*^bY∗b​ Y∗bY_*^bY∗b​ Y∗bY_*^b Y∗bY_*^b Y∗bY_*^b Y∗b Y∗b Y ∗ b Y_*^b Y∗b​ Y∗b​  Y∗b​ Y ∗b​ ∗b​ ∗b​ ∗b ∗  ∗ ∗ b  b b ​    Y∗abY_*^{ab}Y∗ab​ Y∗abY_*^{ab}Y∗ab​ Y∗abY_*^{ab} Y∗abY_*^{ab} Y∗abY_*^{ab} Y∗ab Y∗ab Y ∗ ab a b Y_*^{ab} Y∗ab​ Y∗ab​  Y∗ab​ Y ∗ab​ ∗ab​ ∗ab​ ∗ab ∗  ∗ ∗ ab  ab ab ab ​    I∗ab←π(Xab)∩Y∗abI_*^{ab}\\gets\\pi(X^{ab})\\cap Y_*^{ab}I∗ab​←π(Xab)∩Y∗ab​ I∗ab←π(Xab)∩Y∗abI_*^{ab}\\gets\\pi(X^{ab})\\cap Y_*^{ab}I∗ab​←π(Xab)∩Y∗ab​ I∗ab←π(Xab)∩Y∗abI_*^{ab}\\gets\\pi(X^{ab})\\cap Y_*^{ab} I∗ab←π(Xab)∩Y∗abI_*^{ab}\\gets\\pi(X^{ab})\\cap Y_*^{ab} I∗ab←π(Xab)∩Y∗abI_*^{ab}\\gets\\pi(X^{ab})\\cap Y_*^{ab} I∗ab←π(Xab)∩Y∗ab I∗ab I ∗ ab a b ← π ( Xab X ab a b ) ∩ Y∗ab Y ∗ ab a b I_*^{ab}\\gets\\pi(X^{ab})\\cap Y_*^{ab} I∗ab​←π(Xab)∩Y∗ab​ I∗ab​←  I∗ab​ I ∗ab​ ∗ab​ ∗ab​ ∗ab ∗  ∗ ∗ ab  ab ab ab ​     ←  π(Xab)∩  π ( Xab X ab ab ab ab ab  ab ab ab )  ∩  Y∗ab​  Y∗ab​ Y ∗ab​ ∗ab​ ∗ab​ ∗ab ∗  ∗ ∗ ab  ab ab ab ​    Alice randomly subsamples the intersection, gets I∗∗abI_{**}^{ab}I∗∗ab​, and\nthen finds their corresponding index in Y∗bY_*^bY∗b​. Then randomly adds\nnon-intersection index to this set. I∗∗abI_{**}^{ab}I∗∗ab​ I∗∗abI_{**}^{ab}I∗∗ab​ I∗∗abI_{**}^{ab} I∗∗abI_{**}^{ab} I∗∗abI_{**}^{ab} I∗∗ab I∗∗ab I ∗∗ ∗ ∗ ab a b I_{**}^{ab} I∗∗ab​ I∗∗ab​  I∗∗ab​ I ∗∗ab​ ∗∗ab​ ∗∗ab​ ∗∗ab ∗∗  ∗∗ ∗∗ ∗∗ ab  ab ab ab ​    Y∗bY_*^bY∗b​ Y∗bY_*^bY∗b​ Y∗bY_*^b Y∗bY_*^b Y∗bY_*^b Y∗b Y∗b Y ∗ b Y_*^b Y∗b​ Y∗b​  Y∗b​ Y ∗b​ ∗b​ ∗b​ ∗b ∗  ∗ ∗ b  b b ​    Alice sends the index set to Bob, then Bob reveals the final results. In the end, this scheme ensures that the receiver (Bob) only learns the noised\nintersection, without the ability of pointing out whether an element is in the\nactual set intersection or not. Note that multiple invocations of DP-PSI inevitably weaken the privacy\nprotection, therefore, we strongly suggest that user should implement a\nprotection mechanism to prevent multiple DP-PSI executions on the same input\nvalue. Intel(R) Xeon(R) Platinum2^202^212^222^232^24DP-PSI9.806s20.134s42.067s86.580s170.359s Intel(R) Xeon(R) Platinum2^202^212^222^232^24 Intel(R) Xeon(R) Platinum2^202^212^222^232^24 Intel(R) Xeon(R) Platinum Intel(R) Xeon(R) Platinum 2^20 2^20 2^21 2^21 2^22 2^22 2^23 2^23 2^24 2^24 DP-PSI9.806s20.134s42.067s86.580s170.359s DP-PSI9.806s20.134s42.067s86.580s170.359s DP-PSI DP-PSI 9.806s 9.806s 20.134s 20.134s 42.067s 42.067s 86.580s 86.580s 170.359s 170.359s For DP, our default privacy protection strength is ϵ=3\\epsilon=3ϵ=3. For more\ndetails, please refer to the original paper: [DP-PSI] ϵ=3\\epsilon=3ϵ=3 ϵ=3\\epsilon=3ϵ=3 ϵ=3\\epsilon=3 ϵ=3\\epsilon=3 ϵ=3\\epsilon=3 ϵ=3 ϵ = 3 \\epsilon=3 ϵ=3 ϵ=  ϵ  =  3  3 [DP-PSI] "],[43,"We implement our own three-party PSI protocol based on ECDH. Note that our implementation has known\nleakage, please use at your own risk. Assume Alice, Bob, Charlie (receiver) want to perform 3P PSI, in addition to the final output, our\nprotocol leaks the intersection size of Alice’s data and Bob’s data to Charlie.    Note that at the beginning of ECDH-PSI protocol, we assume the input data from both Alice and Charlie are\nshuffled (It’s not necessary to shuffle Bob’s set). Protocol: \nFor i-th element in its set, Alice calculates H(xi)αH(x_i)^\\alphaH(xi​)α and sends to Bob.\nFor i-th element, Bob calculates H(xi)αβH(x_i)^{\\alpha\\beta}H(xi​)αβ and\nH(yi)βH(y_i)^\\betaH(yi​)β, then shuffles them randomly and sends them to Alice.\nFor i-th element, Alice calculates H(yi)αβH(y_i)^{\\alpha\\beta}H(yi​)αβ and gets the intersection of\nH(xi)αβ∩H(yi)αβH(x_i)^{\\alpha\\beta} \\cap H(y_i)^{\\alpha\\beta}H(xi​)αβ∩H(yi​)αβ (we denote the intersection as\nIαβI^{\\alpha\\beta}Iαβ), then sends IαβI^{\\alpha\\beta}Iαβ to Charlie.\nFor i-th element, Charlie sends H(zi)γH(z_i)^{\\gamma}H(zi​)γ to Bob, Bob calculates and sends to\nAlice H(zi)βγH(z_i)^{\\beta\\gamma}H(zi​)βγ, finally Alice calculates and sends to\nCharlie H(zi)αβγH(z_i)^{\\alpha\\beta\\gamma}H(zi​)αβγ.\nCharlie calculates IαβγI^{\\alpha\\beta\\gamma}Iαβγ and compares IαβγI^{\\alpha\\beta\\gamma}Iαβγ with\nH(zi)αβγH(z_i)^{\\alpha\\beta\\gamma}H(zi​)αβγ.\n For i-th element in its set, Alice calculates H(xi)αH(x_i)^\\alphaH(xi​)α and sends to Bob. H(xi)αH(x_i)^\\alphaH(xi​)α H(xi)αH(x_i)^\\alphaH(xi​)α H(xi)αH(x_i)^\\alpha H(xi)αH(x_i)^\\alpha H(xi)αH(x_i)^\\alpha H(xi)α H ( xi x i )α ) α H(x_i)^\\alpha H(xi​)α H(xi​)α  H ( xi​ x i​ i​ i​ i i  i i ​    )α ) α α α α α  α α For i-th element, Bob calculates H(xi)αβH(x_i)^{\\alpha\\beta}H(xi​)αβ and\nH(yi)βH(y_i)^\\betaH(yi​)β, then shuffles them randomly and sends them to Alice. H(xi)αβH(x_i)^{\\alpha\\beta}H(xi​)αβ H(xi)αβH(x_i)^{\\alpha\\beta}H(xi​)αβ H(xi)αβH(x_i)^{\\alpha\\beta} H(xi)αβH(x_i)^{\\alpha\\beta} H(xi)αβH(x_i)^{\\alpha\\beta} H(xi)αβ H ( xi x i )αβ ) αβ α β H(x_i)^{\\alpha\\beta} H(xi​)αβ H(xi​)αβ  H ( xi​ x i​ i​ i​ i i  i i ​    )αβ ) αβ αβ αβ αβ αβ  αβ αβ α β H(yi)βH(y_i)^\\betaH(yi​)β H(yi)βH(y_i)^\\betaH(yi​)β H(yi)βH(y_i)^\\beta H(yi)βH(y_i)^\\beta H(yi)βH(y_i)^\\beta H(yi)β H ( yi y i )β ) β H(y_i)^\\beta H(yi​)β H(yi​)β  H ( yi​ y i​ i​ i​ i i  i i ​    )β ) β β β β β  β β For i-th element, Alice calculates H(yi)αβH(y_i)^{\\alpha\\beta}H(yi​)αβ and gets the intersection of\nH(xi)αβ∩H(yi)αβH(x_i)^{\\alpha\\beta} \\cap H(y_i)^{\\alpha\\beta}H(xi​)αβ∩H(yi​)αβ (we denote the intersection as\nIαβI^{\\alpha\\beta}Iαβ), then sends IαβI^{\\alpha\\beta}Iαβ to Charlie. H(yi)αβH(y_i)^{\\alpha\\beta}H(yi​)αβ H(yi)αβH(y_i)^{\\alpha\\beta}H(yi​)αβ H(yi)αβH(y_i)^{\\alpha\\beta} H(yi)αβH(y_i)^{\\alpha\\beta} H(yi)αβH(y_i)^{\\alpha\\beta} H(yi)αβ H ( yi y i )αβ ) αβ α β H(y_i)^{\\alpha\\beta} H(yi​)αβ H(yi​)αβ  H ( yi​ y i​ i​ i​ i i  i i ​    )αβ ) αβ αβ αβ αβ αβ  αβ αβ α β H(xi)αβ∩H(yi)αβH(x_i)^{\\alpha\\beta} \\cap H(y_i)^{\\alpha\\beta}H(xi​)αβ∩H(yi​)αβ H(xi)αβ∩H(yi)αβH(x_i)^{\\alpha\\beta} \\cap H(y_i)^{\\alpha\\beta}H(xi​)αβ∩H(yi​)αβ H(xi)αβ∩H(yi)αβH(x_i)^{\\alpha\\beta} \\cap H(y_i)^{\\alpha\\beta} H(xi)αβ∩H(yi)αβH(x_i)^{\\alpha\\beta} \\cap H(y_i)^{\\alpha\\beta} H(xi)αβ∩H(yi)αβH(x_i)^{\\alpha\\beta} \\cap H(y_i)^{\\alpha\\beta} H(xi)αβ∩H(yi)αβ H ( xi x i )αβ ) αβ α β ∩ H ( yi y i )αβ ) αβ α β H(x_i)^{\\alpha\\beta} \\cap H(y_i)^{\\alpha\\beta} H(xi​)αβ∩H(yi​)αβ H(xi​)αβ∩  H ( xi​ x i​ i​ i​ i i  i i ​    )αβ ) αβ αβ αβ αβ αβ  αβ αβ α β  ∩  H(yi​)αβ  H ( yi​ y i​ i​ i​ i i  i i ​    )αβ ) αβ αβ αβ αβ αβ  αβ αβ α β IαβI^{\\alpha\\beta}Iαβ IαβI^{\\alpha\\beta}Iαβ IαβI^{\\alpha\\beta} IαβI^{\\alpha\\beta} IαβI^{\\alpha\\beta} Iαβ Iαβ I αβ α β I^{\\alpha\\beta} Iαβ Iαβ  Iαβ I αβ αβ αβ αβ αβ  αβ αβ α β IαβI^{\\alpha\\beta}Iαβ IαβI^{\\alpha\\beta}Iαβ IαβI^{\\alpha\\beta} IαβI^{\\alpha\\beta} IαβI^{\\alpha\\beta} Iαβ Iαβ I αβ α β I^{\\alpha\\beta} Iαβ Iαβ  Iαβ I αβ αβ αβ αβ αβ  αβ αβ α β For i-th element, Charlie sends H(zi)γH(z_i)^{\\gamma}H(zi​)γ to Bob, Bob calculates and sends to\nAlice H(zi)βγH(z_i)^{\\beta\\gamma}H(zi​)βγ, finally Alice calculates and sends to\nCharlie H(zi)αβγH(z_i)^{\\alpha\\beta\\gamma}H(zi​)αβγ. H(zi)γH(z_i)^{\\gamma}H(zi​)γ H(zi)γH(z_i)^{\\gamma}H(zi​)γ H(zi)γH(z_i)^{\\gamma} H(zi)γH(z_i)^{\\gamma} H(zi)γH(z_i)^{\\gamma} H(zi)γ H ( zi z i )γ ) γ H(z_i)^{\\gamma} H(zi​)γ H(zi​)γ  H ( zi​ z i​ i​ i​ i i  i i ​    )γ ) γ γ γ γ γ  γ γ γ H(zi)βγH(z_i)^{\\beta\\gamma}H(zi​)βγ H(zi)βγH(z_i)^{\\beta\\gamma}H(zi​)βγ H(zi)βγH(z_i)^{\\beta\\gamma} H(zi)βγH(z_i)^{\\beta\\gamma} H(zi)βγH(z_i)^{\\beta\\gamma} H(zi)βγ H ( zi z i )βγ ) βγ β γ H(z_i)^{\\beta\\gamma} H(zi​)βγ H(zi​)βγ  H ( zi​ z i​ i​ i​ i i  i i ​    )βγ ) βγ βγ βγ βγ βγ  βγ βγ β γ H(zi)αβγH(z_i)^{\\alpha\\beta\\gamma}H(zi​)αβγ H(zi)αβγH(z_i)^{\\alpha\\beta\\gamma}H(zi​)αβγ H(zi)αβγH(z_i)^{\\alpha\\beta\\gamma} H(zi)αβγH(z_i)^{\\alpha\\beta\\gamma} H(zi)αβγH(z_i)^{\\alpha\\beta\\gamma} H(zi)αβγ H ( zi z i )αβγ ) αβγ α β γ H(z_i)^{\\alpha\\beta\\gamma} H(zi​)αβγ H(zi​)αβγ  H ( zi​ z i​ i​ i​ i i  i i ​    )αβγ ) αβγ αβγ αβγ αβγ αβγ  αβγ αβγ α β γ Charlie calculates IαβγI^{\\alpha\\beta\\gamma}Iαβγ and compares IαβγI^{\\alpha\\beta\\gamma}Iαβγ with\nH(zi)αβγH(z_i)^{\\alpha\\beta\\gamma}H(zi​)αβγ. IαβγI^{\\alpha\\beta\\gamma}Iαβγ IαβγI^{\\alpha\\beta\\gamma}Iαβγ IαβγI^{\\alpha\\beta\\gamma} IαβγI^{\\alpha\\beta\\gamma} IαβγI^{\\alpha\\beta\\gamma} Iαβγ Iαβγ I αβγ α β γ I^{\\alpha\\beta\\gamma} Iαβγ Iαβγ  Iαβγ I αβγ αβγ αβγ αβγ αβγ  αβγ αβγ α β γ IαβγI^{\\alpha\\beta\\gamma}Iαβγ IαβγI^{\\alpha\\beta\\gamma}Iαβγ IαβγI^{\\alpha\\beta\\gamma} IαβγI^{\\alpha\\beta\\gamma} IαβγI^{\\alpha\\beta\\gamma} Iαβγ Iαβγ I αβγ α β γ I^{\\alpha\\beta\\gamma} Iαβγ Iαβγ  Iαβγ I αβγ αβγ αβγ αβγ αβγ  αβγ αβγ α β γ H(zi)αβγH(z_i)^{\\alpha\\beta\\gamma}H(zi​)αβγ H(zi)αβγH(z_i)^{\\alpha\\beta\\gamma}H(zi​)αβγ H(zi)αβγH(z_i)^{\\alpha\\beta\\gamma} H(zi)αβγH(z_i)^{\\alpha\\beta\\gamma} H(zi)αβγH(z_i)^{\\alpha\\beta\\gamma} H(zi)αβγ H ( zi z i )αβγ ) αβγ α β γ H(z_i)^{\\alpha\\beta\\gamma} H(zi​)αβγ H(zi​)αβγ  H ( zi​ z i​ i​ i​ i i  i i ​    )αβγ ) αβγ αβγ αβγ αβγ αβγ  αβγ αβγ α β γ "],[139,"We provide a simple wrapper for famous APSI library. Please read the README of the repo carefully.\nWe are not going to discuss any content related to APSI further. APSI README Please check details of configs at PIR Configuration. You are supposed to be aware of that we provided the EXACT the same API to APSI.\nSo you should read APSI CLI arguments as well. PIR Configuration EXACT APSI CLI arguments The extra features brought are: \nUse Yacl Link as communication layer.\nExperimental bucketized PIR.\nProvide APIs for further integration.\n Use Yacl Link as communication layer. Experimental bucketized PIR. Provide APIs for further integration. If you want to try a similar CLI like APSI, you could compile the source code by  And get CLI parameters like this:  "],[38,"We use bazel for building and testing:  "],[152,"We use the config file to specify different PSI protocols and input data. "],[119,"We use the config file to specify input data and parameter files. "],[142,"We use the original APSI params. For details, please check APSI PSIParams . APSI PSIParams For senders: An APSI params file must be provided with CSV files. If a sender db file is provided, the APSI params is not required and would be ignored.\nFor receivers: The APSI params file is optional. If not provided, receivers will ask for senders. If provided, please make sure receivers and senders share\nthe same APSI params file, otherwise error occurred. It’s not easy to find a suitable APSI params file. So APSI provides some examples at `APSI parameters <https://github.com/microsoft/APSI/tree/main/parameters`_.\nWe have a copy at APSI parameters <blob/main/examples/pir/apsi/parameters> as well.\nYou can refer to here to choose the appropriate parameter file. `APSI parameters <https://github.com/microsoft/APSI/tree/main/parameters`_ https://github.com/microsoft/APSI/tree/main/parameters`_ APSI parameters <blob/main/examples/pir/apsi/parameters> here To launch PIR, please check LaunchConfig at Launch Configuration, and\nspecific config: sender config and receiver config. Launch Configuration "],[146,"We will collect some popular questions from users and update this part promptly. "],[22,"Welcome to SecretFlow PSI Library. There are multiple methods to use PSI/PIR. \nC++ binaries, you could build the binary or with release docker image: secretflow/release-ci:latest (secretflow/release-ci-aarch64:latest for ARM).\nPython packages\n\n\nSPU warps the library as Python bindings. You could call PSI/PIR with spu.\nSecretFlow warps SPU further with user-friendly APIs.\n\n\n\nApplications\n\n\nSCQL integrates this library to do JOIN operations.\nSecretPad provides PSI component.\n\n\n\n C++ binaries, you could build the binary or with release docker image: secretflow/release-ci:latest (secretflow/release-ci-aarch64:latest for ARM). secretflow/release-ci:latest secretflow/release-ci-aarch64:latest Python packages\n\n\nSPU warps the library as Python bindings. You could call PSI/PIR with spu.\nSecretFlow warps SPU further with user-friendly APIs.\n\n\n \n\nSPU warps the library as Python bindings. You could call PSI/PIR with spu.\nSecretFlow warps SPU further with user-friendly APIs.\n\n \nSPU warps the library as Python bindings. You could call PSI/PIR with spu.\nSecretFlow warps SPU further with user-friendly APIs.\n SPU warps the library as Python bindings. You could call PSI/PIR with spu. SPU SecretFlow warps SPU further with user-friendly APIs. SecretFlow Applications\n\n\nSCQL integrates this library to do JOIN operations.\nSecretPad provides PSI component.\n\n\n \n\nSCQL integrates this library to do JOIN operations.\nSecretPad provides PSI component.\n\n \nSCQL integrates this library to do JOIN operations.\nSecretPad provides PSI component.\n SCQL integrates this library to do JOIN operations. SCQL SecretPad provides PSI component. SecretPad For PSI, we have a developing v2 PSI, and we recommend using it. PSI v2 PSI PSI v1 APIs(Deprecated)PSI v2 APIsSupported ProtocolsECDH, KKRT, ECDH_OPRF_UB, DP_PSI, RR22ECDH, KKRT, RR22, ECDH_OPRF_UBCSV parserSupport a subset of csv files.Apache Arrow, support all legal csv files.Recovery after failureUnsupportedSupportedSupport duplicated keysUnsupportedSupportedRelease DockerNot providedProvidedPython Bindingwith SPUwith SPU PSI v1 APIs(Deprecated)PSI v2 APIs PSI v1 APIs(Deprecated)PSI v2 APIs  PSI v1 APIs(Deprecated) PSI v1 APIs(Deprecated) PSI v2 APIs PSI v2 APIs Supported ProtocolsECDH, KKRT, ECDH_OPRF_UB, DP_PSI, RR22ECDH, KKRT, RR22, ECDH_OPRF_UBCSV parserSupport a subset of csv files.Apache Arrow, support all legal csv files.Recovery after failureUnsupportedSupportedSupport duplicated keysUnsupportedSupportedRelease DockerNot providedProvidedPython Bindingwith SPUwith SPU Supported ProtocolsECDH, KKRT, ECDH_OPRF_UB, DP_PSI, RR22ECDH, KKRT, RR22, ECDH_OPRF_UB Supported Protocols Supported Protocols ECDH, KKRT, ECDH_OPRF_UB, DP_PSI, RR22 ECDH, KKRT, ECDH_OPRF_UB, DP_PSI, RR22 ECDH, KKRT, RR22, ECDH_OPRF_UB ECDH, KKRT, RR22, ECDH_OPRF_UB CSV parserSupport a subset of csv files.Apache Arrow, support all legal csv files. CSV parser CSV parser Support a subset of csv files. Support a subset of csv files. Apache Arrow, support all legal csv files. Apache Arrow, support all legal csv files. Recovery after failureUnsupportedSupported Recovery after failure Recovery after failure Unsupported Unsupported Supported Supported Support duplicated keysUnsupportedSupported Support duplicated keys Support duplicated keys Unsupported Unsupported Supported Supported Release DockerNot providedProvided Release Docker Release Docker Not provided Not provided Provided Provided Python Bindingwith SPUwith SPU Python Binding Python Binding with SPU with SPU with SPU with SPU "],[36,"You can use docker to compile:  "],[132,"You could build psi binary with bazel:  Then use binary with:  "],[163,"You could build psi binary with bazel:  Then use binary with:  "],[37,"You need to install: \ngcc>=11.2\ncmake>=3.26\nninja\nnasm>=2.15\npython>=3.8\nbazel\ngolang\nxxd\nlld\nperl>=5.20.3.1\n gcc>=11.2 cmake>=3.26 ninja nasm>=2.15 python>=3.8 bazel golang xxd lld perl>=5.20.3.1 For bazel, please check version in .bazeliskrc or use bazelisk instead. .bazeliskrc "]],"type":"string"},"type":{"docs":{"1":0,"2":1,"3":2,"4":3,"5":4,"6":5,"7":6,"8":7,"9":8,"10":9,"11":10,"12":11,"13":12,"14":13,"15":14,"16":15,"17":16,"18":17,"19":18,"20":19,"21":20,"22":21,"23":22,"24":23,"25":24,"26":25,"27":26,"28":27,"29":28,"30":29,"31":30,"32":31,"33":32,"34":33,"35":34,"36":35,"37":36,"38":37,"39":38,"40":39,"41":40,"42":41,"43":42,"44":43,"45":44,"46":45,"47":46,"48":47,"49":48,"50":49,"51":50,"52":51,"53":52,"54":53,"55":54,"56":55,"57":56,"58":57,"59":58,"60":59,"61":60,"62":61,"63":62,"64":63,"65":64,"66":65,"67":66,"68":67,"69":68,"70":69,"71":70,"72":71,"73":72,"74":73,"75":74,"76":75,"77":76,"78":77,"79":78,"80":79,"81":80,"82":81,"83":82,"84":83,"85":84,"86":85,"87":86,"88":87,"89":88,"90":89,"91":90,"92":91,"93":92,"94":93,"95":94,"96":95,"97":96,"98":97,"99":98,"100":99,"101":100,"102":101,"103":102,"104":103,"105":104,"106":105,"107":106,"108":107,"109":108,"110":109,"111":110,"112":111,"113":112,"114":113,"115":114,"116":115,"117":116,"118":117,"119":118,"120":119,"121":120,"122":121,"123":122,"124":123,"125":124,"126":125,"127":126,"128":127,"129":128,"130":129,"131":130,"132":131,"133":132,"134":133,"135":134,"136":135,"137":136,"138":137,"139":138,"140":139,"141":140,"142":141,"143":142,"144":143,"145":144,"146":145,"147":146,"148":147,"149":148,"150":149,"151":150,"152":151,"153":152,"154":153,"155":154,"156":155,"157":156,"158":157,"159":158,"160":159,"161":160,"162":161,"163":162,"164":163,"165":164,"166":165,"167":166},"orderedDocs":[[1,"fragment"],[2,"fragment"],[3,"fragment"],[4,"fragment"],[5,"fragment"],[6,"fragment"],[7,"fragment"],[8,"fragment"],[9,"fragment"],[10,"fragment"],[11,"fragment"],[12,"fragment"],[13,"fragment"],[14,"fragment"],[15,"fragment"],[16,"fragment"],[17,"fragment"],[18,"fragment"],[19,"fragment"],[20,"fragment"],[21,"fragment"],[22,"fragment"],[23,"fragment"],[24,"fragment"],[25,"fragment"],[26,"fragment"],[27,"fragment"],[28,"fragment"],[29,"fragment"],[30,"fragment"],[31,"fragment"],[32,"fragment"],[33,"fragment"],[34,"fragment"],[35,"fragment"],[36,"fragment"],[37,"fragment"],[38,"fragment"],[39,"fragment"],[40,"fragment"],[41,"fragment"],[42,"fragment"],[43,"fragment"],[44,"fragment"],[45,"fragment"],[46,"fragment"],[47,"fragment"],[48,"fragment"],[49,"fragment"],[50,"fragment"],[51,"fragment"],[52,"fragment"],[53,"fragment"],[54,"fragment"],[55,"fragment"],[56,"fragment"],[57,"fragment"],[58,"fragment"],[59,"fragment"],[60,"fragment"],[61,"fragment"],[62,"fragment"],[63,"fragment"],[64,"fragment"],[65,"fragment"],[66,"fragment"],[67,"fragment"],[68,"fragment"],[69,"fragment"],[70,"fragment"],[71,"fragment"],[72,"fragment"],[73,"fragment"],[74,"fragment"],[75,"fragment"],[76,"fragment"],[77,"fragment"],[78,"fragment"],[79,"fragment"],[80,"fragment"],[81,"fragment"],[82,"fragment"],[83,"fragment"],[84,"fragment"],[85,"fragment"],[86,"fragment"],[87,"fragment"],[88,"fragment"],[89,"fragment"],[90,"fragment"],[91,"fragment"],[92,"fragment"],[93,"fragment"],[94,"fragment"],[95,"fragment"],[96,"fragment"],[97,"fragment"],[98,"fragment"],[99,"fragment"],[100,"fragment"],[101,"fragment"],[102,"fragment"],[103,"fragment"],[104,"fragment"],[105,"fragment"],[106,"fragment"],[107,"fragment"],[108,"fragment"],[109,"fragment"],[110,"fragment"],[111,"fragment"],[112,"fragment"],[113,"fragment"],[114,"fragment"],[115,"fragment"],[116,"fragment"],[117,"fragment"],[118,"fragment"],[119,"fragment"],[120,"fragment"],[121,"fragment"],[122,"fragment"],[123,"fragment"],[124,"fragment"],[125,"fragment"],[126,"fragment"],[127,"fragment"],[128,"fragment"],[129,"fragment"],[130,"fragment"],[131,"fragment"],[132,"fragment"],[133,"fragment"],[134,"fragment"],[135,"fragment"],[136,"fragment"],[137,"fragment"],[138,"fragment"],[139,"fragment"],[140,"fragment"],[141,"fragment"],[142,"fragment"],[143,"fragment"],[144,"fragment"],[145,"fragment"],[146,"fragment"],[147,"fragment"],[148,"fragment"],[149,"fragment"],[150,"fragment"],[151,"fragment"],[152,"fragment"],[153,"fragment"],[154,"fragment"],[155,"fragment"],[156,"fragment"],[157,"fragment"],[158,"fragment"],[159,"fragment"],[160,"fragment"],[161,"fragment"],[162,"fragment"],[163,"fragment"],[164,"fragment"],[165,"fragment"],[166,"fragment"],[167,"fragment"]],"type":"string"},"symbol.domain":{"docs":{},"orderedDocs":[],"type":"string"},"symbol.name":{"docs":{},"orderedDocs":[],"type":"string"},"symbol.module":{"docs":{},"orderedDocs":[],"type":"string"}},"enabled":true,"isSorted":true},"language":"english"}