--0-1756774879-11524649941951 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Content-Id: Content-Disposition: inline --- nobu / ruby-lang.org wrote: > Hi, > > At Sun, 9 Jul 2006 03:11:44 +0900, > Daniel Berger wrote in [ruby-core:08177]: > > Attached is an rdoc patch for what I believe are > the > > most used methods of mkmf. They include docs for: > > Thank you for the great job. > > > check_sizeof > > I guess checking exact size of a type is less > necessary in > common. Checking trueness of an expression might be > enough in > most cases, I guess. > > E.g.: > > def check_iftrue(expr, headers il, &b) > checking_for("if #{expr}") do > try_static_assert(expr, headers, &b) > end > end > > check_iftrue("sizeof(long) sizeof(void*)") > > than: > > check_sizeof("void*") check_sizeof("long") Probably. What would it return for a preprocessor constant, if any? Well, I leave it up to you. > > > check_sizeof > > have_library > > have_struct_member > > have_type > > And these 4 methods accepts a name or a list for > headers. Ok, I've updated the docs to reflect this and modified the source a tiny bit to use the word 'headers' instead of 'header' to indicate to programmers that it can take more than one. > > > Also, I was wondering if we could get the > have_const > > method added in, as per Nobu's patch in > > ruby-core:4426. > > It worked for integral constants only. Now I guess > have_macro > and have_var would do the role instead. Any idea? Neither of those work for checking the presence of an enum typedef member in my experiments. See ruby-core:4422. Perhaps I've made a mistake, though. What is the purpose of allowing a block to methods like have_header? I can see within create_tmpsrc that it does 'src ield(src) if block_given?'. How would one use a block in practice? Or is it an artifact of some sort? Also, should we tag the methods that aren't meant for public use with :no-doc: tags? Or perhaps move all of these methods into Kernel, and designate private methods? Attached is the updated diff. Regards, Dan __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com --0-1756774879-11524649941951 Content-Type: application/octet-stream; name="mkmf.diff" Content-Transfer-Encoding: base64 Content-Description: 1792896259-mkmf.diff Content-Disposition: attachment; filename="mkmf.diff" LS0tIG1rbWYub3JpZwlGcmkgSnVuIDAyIDAyOjE2OjQ0IDIwMDYNCisrKyBt a21mLnJiCVN1biBKdWwgMDkgMTE6MDE6NDEgMjAwNg0KQEAgLTU0Nyw2ICs1 NDcsMTEgQEANCiAgIHINCiBlbmQNCiANCisjIFJldHVybnMgd2hldGhlciBv ciBub3QgK21hY3JvKyBpcyBkZWZpbmVkIGVpdGhlciBpbiB0aGUgY29tbW9u IGhlYWRlcg0KKyMgZmlsZXMgb3Igd2l0aGluIGFueSAraGVhZGVycysgeW91 IHByb3ZpZGUuDQorIw0KKyMgQW55IG9wdGlvbnMgeW91IHBhc3MgdG8gK29w dCsgYXJlIHBhc3NlZCBhbG9uZyB0byB0aGUgY29tcGlsZXIuDQorIw0KIGRl ZiBoYXZlX21hY3JvKG1hY3JvLCBoZWFkZXJzID0gbmlsLCBvcHQgPSAiIiwg JmIpDQogICBtID0gIiN7bWFjcm99Ig0KICAgbSA8PCAiIGluICN7aGVhZGVy cy5pbnNwZWN0fSIgaWYgaGVhZGVycw0KQEAgLTU1NSw3ICs1NjAsMTUgQEAN CiAgIGVuZA0KIGVuZA0KIA0KLWRlZiBoYXZlX2xpYnJhcnkobGliLCBmdW5j ID0gbmlsLCBoZWFkZXI9bmlsLCAmYikNCisjIFJldHVybnMgd2hldGhlciBv ciBub3QgdGhlIGdpdmVuIGVudHJ5IHBvaW50ICtmdW5jKyBjYW4gYmUgZm91 bmQgd2l0aGluDQorIyArbGliKy4gIElmICtmdW5jKyBpcyBuaWwsIHRoZSAn bWFpbigpJyBlbnRyeSBwb2ludCBpcyB1c2VkIGJ5IGRlZmF1bHQuDQorIyBJ ZiBmb3VuZCwgaXQgYWRkcyB0aGUgbGlicmFyeSB0byBsaXN0IG9mIGxpYnJh cmllcyB0byBiZSB1c2VkIHdoZW4gbGlua2luZw0KKyMgeW91ciBleHRlbnNp b24uDQorIw0KKyMgSWYgK2hlYWRlcnMrIGFyZSBwcm92aWRlZCwgaXQgd2ls bCBpbmNsdWRlIHRob3NlIGhlYWRlciBmaWxlcyBhcyB0aGUNCisjIGhlYWRl ciBmaWxlcyBpdCBsb29rcyBpbiB3aGVuIHNlYXJjaGluZyBmb3IgK2Z1bmMr Lg0KKyMNCitkZWYgaGF2ZV9saWJyYXJ5KGxpYiwgZnVuYyA9IG5pbCwgaGVh ZGVycz1uaWwsICZiKQ0KICAgZnVuYyA9ICJtYWluIiBpZiAhZnVuYyBvciBm dW5jLmVtcHR5Pw0KICAgbGliID0gd2l0aF9jb25maWcobGliKydsaWInLCBs aWIpDQogICBjaGVja2luZ19mb3IgIiN7ZnVuY30oKSBpbiAje0xJQkFSRyVs aWJ9IiBkbw0KQEAgLTU2Myw3ICs1NzYsNyBAQA0KICAgICAgIHRydWUNCiAg ICAgZWxzZQ0KICAgICAgIGxpYnMgPSBhcHBlbmRfbGlicmFyeSgkbGlicywg bGliKQ0KLSAgICAgIGlmIHRyeV9mdW5jKGZ1bmMsIGxpYnMsIGhlYWRlciwg JmIpDQorICAgICAgaWYgdHJ5X2Z1bmMoZnVuYywgbGlicywgaGVhZGVycywg JmIpDQogICAgICAgICAkbGlicyA9IGxpYnMNCiAgICAgICAgIHRydWUNCiAg ICAgICBlbHNlDQpAQCAtNTczLDYgKzU4NiwxMyBAQA0KICAgZW5kDQogZW5k DQogDQorIyBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBlbnRyeSBwb2lu dCArZnVuYysgY2FuIGJlIGZvdW5kIHdpdGhpbiB0aGUgbGlicmFyeQ0KKyMg K2xpYisgaW4gb25lIG9mIHRoZSArcGF0aHMrIHNwZWNpZmllZCwgd2hlcmUg K3BhdGhzKyBpcyBhbiBhcnJheSBvZiBzdHJpbmdzLg0KKyMgSWYgK2Z1bmMr IGlzIG5pbCAsIHRoZW4gdGhlIG1haW4oKSBmdW5jdGlvbiBpcyB1c2VkIGFz IHRoZSBlbnRyeSBwb2ludC4NCisjDQorIyBJZiArbGliKyBpcyBmb3VuZCwg dGhlbiB0aGUgcGF0aCBpdCB3YXMgZm91bmQgb24gaXMgYWRkZWQgdG8gdGhl IGxpc3Qgb2YNCisjIGxpYnJhcnkgcGF0aHMgc2VhcmNoZWQgYW5kIGxpbmtl ZCBhZ2FpbnN0Lg0KKyMNCiBkZWYgZmluZF9saWJyYXJ5KGxpYiwgZnVuYywg KnBhdGhzLCAmYikNCiAgIGZ1bmMgPSAibWFpbiIgaWYgIWZ1bmMgb3IgZnVu Yy5lbXB0eT8NCiAgIGxpYiA9IHdpdGhfY29uZmlnKGxpYisnbGliJywgbGli KQ0KQEAgLTU5NSw2ICs2MTUsMTQgQEANCiAgIGVuZA0KIGVuZA0KIA0KKyMg UmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgZnVuY3Rpb24gK2Z1bmMrIGNh biBiZSBmb3VuZCBpbiB0aGUgY29tbW9uDQorIyBoZWFkZXIgZmlsZXMsIG9y IHdpdGhpbiBhbnkgK2hlYWRlcnMrIHRoYXQgeW91IHByb3ZpZGUuICBJZiBm b3VuZCwgYQ0KKyMgbWFjcm8gaXMgcGFzc2VkIGFzIGEgcHJlcHJvY2Vzc29y IGNvbnN0YW50IHRvIHRoZSBjb21waWxlciB1c2luZyB0aGUNCisjIGZ1bmN0 aW9uIG5hbWUsIGluIHVwcGVyY2FzZSwgcHJlcGVuZGVkIHdpdGggJ0hBVkVf Jy4NCisjDQorIyBGb3IgZXhhbXBsZSwgaWYgaGF2ZV9mdW5jKCdmb28nKSBy ZXR1cm5lZCB0cnVlLCB0aGVuIHRoZSBIQVZFX0ZPTw0KKyMgcHJlcHJvY2Vz c29yIG1hY3JvIHdvdWxkIGJlIHBhc3NlZCB0byB0aGUgY29tcGlsZXIuDQor Iw0KIGRlZiBoYXZlX2Z1bmMoZnVuYywgaGVhZGVycyA9IG5pbCwgJmIpDQog ICBjaGVja2luZ19mb3IgIiN7ZnVuY30oKSIgZG8NCiAgICAgaWYgdHJ5X2Z1 bmMoZnVuYywgJGxpYnMsIGhlYWRlcnMsICZiKQ0KQEAgLTYwNiw2ICs2MzQs MTQgQEANCiAgIGVuZA0KIGVuZA0KIA0KKyMgUmV0dXJucyB3aGV0aGVyIG9y IG5vdCB0aGUgdmFyaWFibGUgK3ZhcisgY2FuIGJlIGZvdW5kIGluIHRoZSBj b21tb24NCisjIGhlYWRlciBmaWxlcywgb3Igd2l0aGluIGFueSAraGVhZGVy cysgdGhhdCB5b3UgcHJvdmlkZS4gIElmIGZvdW5kLCBhDQorIyBtYWNybyBp cyBwYXNzZWQgYXMgYSBwcmVwcm9jZXNzb3IgY29uc3RhbnQgdG8gdGhlIGNv bXBpbGVyIHVzaW5nIHRoZQ0KKyMgdmFyaWFibGUgbmFtZSwgaW4gdXBwZXJj YXNlLCBwcmVwZW5kZWQgd2l0aCAnSEFWRV8nLg0KKyMNCisjIEZvciBleGFt cGxlLCBpZiBoYXZlX3ZhcignZm9vJykgcmV0dXJuZWQgdHJ1ZSwgdGhlbiB0 aGUgSEFWRV9GT08NCisjIHByZXByb2Nlc3NvciBtYWNybyB3b3VsZCBiZSBw YXNzZWQgdG8gdGhlIGNvbXBpbGVyLg0KKyMNCiBkZWYgaGF2ZV92YXIodmFy LCBoZWFkZXJzID0gbmlsLCAmYikNCiAgIGNoZWNraW5nX2ZvciAiI3t2YXJ9 IiBkbw0KICAgICBpZiB0cnlfdmFyKHZhciwgaGVhZGVycywgJmIpDQpAQCAt NjE3LDYgKzY1MywxMyBAQA0KICAgZW5kDQogZW5kDQogDQorIyBSZXR1cm5z IHdoZXRoZXIgb3Igbm90IHRoZSBnaXZlbiAraGVhZGVyKyBmaWxlIGNhbiBi ZSBmb3VuZCBvbiB5b3VyIHN5c3RlbS4NCisjIElmIGZvdW5kLCBhIG1hY3Jv IGlzIHBhc3NlZCBhcyBhIHByZXByb2Nlc3NvciBjb25zdGFudCB0byB0aGUg Y29tcGlsZXIgdXNpbmcNCisjIHRoZSBoZWFkZXIgZmlsZSBuYW1lLCBpbiB1 cHBlcmNhc2UsIHByZXBlbmRlZCB3aXRoICdIQVZFXycuDQorIw0KKyMgRm9y IGV4YW1wbGUsIGlmIGhhdmVfaGVhZGVyKCdmb28uaCcpIHJldHVybmVkIHRy dWUsIHRoZW4gdGhlIEhBVkVfRk9PX0gNCisjIHByZXByb2Nlc3NvciBtYWNy byB3b3VsZCBiZSBwYXNzZWQgdG8gdGhlIGNvbXBpbGVyLg0KKyMNCiBkZWYg aGF2ZV9oZWFkZXIoaGVhZGVyLCAmYikNCiAgIGNoZWNraW5nX2ZvciBoZWFk ZXIgZG8NCiAgICAgaWYgdHJ5X2NwcChjcHBfaW5jbHVkZShoZWFkZXIpLCAm YikNCkBAIC02MjgsNiArNjcxLDEyIEBADQogICBlbmQNCiBlbmQNCiANCisj IEluc3RydWN0cyBta21mIHRvIHNlYXJjaCBmb3IgdGhlIGdpdmVuICtoZWFk ZXIrIGluIGFueSBvZiB0aGUgK3BhdGhzKw0KKyMgcHJvdmlkZWQsIGFuZCBy ZXR1cm5zIHdoZXRoZXIgb3Igbm90IGl0IHdhcyBmb3VuZCBpbiB0aG9zZSBw YXRocy4NCisjDQorIyBJZiB0aGUgaGVhZGVyIGlzIGZvdW5kIHRoZW4gdGhl IHBhdGggaXQgd2FzIGZvdW5kIG9uIGlzIGFkZGVkIHRvIHRoZSBsaXN0DQor IyBvZiBpbmNsdWRlZCBkaXJlY3RvcmllcyB0aGF0IGFyZSBzZW50IHRvIHRo ZSBjb21waWxlciAodmlhIHRoZSAtSSBzd2l0Y2gpLg0KKyMNCiBkZWYgZmlu ZF9oZWFkZXIoaGVhZGVyLCAqcGF0aHMpDQogICBjaGVja2luZ19mb3IgaGVh ZGVyIGRvDQogICAgIGlmIHRyeV9jcHAoY3BwX2luY2x1ZGUoaGVhZGVyKSkN CkBAIC02NDcsMTEgKzY5NiwyMiBAQA0KICAgZW5kDQogZW5kDQogDQotZGVm IGhhdmVfc3RydWN0X21lbWJlcih0eXBlLCBtZW1iZXIsIGhlYWRlciA9IG5p bCwgJmIpDQorIyBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBzdHJ1Y3Qg b2YgdHlwZSArdHlwZSsgY29udGFpbnMgK21lbWJlcisuICBJZg0KKyMgaXQg ZG9lcyBub3QsIG9yIHRoZSBzdHJ1Y3QgdHlwZSBjYW4ndCBiZSBmb3VuZCwg dGhlbiBmYWxzZSBpcyByZXR1cm5lZC4gIFlvdQ0KKyMgbWF5IG9wdGlvbmFs bHkgc3BlY2lmeSBhZGRpdGlvbmFsICtoZWFkZXJzKyBpbiB3aGljaCB0byBs b29rIGZvciB0aGUgc3RydWN0DQorIyAoaW4gYWRkaXRpb24gdG8gdGhlIGNv bW1vbiBoZWFkZXIgZmlsZXMpLg0KKyMNCisjIElmIGZvdW5kLCBhIG1hY3Jv IGlzIHBhc3NlZCBhcyBhIHByZXByb2Nlc3NvciBjb25zdGFudCB0byB0aGUg Y29tcGlsZXIgdXNpbmcNCisjIHRoZSBtZW1iZXIgbmFtZSwgaW4gdXBwZXJj YXNlLCBwcmVwZW5kZWQgd2l0aCAnSEFWRV9TVF8nLg0KKyMNCisjIEZvciBl eGFtcGxlLCBpZiBoYXZlX3N0cnVjdF9tZW1iZXIoJ2ZvbycsICdiYXInKSBy ZXR1cm5lZCB0cnVlLCB0aGVuIHRoZQ0KKyMgSEFWRV9TVF9CQVIgcHJlcHJv Y2Vzc29yIG1hY3JvIHdvdWxkIGJlIHBhc3NlZCB0byB0aGUgY29tcGlsZXIu DQorIyANCitkZWYgaGF2ZV9zdHJ1Y3RfbWVtYmVyKHR5cGUsIG1lbWJlciwg aGVhZGVycyA9IG5pbCwgJmIpDQogICBjaGVja2luZ19mb3IgIiN7dHlwZX0u I3ttZW1iZXJ9IiBkbw0KICAgICBpZiB0cnlfY29tcGlsZSg8PCJTUkMiLCAm YikNCiAje0NPTU1PTl9IRUFERVJTfQ0KLSN7Y3BwX2luY2x1ZGUoaGVhZGVy KX0NCisje2NwcF9pbmNsdWRlKGhlYWRlcnMpfQ0KIC8qdG9wKi8NCiBpbnQg bWFpbigpIHsgcmV0dXJuIDA7IH0NCiBpbnQgcyA9IChjaGFyICopJigoI3t0 eXBlfSopMCktPiN7bWVtYmVyfSAtIChjaGFyICopMDsNCkBAIC02NjQsMTcg KzcyNCwzMCBAQA0KICAgZW5kDQogZW5kDQogDQotZGVmIGhhdmVfdHlwZSh0 eXBlLCBoZWFkZXIgPSBuaWwsIG9wdCA9ICIiLCAmYikNCisjIFJldHVybnMg d2hldGhlciBvciBub3QgdGhlIHN0YXRpYyB0eXBlICt0eXBlKyBpcyBkZWZp bmVkLiAgWW91IG1heQ0KKyMgb3B0aW9uYWxseSBwYXNzIGFkZGl0aW9uYWwg K2hlYWRlcnMrIHRvIGNoZWNrIGFnYWluc3QgaW4gYWRkaXRpb24gdG8gdGhl DQorIyBjb21tb24gaGVhZGVyIGZpbGVzLg0KKyMNCisjIFlvdSBtYXkgYWxz byBwYXNzIGFkZGl0aW9uYWwgZmxhZ3MgdG8gK29wdCsgd2hpY2ggYXJlIHRo ZW4gcGFzc2VkIGFsb25nIHRvDQorIyB0aGUgY29tcGlsZXIuDQorIw0KKyMg SWYgZm91bmQsIGEgbWFjcm8gaXMgcGFzc2VkIGFzIGEgcHJlcHJvY2Vzc29y IGNvbnN0YW50IHRvIHRoZSBjb21waWxlciB1c2luZw0KKyMgdGhlIHR5cGUg bmFtZSwgaW4gdXBwZXJjYXNlLCBwcmVwZW5kZWQgd2l0aCAnSEFWRV9UWVBF XycuDQorIw0KKyMgRm9yIGV4YW1wbGUsIGlmIGhhdmVfdHlwZSgnZm9vJykg cmV0dXJuZWQgdHJ1ZSwgdGhlbiB0aGUgSEFWRV9UWVBFX0ZPTw0KKyMgcHJl cHJvY2Vzc29yIG1hY3JvIHdvdWxkIGJlIHBhc3NlZCB0byB0aGUgY29tcGls ZXIuDQorIw0KK2RlZiBoYXZlX3R5cGUodHlwZSwgaGVhZGVycyA9IG5pbCwg b3B0ID0gIiIsICZiKQ0KICAgY2hlY2tpbmdfZm9yIHR5cGUgZG8NCi0gICAg aGVhZGVyID0gY3BwX2luY2x1ZGUoaGVhZGVyKQ0KKyAgICBoZWFkZXJzID0g Y3BwX2luY2x1ZGUoaGVhZGVycykNCiAgICAgaWYgdHJ5X2NvbXBpbGUoPDwi U1JDIiwgb3B0LCAmYikgb3IgKC9cQVx3K1x6L24gPX4gdHlwZSAmJiB0cnlf Y29tcGlsZSg8PCJTUkMiLCBvcHQsICZiKSkNCiAje0NPTU1PTl9IRUFERVJT fQ0KLSN7aGVhZGVyfQ0KKyN7aGVhZGVyc30NCiAvKnRvcCovDQogc3RhdGlj ICN7dHlwZX0gdDsNCiBTUkMNCiAje0NPTU1PTl9IRUFERVJTfQ0KLSN7aGVh ZGVyfQ0KKyN7aGVhZGVyc30NCiAvKnRvcCovDQogc3RhdGljICN7dHlwZX0g KnQ7DQogU1JDDQpAQCAtNjg2LDEzICs3NTksMjMgQEANCiAgIGVuZA0KIGVu ZA0KIA0KLWRlZiBjaGVja19zaXplb2YodHlwZSwgaGVhZGVyID0gbmlsLCAm YikNCisjIFJldHVybnMgdGhlIHNpemUgb2YgdGhlIGdpdmVuICt0eXBlKy4g IFlvdSBtYXkgb3B0aW9uYWxseSBzcGVjaWZ5IGFkZGl0aW9uYWwNCisjICto ZWFkZXJzKyB0byBzZWFyY2ggaW4gZm9yIHRoZSArdHlwZSsuDQorIw0KKyMg SWYgZm91bmQsIGEgbWFjcm8gaXMgcGFzc2VkIGFzIGEgcHJlcHJvY2Vzc29y IGNvbnN0YW50IHRvIHRoZSBjb21waWxlciB1c2luZw0KKyMgdGhlIHR5cGUg bmFtZSwgaW4gdXBwZXJjYXNlLCBwcmVwZW5kZWQgd2l0aCAnU0laRU9GXycs IGZvbGxvd2VkIGJ5IHRoZSB0eXBlDQorIyBuYW1lLCBmb2xsb3dlZCBieSAn PVgnIHdoZXJlICdYJyBpcyB0aGUgYWN0dWFsIHNpemUuDQorIw0KKyMgRm9y IGV4YW1wbGUsIGlmIGNoZWNrX3NpemVvZignbXlzdHJ1Y3QnKSByZXR1cm5l ZCAxMiwgdGhlbiB0aGUNCisjIFNJWkVPRl9NWVNUUlVDVD0xMiBwcmVwcm9j ZXNzb3IgbWFjcm8gd291bGQgYmUgcGFzc2VkIHRvIHRoZSBjb21waWxlci4N CisjDQorZGVmIGNoZWNrX3NpemVvZih0eXBlLCBoZWFkZXJzID0gbmlsLCAm YikNCiAgIGV4cHIgPSAic2l6ZW9mKCN7dHlwZX0pIg0KICAgbSA9ICJjaGVj a2luZyBzaXplIG9mICN7dHlwZX0uLi4gIg0KICAgbWVzc2FnZSAiJXMiLCBt DQogICBhID0gc2l6ZSA9IG5pbA0KICAgTG9nZ2luZzo6cG9zdHBvbmUgZG8N Ci0gICAgaWYgc2l6ZSA9IHRyeV9jb25zdGFudChleHByLCBoZWFkZXIsICZi KQ0KKyAgICBpZiBzaXplID0gdHJ5X2NvbnN0YW50KGV4cHIsIGhlYWRlcnMs ICZiKQ0KICAgICAgICRkZWZzLnB1c2goZm9ybWF0KCItRFNJWkVPRl8lcz0l ZCIsIHR5cGUudXBjYXNlLnRyX3MoIl5BLVowLTlfIiwgIl8iKSwgc2l6ZSkp DQogICAgICAgYSA9ICIje3NpemV9XG4iDQogICAgIGVsc2UNCkBAIC04NDcs NiArOTMwLDE3IEBADQogICAkZXh0Y29uZl9oID0gaGVhZGVyDQogZW5kDQog DQorIyBTZXRzIGEgK3RhcmdldCsgbmFtZSB0aGF0IHRoZSB1c2VyIGNhbiB0 aGVuIHVzZSB0byBjb25maWd1cmUgdmFyaW91cyAnd2l0aCcNCisjIG9wdGlv bnMgd2l0aCBvbiB0aGUgY29tbWFuZCBsaW5lIGJ5IHVzaW5nIHRoYXQgbmFt ZS4gIEZvciBleGFtcGxlLCBpZiB0aGUNCisjIHRhcmdldCBpcyBzZXQgdG8g ImZvbyIsIHRoZW4gdGhlIHVzZXIgY291bGQgdXNlIHRoZSAtLXdpdGgtZm9v LWRpciBjb21tYW5kDQorIyBsaW5lIG9wdGlvbi4NCisjDQorIyBZb3UgbWF5 IHBhc3MgYWxvbmcgYWRkaXRpb25hbCAnaW5jbHVkZScgb3IgJ2xpYicgZGVm YXVsdHMgdmlhIHRoZSAraWRlZmF1bHQrDQorIyBhbmQgK2xkZWZhdWx0KyBw YXJhbWV0ZXJzLCByZXNwZWN0aXZlbHkuDQorIw0KKyMgTm90ZSB0aGF0IGRp cl9jb25maWcgb25seSBhZGRzIHRvIHRoZSBsaXN0IG9mIHBsYWNlcyB0byBz ZWFyY2ggZm9yIGxpYnJhcmllcw0KKyMgYW5kIGluY2x1ZGUgZmlsZXMuICBJ dCBkb2VzIG5vdCBsaW5rIHRoZSBsaWJyYXJpZXMgaW50byB5b3VyIGFwcGxp Y2F0aW9uLg0KKyMNCiBkZWYgZGlyX2NvbmZpZyh0YXJnZXQsIGlkZWZhdWx0 PW5pbCwgbGRlZmF1bHQ9bmlsKQ0KICAgaWYgZGlyID0gd2l0aF9jb25maWco dGFyZ2V0ICsgIi1kaXIiLCAoaWRlZmF1bHQgdW5sZXNzIGxkZWZhdWx0KSkN CiAgICAgZGVmYXVsdHMgPSBBcnJheSA9PT0gZGlyID8gZGlyIDogZGlyLnNw bGl0KEZpbGU6OlBBVEhfU0VQQVJBVE9SKQ0KQEAgLTEwMjEsNiArMTExNSwy NCBAQA0KIFJVTEVTDQogZW5kDQogDQorIyBHZW5lcmF0ZXMgdGhlIE1ha2Vm aWxlIGZvciB5b3VyIGV4dGVuc2lvbiwgcGFzc2luZyBhbG9uZyBhbnkgb3B0 aW9ucyBhbmQNCisjIHByZXByb2Nlc3NvciBjb25zdGFudHMgdGhhdCB5b3Ug bWF5IGhhdmUgZ2VuZXJhdGVkIHRocm91Z2ggb3RoZXIgbWV0aG9kcy4NCisj DQorIyBUaGUgK3RhcmdldCsgbmFtZSBzaG91bGQgY29ycmVzcG9uZCB0aGUg bmFtZSBvZiB0aGUgZ2xvYmFsIGZ1bmN0aW9uIG5hbWUNCisjIGRlZmluZWQg d2l0aGluIHlvdXIgQyBleHRlbnNpb24sIG1pbnVzIHRoZSAnSW5pdF8nLiAg Rm9yIGV4YW1wbGUsIGlmIHlvdXINCisjIEMgZXh0ZW5zaW9uIGlzIGRlZmlu ZWQgYXMgJ0luaXRfZm9vJywgdGhlbiB5b3VyIHRhcmdldCB3b3VsZCBzaW1w bHkgYmUgJ2ZvbycuDQorIw0KKyMgSWYgYW55ICcvJyBjaGFyYWN0ZXJzIGFy ZSBwcmVzZW50IGluIHRoZSB0YXJnZXQgbmFtZSwgb25seSB0aGUgbGFzdCBu YW1lDQorIyBpcyBpbnRlcnByZXRlZCBhcyB0aGUgdGFyZ2V0IG5hbWUsIGFu ZCB0aGUgcmVzdCBhcmUgY29uc2lkZXJlZCB0b3BsZXZlbA0KKyMgZGlyZWN0 b3J5IG5hbWVzLCBhbmQgdGhlIGdlbmVyYXRlZCBNYWtlZmlsZSB3aWxsIGJl IGFsdGVyZWQgYWNjb3JkaW5nbHkgdG8NCisjIGZvbGxvdyB0aGF0IGRpcmVj dG9yeSBzdHJ1Y3R1cmUuDQorIw0KKyMgRm9yIGV4YW1wbGUsIGlmIHlvdSBw YXNzICd0ZXN0L2ZvbycgYXMgYSB0YXJnZXQgbmFtZSwgeW91ciBleHRlbnNp b24gd2lsbA0KKyMgYmUgaW5zdGFsbGVkIHVuZGVyIHRoZSAndGVzdCcgZGly ZWN0b3J5LiAgVGhpcyBtZWFucyB0aGF0IGluIG9yZGVyIHRvDQorIyBsb2Fk IHRoZSBmaWxlIHdpdGhpbiBhIFJ1YnkgcHJvZ3JhbSBsYXRlciwgdGhhdCBk aXJlY3Rvcnkgc3RydWN0dXJlIHdpbGwNCisjIGhhdmUgdG8gYmUgZm9sbG93 ZWQsIGUuZy4gInJlcXVpcmUgJ3Rlc3QvZm9vJyIuDQorIyANCisjDQogZGVm IGNyZWF0ZV9tYWtlZmlsZSh0YXJnZXQsIHNyY3ByZWZpeCA9IG5pbCkNCiAg ICR0YXJnZXQgPSB0YXJnZXQNCiAgIGxpYnBhdGggPSAkTElCUEFUSA0K --0-1756774879-11524649941951--