LyoqDQogKiBAZmlsZSAgICAgbW9ycGhvX2ltYWdlX2RhdGEuaA0KICogQGJyaWVmICAgIInmkZyDZoFbg16CzI1ckaKRzJLoi2ANCiAqIEB2ZXJzaW9uICAxLjAuMA0KICogQGRhdGUgICAgIDIwMDgtMDYtMDkNCiAqDQogKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxMiBNb3JwaG8sIEluYy4NCiAqLw0KDQojaWZuZGVmIE1PUlBIT19JTUFHRV9EQVRBX0gNCiNkZWZpbmUgTU9SUEhPX0lNQUdFX0RBVEFfSA0KDQojaWZkZWYgX19jcGx1c3BsdXMNCmV4dGVybiAiQyIgew0KI2VuZGlmDQoNCnR5cGVkZWYgc3RydWN0ew0KICAgIHZvaWQgKiB5OyAgICAgICAgICAgICAgIC8qKjwgWYnmkZyCzJDmk6qDfINDg5ODXiAqLw0KICAgIHZvaWQgKiB1OyAgICAgICAgICAgICAgIC8qKjwgVYnmkZyCzJDmk6qDfINDg5ODXiAqLw0KICAgIHZvaWQgKiB2OyAgICAgICAgICAgICAgIC8qKjwgVonmkZyCzJDmk6qDfINDg5ODXiAqLw0KfSBtb3JwaG9fSW1hZ2VZdXZQbGFuYXI7DQoNCnR5cGVkZWYgc3RydWN0ew0KICAgIHZvaWQgKiB5OyAgICAgICAgICAgICAgIC8qKjwgWYnmkZyCzJDmk6qDfINDg5ODXiAqLw0KICAgIHZvaWQgKiB1djsgICAgICAgICAgICAgIC8qKjwgVVaJ5pGcgsyQ5pOqg3yDQ4OTg14gKi8NCn0gbW9ycGhvX0ltYWdlWXV2U2VtaVBsYW5hcjsNCg0KLyoqIInmkZyDZoFbg14uICovDQp0eXBlZGVmIHN0cnVjdCB7DQogICAgaW50IHdpZHRoOyAgICAgICAgICAgICAgLyoqPCCVnSAqLw0KICAgIGludCBoZWlnaHQ7ICAgICAgICAgICAgIC8qKjwgjYKCsyAqLw0KICAgIHVuaW9uew0KICAgICAgICB2b2lkICogcDsgICAgICAgICAgIC8qKjwgieaRnINmgVuDXoLMkOaTqoN8g0ODk4NeICovDQogICAgICAgIG1vcnBob19JbWFnZVl1dlBsYW5hciBwbGFuYXI7DQogICAgICAgIG1vcnBob19JbWFnZVl1dlNlbWlQbGFuYXIgc2VtaV9wbGFuYXI7DQogICAgfSBkYXQ7DQp9IG1vcnBob19JbWFnZURhdGE7DQoNCiNpZmRlZiBfX2NwbHVzcGx1cw0KfQ0KI2VuZGlmDQoNCiNlbmRpZiAvKiAjaWZuZGVmIE1PUlBIT19JTUFHRV9EQVRBX0ggKi8NCg==