def encode7bit(value):
temp = value
bytes = ""
while temp >= 128:
bytes += chr(0x000000FF & (temp | 0x80))
temp >>= 7
bytes += chr(temp)
return bytes
def encodeVLQ(value):
o = [ chr(value & 0x7f) ]
value >>= 7
while value > 0:
o.insert(0, chr(0x000000FF & (value | 0x80)))
value >>= 7
return ''.join(o)
number = 138
print " VLQ: " + encode7bit(number).encode("hex")
print "7bit: " + encodeVLQ(number).encode("hex")
ZGVmIGVuY29kZTdiaXQodmFsdWUpOgogICAgdGVtcCA9IHZhbHVlCiAgICBieXRlcyA9ICIiCiAgICB3aGlsZSB0ZW1wID49IDEyODoKICAgICAgICBieXRlcyArPSBjaHIoMHgwMDAwMDBGRiAmICh0ZW1wIHwgMHg4MCkpCiAgICAgICAgdGVtcCA+Pj0gNwogICAgYnl0ZXMgKz0gY2hyKHRlbXApCiAgICByZXR1cm4gYnl0ZXMKCmRlZiBlbmNvZGVWTFEodmFsdWUpOgogICAgbyA9IFsgY2hyKHZhbHVlICYgMHg3ZikgXQogICAgdmFsdWUgPj49IDcKICAgIHdoaWxlIHZhbHVlID4gMDoKICAgICAgICBvLmluc2VydCgwLCBjaHIoMHgwMDAwMDBGRiAmICh2YWx1ZSB8IDB4ODApKSkKICAgICAgICB2YWx1ZSAgPj49IDcKICAgIHJldHVybiAnJy5qb2luKG8pCgpudW1iZXIgPSAxMzgKcHJpbnQgIiBWTFE6ICIgKyBlbmNvZGU3Yml0KG51bWJlcikuZW5jb2RlKCJoZXgiKQpwcmludCAiN2JpdDogIiArIGVuY29kZVZMUShudW1iZXIpLmVuY29kZSgiaGV4Iik=