* How can you set Transmit power level in Bluetooth LE mode for an LE beacon? @ 2016-10-09 16:11 Steve Gladden 2016-10-11 16:50 ` Steve Gladden 0 siblings, 1 reply; 13+ messages in thread From: Steve Gladden @ 2016-10-09 16:11 UTC (permalink / raw) To: linux-bluetooth@vger.kernel.org Hi, My name is Steve and I am located in Ann Arbor Michigan USA. I am new bluetooth LE and lately am obsessed with Bluetooth LE beacons and trying them out. I have read article after article and page after page about how people have setup up beacons with USB BT 4.0 interfaces as well as serial bluetooth boards. I am currently experimenting with a beacon running on a Raspberry Pi-B and using an external USB Bluetooth 4.0 class 1 dongle. My frustration is that I have not been able to find any useful information in how to change the Transmitter power level when in LE mode. The dongle appears to be working at default level below zero dbm. The whole point of building your own beacon this way is to be able to customize it and setting the power level is an important key item that should be easily accessible yet I find that NOBODY ever even mentions it let alone do they explain or provide a way to set the power. Every text that I have found that details beacon setups from command line never bother to mention setting beacon TX power. All the pages I have found seem to copy each other and repeat the same information over & over But never get around to even mentioning or discussing setting the power output level of the blutooth dongle. sudo hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 [ 92 77 83 0A B2 EB 49 0F A1 DD 7F E3 8C 49 2E DE ] [ 00 00 ] [ 00 00 ] C5 00 The byte just left of the last one is the "reported" TX level that you are transmitting at. Which means you're supposed to know (or guess?) what dbm level you are actually transmitting at and set it here to display to the world what your transmitter level is set to so they can range (guess or estimate distance from TX). This value does not influence or reflect actual transmit power. Please help!! Could use any pointers. I'm a hardware guy as well so not very experienced in software/programming but I'm willing to try anything to get control of this. Been at this for over a week and have some working beacons but no control of transmit power level. Am using Trendnet USB dongles which appear to use a Cambridge Chip. But I'm not exactly sure which chip. :~# lsusb Bus 001 Device 007: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode) root@raspberrypi:~# hciconfig hci0 hci0: Type: BR/EDR Bus: USB BD Address: 00:15:83:EA:0A:B9 ACL MTU: 310:10 SCO MTU: 64:8 UP RUNNING RX bytes:780 acl:0 sco:0 events:50 errors:0 TX bytes:1110 acl:0 sco:0 commands:50 errors:0 ^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: How can you set Transmit power level in Bluetooth LE mode for an LE beacon? 2016-10-09 16:11 How can you set Transmit power level in Bluetooth LE mode for an LE beacon? Steve Gladden @ 2016-10-11 16:50 ` Steve Gladden 2016-10-11 17:38 ` Barry Byford 0 siblings, 1 reply; 13+ messages in thread From: Steve Gladden @ 2016-10-11 16:50 UTC (permalink / raw) To: Steve Gladden, linux-bluetooth@vger.kernel.org Is this this list just some kind of automated patch announcement log and not an actual mailing list where you can ask anything about bluetooth. This is all I have seen here for the past few days? Where can I ask an actual question about bluetooth? Steve Gladden Michigan Broadband Systems Connecting Your Business! +1 734.527.7150 Direct +1 248.327.4389 Fax steve@michiganbroadband.com www.michiganbroadband.com ________________________________________ From: Steve Gladden Sent: Sunday, October 09, 2016 12:11 PM To: linux-bluetooth@vger.kernel.org Subject: How can you set Transmit power level in Bluetooth LE mode for an LE beacon? Hi, My name is Steve and I am located in Ann Arbor Michigan USA. I am new bluetooth LE and lately am obsessed with Bluetooth LE beacons and trying them out. I have read article after article and page after page about how people have setup up beacons with USB BT 4.0 interfaces as well as serial bluetooth boards. I am currently experimenting with a beacon running on a Raspberry Pi-B and using an external USB Bluetooth 4.0 class 1 dongle. My frustration is that I have not been able to find any useful information in how to change the Transmitter power level when in LE mode. The dongle appears to be working at default level below zero dbm. The whole point of building your own beacon this way is to be able to customize it and setting the power level is an important key item that should be easily accessible yet I find that NOBODY ever even mentions it let alone do they explain or provide a way to set the power. Every text that I have found that details beacon setups from command line never bother to mention setting beacon TX power. All the pages I have found seem to copy each other and repeat the same information over & over But never get around to even mentioning or discussing setting the power output level of the blutooth dongle. sudo hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 [ 92 77 83 0A B2 EB 49 0F A1 DD 7F E3 8C 49 2E DE ] [ 00 00 ] [ 00 00 ] C5 00 The byte just left of the last one is the "reported" TX level that you are transmitting at. Which means you're supposed to know (or guess?) what dbm level you are actually transmitting at and set it here to display to the world what your transmitter level is set to so they can range (guess or estimate distance from TX). This value does not influence or reflect actual transmit power. Please help!! Could use any pointers. I'm a hardware guy as well so not very experienced in software/programming but I'm willing to try anything to get control of this. Been at this for over a week and have some working beacons but no control of transmit power level. Am using Trendnet USB dongles which appear to use a Cambridge Chip. But I'm not exactly sure which chip. :~# lsusb Bus 001 Device 007: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode) root@raspberrypi:~# hciconfig hci0 hci0: Type: BR/EDR Bus: USB BD Address: 00:15:83:EA:0A:B9 ACL MTU: 310:10 SCO MTU: 64:8 UP RUNNING RX bytes:780 acl:0 sco:0 events:50 errors:0 TX bytes:1110 acl:0 sco:0 commands:50 errors:0 ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: How can you set Transmit power level in Bluetooth LE mode for an LE beacon? 2016-10-11 16:50 ` Steve Gladden @ 2016-10-11 17:38 ` Barry Byford 2016-10-11 17:52 ` Steve Gladden 0 siblings, 1 reply; 13+ messages in thread From: Barry Byford @ 2016-10-11 17:38 UTC (permalink / raw) To: Steve Gladden; +Cc: linux-bluetooth@vger.kernel.org Hello Steve, On 11 October 2016 at 17:50, Steve Gladden <steve@michiganbroadband.com> wrote: > Is this this list just some kind of automated patch announcement log and not an actual mailing list where you can ask anything about bluetooth. > This is all I have seen here for the past few days? > Where can I ask an actual question about bluetooth? There are some real humans here too! :-) If you look back on the archive of this list you will see a mixture of questions and patch requests. marc.info/?l=linux-bluetooth I've kept quiet as I'm not sure I can answer questions. To offer some shared experience, I can say that I've been experimenting with (Eddystone) beacons on Linux single board computers accessing BlueZ through the DBus API using Python. I also have not found a way to change the power level of advertisements either. For what I'm doing, just making sure the TX power in the Eddystone advert matches what the dongle is actually broadcasting has been good enough. Sorry I couldn't be of more help. Regards, Barry > > > > > Steve Gladden > > Michigan Broadband Systems > Connecting Your Business! > > > > +1 734.527.7150 Direct > +1 248.327.4389 Fax > steve@michiganbroadband.com > www.michiganbroadband.com > > ________________________________________ > From: Steve Gladden > Sent: Sunday, October 09, 2016 12:11 PM > To: linux-bluetooth@vger.kernel.org > Subject: How can you set Transmit power level in Bluetooth LE mode for an LE beacon? > > Hi, > My name is Steve and I am located in Ann Arbor Michigan USA. > > I am new bluetooth LE and lately am obsessed with Bluetooth LE beacons and trying them out. > > I have read article after article and page after page about how people have setup up beacons with USB BT 4.0 interfaces > as well as serial bluetooth boards. > > I am currently experimenting with a beacon running on a Raspberry Pi-B and using an external USB Bluetooth 4.0 class 1 dongle. > > My frustration is that I have not been able to find any useful information in how to change the Transmitter power level when in > LE mode. > > The dongle appears to be working at default level below zero dbm. > > The whole point of building your own beacon this way is to be able to customize it and setting the power level is an important key item > that should be easily accessible yet I find that NOBODY ever even mentions it let alone do they explain or provide a way to set the power. > > > Every text that I have found that details beacon setups from command line never bother to mention setting beacon TX power. > > All the pages I have found seem to copy each other and repeat the same information over & over > But never get around to even mentioning or discussing setting the power output level of the blutooth dongle. > > sudo hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 [ 92 77 83 0A B2 EB 49 0F A1 DD 7F E3 8C 49 2E DE ] [ 00 00 ] [ 00 00 ] C5 00 > > The byte just left of the last one is the "reported" TX level that you are transmitting at. > Which means you're supposed to know (or guess?) what dbm level you are actually transmitting at and set it here to display to the world what your transmitter level is set to so they can range (guess or estimate distance from TX). > This value does not influence or reflect actual transmit power. > > Please help!! > > Could use any pointers. > > I'm a hardware guy as well so not very experienced in software/programming but I'm willing to try anything to get control of this. > > Been at this for over a week and have some working beacons but no control of transmit power level. > > Am using Trendnet USB dongles which appear to use a Cambridge Chip. But I'm not exactly sure which chip. > > > :~# lsusb > Bus 001 Device 007: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode) > > > root@raspberrypi:~# hciconfig hci0 > hci0: Type: BR/EDR Bus: USB > BD Address: 00:15:83:EA:0A:B9 ACL MTU: 310:10 SCO MTU: 64:8 > UP RUNNING > RX bytes:780 acl:0 sco:0 events:50 errors:0 > TX bytes:1110 acl:0 sco:0 commands:50 errors:0 > > > > > > > > > > > > > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: How can you set Transmit power level in Bluetooth LE mode for an LE beacon? 2016-10-11 17:38 ` Barry Byford @ 2016-10-11 17:52 ` Steve Gladden 2016-10-12 5:00 ` Hieu Le 0 siblings, 1 reply; 13+ messages in thread From: Steve Gladden @ 2016-10-11 17:52 UTC (permalink / raw) To: Barry Byford; +Cc: linux-bluetooth@vger.kernel.org Thanks!! Yes it's nice to hear from somebody. I've been scouring the web so far to no avail on what I think should be a simple and accessible setting. It's obvious from the specs that most chips have a programmable (settable) transmitter power. And with beacons it is very important and expected that one should be able to adjust the transmitter level. All of the serial boards do it with simple AT commands. I just don't get why there's no documentation on how to do it with a USB device!! They sell class 1 bluetooth usb dongles for applications that require more range (100m) is quoted on most class 1 products. I'd expect there should be a straight forward easy to set power in LE mode to get more range or save power and limit range when wanted. But I'm really not finding this information out there! I don;t understand what I am doing wrong or why this is so difficult to find. :) On 11 October 2016 at 17:50, Steve Gladden <steve@michiganbroadband.com> wrote: > Is this this list just some kind of automated patch announcement log and not an actual mailing list where you can ask anything about bluetooth. > This is all I have seen here for the past few days? > Where can I ask an actual question about bluetooth? There are some real humans here too! :-) If you look back on the archive of this list you will see a mixture of questions and patch requests. marc.info/?l=linux-bluetooth I've kept quiet as I'm not sure I can answer questions. To offer some shared experience, I can say that I've been experimenting with (Eddystone) beacons on Linux single board computers accessing BlueZ through the DBus API using Python. I also have not found a way to change the power level of advertisements either. For what I'm doing, just making sure the TX power in the Eddystone advert matches what the dongle is actually broadcasting has been good enough. Sorry I couldn't be of more help. Regards, Barry > > > > > Steve Gladden > > Michigan Broadband Systems > Connecting Your Business! > > > > +1 734.527.7150 Direct > +1 248.327.4389 Fax > steve@michiganbroadband.com > www.michiganbroadband.com > > ________________________________________ > From: Steve Gladden > Sent: Sunday, October 09, 2016 12:11 PM > To: linux-bluetooth@vger.kernel.org > Subject: How can you set Transmit power level in Bluetooth LE mode for an LE beacon? > > Hi, > My name is Steve and I am located in Ann Arbor Michigan USA. > > I am new bluetooth LE and lately am obsessed with Bluetooth LE beacons and trying them out. > > I have read article after article and page after page about how people have setup up beacons with USB BT 4.0 interfaces > as well as serial bluetooth boards. > > I am currently experimenting with a beacon running on a Raspberry Pi-B and using an external USB Bluetooth 4.0 class 1 dongle. > > My frustration is that I have not been able to find any useful information in how to change the Transmitter power level when in > LE mode. > > The dongle appears to be working at default level below zero dbm. > > The whole point of building your own beacon this way is to be able to customize it and setting the power level is an important key item > that should be easily accessible yet I find that NOBODY ever even mentions it let alone do they explain or provide a way to set the power. > > > Every text that I have found that details beacon setups from command line never bother to mention setting beacon TX power. > > All the pages I have found seem to copy each other and repeat the same information over & over > But never get around to even mentioning or discussing setting the power output level of the blutooth dongle. > > sudo hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 [ 92 77 83 0A B2 EB 49 0F A1 DD 7F E3 8C 49 2E DE ] [ 00 00 ] [ 00 00 ] C5 00 > > The byte just left of the last one is the "reported" TX level that you are transmitting at. > Which means you're supposed to know (or guess?) what dbm level you are actually transmitting at and set it here to display to the world what your transmitter level is set to so they can range (guess or estimate distance from TX). > This value does not influence or reflect actual transmit power. > > Please help!! > > Could use any pointers. > > I'm a hardware guy as well so not very experienced in software/programming but I'm willing to try anything to get control of this. > > Been at this for over a week and have some working beacons but no control of transmit power level. > > Am using Trendnet USB dongles which appear to use a Cambridge Chip. But I'm not exactly sure which chip. > > > :~# lsusb > Bus 001 Device 007: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode) > > > root@raspberrypi:~# hciconfig hci0 > hci0: Type: BR/EDR Bus: USB > BD Address: 00:15:83:EA:0A:B9 ACL MTU: 310:10 SCO MTU: 64:8 > UP RUNNING > RX bytes:780 acl:0 sco:0 events:50 errors:0 > TX bytes:1110 acl:0 sco:0 commands:50 errors:0 > > > > > > > > > > > > > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: How can you set Transmit power level in Bluetooth LE mode for an LE beacon? 2016-10-11 17:52 ` Steve Gladden @ 2016-10-12 5:00 ` Hieu Le 2016-10-12 7:22 ` Johan Hedberg 2016-10-12 15:33 ` Steve Gladden 0 siblings, 2 replies; 13+ messages in thread From: Hieu Le @ 2016-10-12 5:00 UTC (permalink / raw) To: Steve Gladden; +Cc: Barry Byford, linux-bluetooth@vger.kernel.org Hi, In my opinion, the only way I can find to increase the tx_power is to recompile the linux kernel. There may be a better way It seems that bluetooth stack within kernel separated into two classes: 1. Inquiry Tx_power. 2. Advertise Tx_power. And the default value is 0. You can take a look at: *hci_alloc_dev(void) function within net/bluetooth/hci_core.c file hdev->inq_tx_power = HCI_TX_POWER_INVALID; hdev->adv_tx_power = HCI_TX_POWER_INVALID; Hope it will be helpful to you. Regards, Hieu. On Wed, Oct 12, 2016 at 12:52 AM, Steve Gladden <steve@michiganbroadband.com> wrote: > Thanks!! > Yes it's nice to hear from somebody. > > I've been scouring the web so far to no avail on what I think should be a simple and accessible setting. > It's obvious from the specs that most chips have a programmable (settable) transmitter power. > And with beacons it is very important and expected that one should be able to adjust the transmitter level. > All of the serial boards do it with simple AT commands. > > I just don't get why there's no documentation on how to do it with a USB device!! > > They sell class 1 bluetooth usb dongles for applications that require more range (100m) is quoted on most class 1 products. > > I'd expect there should be a straight forward easy to set power in LE mode to get more range or save power and limit range when wanted. > > But I'm really not finding this information out there! > > I don;t understand what I am doing wrong or why this is so difficult to find. :) > > > > > > > > On 11 October 2016 at 17:50, Steve Gladden <steve@michiganbroadband.com> wrote: >> Is this this list just some kind of automated patch announcement log and not an actual mailing list where you can ask anything about bluetooth. >> This is all I have seen here for the past few days? >> Where can I ask an actual question about bluetooth? > > There are some real humans here too! :-) > > If you look back on the archive of this list you will see a mixture of > questions and patch requests. > marc.info/?l=linux-bluetooth > > I've kept quiet as I'm not sure I can answer questions. To offer some > shared experience, I can say that I've been experimenting with > (Eddystone) beacons on Linux single board computers accessing BlueZ > through the DBus API using Python. I also have not found a way to > change the power level of advertisements either. For what I'm doing, > just making sure the TX power in the Eddystone advert matches what the > dongle is actually broadcasting has been good enough. > > Sorry I couldn't be of more help. > > Regards, > Barry > >> >> >> >> >> Steve Gladden >> >> Michigan Broadband Systems >> Connecting Your Business! >> >> >> >> +1 734.527.7150 Direct >> +1 248.327.4389 Fax >> steve@michiganbroadband.com >> www.michiganbroadband.com >> >> ________________________________________ >> From: Steve Gladden >> Sent: Sunday, October 09, 2016 12:11 PM >> To: linux-bluetooth@vger.kernel.org >> Subject: How can you set Transmit power level in Bluetooth LE mode for an LE beacon? >> >> Hi, >> My name is Steve and I am located in Ann Arbor Michigan USA. >> >> I am new bluetooth LE and lately am obsessed with Bluetooth LE beacons and trying them out. >> >> I have read article after article and page after page about how people have setup up beacons with USB BT 4.0 interfaces >> as well as serial bluetooth boards. >> >> I am currently experimenting with a beacon running on a Raspberry Pi-B and using an external USB Bluetooth 4.0 class 1 dongle. >> >> My frustration is that I have not been able to find any useful information in how to change the Transmitter power level when in >> LE mode. >> >> The dongle appears to be working at default level below zero dbm. >> >> The whole point of building your own beacon this way is to be able to customize it and setting the power level is an important key item >> that should be easily accessible yet I find that NOBODY ever even mentions it let alone do they explain or provide a way to set the power. >> >> >> Every text that I have found that details beacon setups from command line never bother to mention setting beacon TX power. >> >> All the pages I have found seem to copy each other and repeat the same information over & over >> But never get around to even mentioning or discussing setting the power output level of the blutooth dongle. >> >> sudo hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 [ 92 77 83 0A B2 EB 49 0F A1 DD 7F E3 8C 49 2E DE ] [ 00 00 ] [ 00 00 ] C5 00 >> >> The byte just left of the last one is the "reported" TX level that you are transmitting at. >> Which means you're supposed to know (or guess?) what dbm level you are actually transmitting at and set it here to display to the world what your transmitter level is set to so they can range (guess or estimate distance from TX). >> This value does not influence or reflect actual transmit power. >> >> Please help!! >> >> Could use any pointers. >> >> I'm a hardware guy as well so not very experienced in software/programming but I'm willing to try anything to get control of this. >> >> Been at this for over a week and have some working beacons but no control of transmit power level. >> >> Am using Trendnet USB dongles which appear to use a Cambridge Chip. But I'm not exactly sure which chip. >> >> >> :~# lsusb >> Bus 001 Device 007: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode) >> >> >> root@raspberrypi:~# hciconfig hci0 >> hci0: Type: BR/EDR Bus: USB >> BD Address: 00:15:83:EA:0A:B9 ACL MTU: 310:10 SCO MTU: 64:8 >> UP RUNNING >> RX bytes:780 acl:0 sco:0 events:50 errors:0 >> TX bytes:1110 acl:0 sco:0 commands:50 errors:0 >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in >> the body of a message to majordomo@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html > -- > To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- ---- Hieu Le --- ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: How can you set Transmit power level in Bluetooth LE mode for an LE beacon? 2016-10-12 5:00 ` Hieu Le @ 2016-10-12 7:22 ` Johan Hedberg 2016-10-12 15:33 ` Steve Gladden 1 sibling, 0 replies; 13+ messages in thread From: Johan Hedberg @ 2016-10-12 7:22 UTC (permalink / raw) To: Hieu Le; +Cc: Steve Gladden, Barry Byford, linux-bluetooth@vger.kernel.org Hi, On Wed, Oct 12, 2016, Hieu Le wrote: > In my opinion, the only way I can find to increase the tx_power is to > recompile the linux kernel. There may be a better way > > It seems that bluetooth stack within kernel separated into two classes: > 1. Inquiry Tx_power. > 2. Advertise Tx_power. > > And the default value is 0. > > You can take a look at: > *hci_alloc_dev(void) function within net/bluetooth/hci_core.c file > hdev->inq_tx_power = HCI_TX_POWER_INVALID; > hdev->adv_tx_power = HCI_TX_POWER_INVALID; The adv_tx_power is not used for changing the controller advertising TX power. It's only used for reading the current controller setting and storing it in this variable. The reason for all this is that currently (as of Bluetooth 4.2) there is no standard HCI command for changing the advertising TX power. Johan ^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: How can you set Transmit power level in Bluetooth LE mode for an LE beacon? 2016-10-12 5:00 ` Hieu Le 2016-10-12 7:22 ` Johan Hedberg @ 2016-10-12 15:33 ` Steve Gladden [not found] ` <CAHFy41_8FzDF-jATapn20Km8vbX6nt44DN9uPnazDMOJ_yD=Kw@mail.gmail.com> 1 sibling, 1 reply; 13+ messages in thread From: Steve Gladden @ 2016-10-12 15:33 UTC (permalink / raw) To: Hieu Le; +Cc: Barry Byford, linux-bluetooth@vger.kernel.org VGhhbmtzLCAgDQpJIHdhcyBob3BpbmcgdGhlcmUgd2FzIGFuIGVhc2llciB3YXkgYW5kIHNvbWVo b3cgYXQgdGhlIGNvbW1hbmQgbGluZSBidXQgSSdsbCBkbyB3aGF0IEkgbmVlZCB0byBkbyBhbmQg ZmlndXJlIGl0IG91dCBzb21laG93LiAgDQpJIHVzdWFsbHkgZW5kIHVwIG9uIDEwIG90aGVyIHJh YmJpdCB0cmFpbHMgd2hlbiBpdCBjb21lcyB0byBoYXZpbmcgdG8gcmVjb21waWxlIGFueXRoaW5n IGJlY2F1c2UgaXQgdXN1YWxseSBqdXN0IGZhaWxzIGZvciBtZSBhbmQgSSdtIA0Kbm90IHlldCB3 ZWxsIHZlcnNlZCBpbiB0cm91Ymxlc2hvb3Rpbmcgd2hlbiB0aGluZ3Mgd29uJ3QgY29tcGlsZSBz dWNjZXNzZnVsbHkgYXNpZGUgZnJvbSB3aGF0IEkgY2FuIGVhc2lseSBnb29nbGUuICANCg0KSSBh bHNvIHRoaW5rIGl0J3MgYSBsaXR0bGUgbW9yZSBjb21wbGljYXRlZCB0aGFuIGp1c3Qgc2V0dGlu ZyB0aGUgcG93ZXIuICANCkkgaGF2ZSBnYXRoZXJlZCBhdCBsZWFzdCB3aXQgaHRoZSBDU1IgY2hp cHNldCB0aGF0IHRoZXJlIGFyZSBhdCBsZWFzdCAzIHNlcGFyYXRlIHBvd2VyIHNldHRpbmdzIHRo YXQgY2FuIGJlIGFkanVzdGVkIGFuZCBub3QgYW55IG92ZXJhbGwgcG93ZXIgc2V0dGluZy4gIA0K U28gdGhlIHZhcmlvdXMgbW9kdWxhdGlvbiBtb2RlcyAoaW5jbHVkaW5nIEdGU0sgLUxFIGFkdmVy dGlzaW5nLSkgbmVlZCB0byBiZSBhZGRyZXNzZWQgYW5kIHNldCBpbmRpdmlkdWFsbHkuICANClRo ZXJlJ3Mgbm90IGEgbWFzdGVyIHRyYW5zbWl0IGxldmVsIHRoYXQgc2V0cyB0aGVtIGFsbC4NCiAg DQoNClN0ZXZlIEdsYWRkZW4NCsKgDQpNaWNoaWdhbiBCcm9hZGJhbmQgU3lzdGVtcw0KQ29ubmVj dGluZyBZb3VyIEJ1c2luZXNzIQ0KDQoNCg0KKzEgNzM0LjUyNy43MTUwIERpcmVjdA0KKzEgMjQ4 LjMyNy40Mzg5IEZheA0Kc3RldmVAbWljaGlnYW5icm9hZGJhbmQuY29tDQp3d3cubWljaGlnYW5i cm9hZGJhbmQuY29tDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBIaWV1IExl IFttYWlsdG86aGlldS5sZUB2ZXJpa3N5c3RlbXMuY29tXSANClNlbnQ6IFdlZG5lc2RheSwgT2N0 b2JlciAxMiwgMjAxNiAxOjAwIEFNDQpUbzogU3RldmUgR2xhZGRlbg0KQ2M6IEJhcnJ5IEJ5Zm9y ZDsgbGludXgtYmx1ZXRvb3RoQHZnZXIua2VybmVsLm9yZw0KU3ViamVjdDogUmU6IEhvdyBjYW4g eW91IHNldCBUcmFuc21pdCBwb3dlciBsZXZlbCBpbiBCbHVldG9vdGggTEUgbW9kZSBmb3IgYW4g TEUgYmVhY29uPw0KDQpIaSwNCg0KSW4gbXkgb3BpbmlvbiwgdGhlIG9ubHkgd2F5IEkgY2FuIGZp bmQgdG8gaW5jcmVhc2UgdGhlIHR4X3Bvd2VyIGlzIHRvIHJlY29tcGlsZSB0aGUgbGludXgga2Vy bmVsLiBUaGVyZSBtYXkgYmUgYSBiZXR0ZXIgd2F5DQoNCkl0IHNlZW1zIHRoYXQgYmx1ZXRvb3Ro IHN0YWNrIHdpdGhpbiBrZXJuZWwgc2VwYXJhdGVkIGludG8gdHdvIGNsYXNzZXM6DQoxLiBJbnF1 aXJ5IFR4X3Bvd2VyLg0KMi4gQWR2ZXJ0aXNlIFR4X3Bvd2VyLg0KDQpBbmQgdGhlIGRlZmF1bHQg dmFsdWUgaXMgMC4NCg0KWW91IGNhbiB0YWtlIGEgbG9vayBhdDoNCipoY2lfYWxsb2NfZGV2KHZv aWQpICBmdW5jdGlvbiB3aXRoaW4gbmV0L2JsdWV0b290aC9oY2lfY29yZS5jIGZpbGUNCmhkZXYt PmlucV90eF9wb3dlciA9IEhDSV9UWF9QT1dFUl9JTlZBTElEOyBhZHZfdHhfcG93ZXIgPSANCmhk ZXYtPkhDSV9UWF9QT1dFUl9JTlZBTElEOw0KDQpIb3BlIGl0IHdpbGwgYmUgaGVscGZ1bCB0byB5 b3UuDQoNClJlZ2FyZHMsDQpIaWV1Lg0KDQpPbiBXZWQsIE9jdCAxMiwgMjAxNiBhdCAxMjo1MiBB TSwgU3RldmUgR2xhZGRlbiA8c3RldmVAbWljaGlnYW5icm9hZGJhbmQuY29tPiB3cm90ZToNCj4g VGhhbmtzISENCj4gWWVzIGl0J3MgbmljZSB0byBoZWFyIGZyb20gc29tZWJvZHkuDQo+DQo+IEkn dmUgYmVlbiBzY291cmluZyB0aGUgd2ViIHNvIGZhciB0byBubyBhdmFpbCBvbiB3aGF0IEkgdGhp bmsgc2hvdWxkIGJlIGEgc2ltcGxlIGFuZCBhY2Nlc3NpYmxlIHNldHRpbmcuDQo+IEl0J3Mgb2J2 aW91cyBmcm9tIHRoZSBzcGVjcyB0aGF0IG1vc3QgY2hpcHMgaGF2ZSBhIHByb2dyYW1tYWJsZSAo c2V0dGFibGUpIHRyYW5zbWl0dGVyIHBvd2VyLg0KPiBBbmQgd2l0aCBiZWFjb25zIGl0IGlzIHZl cnkgaW1wb3J0YW50IGFuZCBleHBlY3RlZCB0aGF0IG9uZSBzaG91bGQgYmUgYWJsZSB0byBhZGp1 c3QgdGhlIHRyYW5zbWl0dGVyIGxldmVsLg0KPiBBbGwgb2YgdGhlIHNlcmlhbCBib2FyZHMgZG8g aXQgd2l0aCBzaW1wbGUgQVQgY29tbWFuZHMuDQo+DQo+IEkganVzdCBkb24ndCBnZXQgd2h5IHRo ZXJlJ3Mgbm8gZG9jdW1lbnRhdGlvbiBvbiBob3cgdG8gZG8gaXQgd2l0aCBhIFVTQiBkZXZpY2Uh IQ0KPg0KPiBUaGV5IHNlbGwgY2xhc3MgMSBibHVldG9vdGggdXNiIGRvbmdsZXMgZm9yIGFwcGxp Y2F0aW9ucyB0aGF0IHJlcXVpcmUgbW9yZSByYW5nZSAoMTAwbSkgaXMgcXVvdGVkIG9uIG1vc3Qg Y2xhc3MgMSBwcm9kdWN0cy4NCj4NCj4gSSdkIGV4cGVjdCB0aGVyZSBzaG91bGQgYmUgYSBzdHJh aWdodCBmb3J3YXJkIGVhc3kgdG8gc2V0IHBvd2VyIGluIExFIG1vZGUgdG8gZ2V0IG1vcmUgcmFu Z2Ugb3Igc2F2ZSBwb3dlciBhbmQgbGltaXQgcmFuZ2Ugd2hlbiB3YW50ZWQuDQo+DQo+IEJ1dCBJ J20gcmVhbGx5IG5vdCBmaW5kaW5nIHRoaXMgaW5mb3JtYXRpb24gb3V0IHRoZXJlIQ0KPg0KPiBJ IGRvbjt0IHVuZGVyc3RhbmQgd2hhdCBJIGFtIGRvaW5nIHdyb25nIG9yIHdoeSB0aGlzIGlzIHNv IGRpZmZpY3VsdCANCj4gdG8gZmluZC4gIDopDQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+IE9uIDEx IE9jdG9iZXIgMjAxNiBhdCAxNzo1MCwgU3RldmUgR2xhZGRlbiA8c3RldmVAbWljaGlnYW5icm9h ZGJhbmQuY29tPiB3cm90ZToNCj4+IElzIHRoaXMgdGhpcyBsaXN0IGp1c3Qgc29tZSBraW5kIG9m IGF1dG9tYXRlZCBwYXRjaCBhbm5vdW5jZW1lbnQgbG9nIGFuZCBub3QgYW4gYWN0dWFsIG1haWxp bmcgbGlzdCB3aGVyZSB5b3UgY2FuIGFzayBhbnl0aGluZyBhYm91dCBibHVldG9vdGguDQo+PiBU aGlzIGlzIGFsbCBJIGhhdmUgc2VlbiBoZXJlIGZvciB0aGUgcGFzdCBmZXcgZGF5cz8NCj4+IFdo ZXJlIGNhbiBJIGFzayBhbiBhY3R1YWwgcXVlc3Rpb24gYWJvdXQgYmx1ZXRvb3RoPw0KPg0KPiBU aGVyZSBhcmUgc29tZSByZWFsIGh1bWFucyBoZXJlIHRvbyEgIDotKQ0KPg0KPiBJZiB5b3UgbG9v ayBiYWNrIG9uIHRoZSBhcmNoaXZlIG9mIHRoaXMgbGlzdCB5b3Ugd2lsbCBzZWUgYSBtaXh0dXJl IG9mIA0KPiBxdWVzdGlvbnMgYW5kIHBhdGNoIHJlcXVlc3RzLg0KPiBtYXJjLmluZm8vP2w9bGlu dXgtYmx1ZXRvb3RoDQo+DQo+IEkndmUga2VwdCBxdWlldCBhcyBJJ20gbm90IHN1cmUgSSBjYW4g YW5zd2VyIHF1ZXN0aW9ucy4gVG8gb2ZmZXIgc29tZSANCj4gc2hhcmVkIGV4cGVyaWVuY2UsIEkg Y2FuIHNheSB0aGF0IEkndmUgYmVlbiBleHBlcmltZW50aW5nIHdpdGgNCj4gKEVkZHlzdG9uZSkg YmVhY29ucyBvbiBMaW51eCBzaW5nbGUgYm9hcmQgY29tcHV0ZXJzIGFjY2Vzc2luZyBCbHVlWiAN Cj4gdGhyb3VnaCB0aGUgREJ1cyBBUEkgdXNpbmcgUHl0aG9uLiBJIGFsc28gaGF2ZSBub3QgZm91 bmQgYSB3YXkgdG8gDQo+IGNoYW5nZSB0aGUgcG93ZXIgbGV2ZWwgb2YgYWR2ZXJ0aXNlbWVudHMg ZWl0aGVyLiBGb3Igd2hhdCBJJ20gZG9pbmcsIA0KPiBqdXN0IG1ha2luZyBzdXJlIHRoZSBUWCBw b3dlciBpbiB0aGUgRWRkeXN0b25lIGFkdmVydCBtYXRjaGVzIHdoYXQgdGhlIA0KPiBkb25nbGUg aXMgYWN0dWFsbHkgYnJvYWRjYXN0aW5nIGhhcyBiZWVuIGdvb2QgZW5vdWdoLg0KPg0KPiBTb3Jy eSBJIGNvdWxkbid0IGJlIG9mIG1vcmUgaGVscC4NCj4NCj4gUmVnYXJkcywNCj4gQmFycnkNCj4N Cj4+DQo+Pg0KPj4NCj4+DQo+PiBTdGV2ZSBHbGFkZGVuDQo+Pg0KPj4gTWljaGlnYW4gQnJvYWRi YW5kIFN5c3RlbXMNCj4+IENvbm5lY3RpbmcgWW91ciBCdXNpbmVzcyENCj4+DQo+Pg0KPj4NCj4+ ICsxIDczNC41MjcuNzE1MCBEaXJlY3QNCj4+ICsxIDI0OC4zMjcuNDM4OSBGYXgNCj4+IHN0ZXZl QG1pY2hpZ2FuYnJvYWRiYW5kLmNvbQ0KPj4gd3d3Lm1pY2hpZ2FuYnJvYWRiYW5kLmNvbQ0KPj4N Cj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4+IEZyb206IFN0 ZXZlIEdsYWRkZW4NCj4+IFNlbnQ6IFN1bmRheSwgT2N0b2JlciAwOSwgMjAxNiAxMjoxMSBQTQ0K Pj4gVG86IGxpbnV4LWJsdWV0b290aEB2Z2VyLmtlcm5lbC5vcmcNCj4+IFN1YmplY3Q6IEhvdyBj YW4geW91IHNldCBUcmFuc21pdCBwb3dlciBsZXZlbCBpbiBCbHVldG9vdGggTEUgbW9kZSBmb3Ig YW4gTEUgYmVhY29uPw0KPj4NCj4+IEhpLA0KPj4gTXkgbmFtZSBpcyBTdGV2ZSBhbmQgSSBhbSBs b2NhdGVkIGluIEFubiBBcmJvciBNaWNoaWdhbiBVU0EuDQo+Pg0KPj4gSSBhbSBuZXcgIGJsdWV0 b290aCBMRSBhbmQgbGF0ZWx5IGFtIG9ic2Vzc2VkIHdpdGggQmx1ZXRvb3RoIExFIGJlYWNvbnMg YW5kIHRyeWluZyB0aGVtIG91dC4NCj4+DQo+PiBJIGhhdmUgcmVhZCBhcnRpY2xlIGFmdGVyIGFy dGljbGUgYW5kIHBhZ2UgYWZ0ZXIgcGFnZSBhYm91dCBob3cgDQo+PiBwZW9wbGUgaGF2ZSBzZXR1 cCB1cCBiZWFjb25zIHdpdGggVVNCIEJUIDQuMCBpbnRlcmZhY2VzIGFzIHdlbGwgYXMgc2VyaWFs IGJsdWV0b290aCBib2FyZHMuDQo+Pg0KPj4gSSBhbSBjdXJyZW50bHkgZXhwZXJpbWVudGluZyB3 aXRoIGEgYmVhY29uIHJ1bm5pbmcgb24gYSBSYXNwYmVycnkgUGktQiBhbmQgdXNpbmcgYW4gZXh0 ZXJuYWwgVVNCIEJsdWV0b290aCA0LjAgY2xhc3MgMSBkb25nbGUuDQo+Pg0KPj4gTXkgZnJ1c3Ry YXRpb24gaXMgdGhhdCBJIGhhdmUgbm90IGJlZW4gYWJsZSB0byBmaW5kIGFueSB1c2VmdWwgDQo+ PiBpbmZvcm1hdGlvbiBpbiBob3cgdG8gY2hhbmdlIHRoZSBUcmFuc21pdHRlciBwb3dlciBsZXZl bCB3aGVuIGluIExFIG1vZGUuDQo+Pg0KPj4gVGhlIGRvbmdsZSBhcHBlYXJzIHRvIGJlIHdvcmtp bmcgYXQgZGVmYXVsdCBsZXZlbCBiZWxvdyB6ZXJvIGRibS4NCj4+DQo+PiBUaGUgd2hvbGUgcG9p bnQgb2YgYnVpbGRpbmcgeW91ciBvd24gYmVhY29uIHRoaXMgd2F5IGlzIHRvIGJlIGFibGUgdG8g DQo+PiBjdXN0b21pemUgaXQgYW5kIHNldHRpbmcgdGhlIHBvd2VyIGxldmVsIGlzIGFuIGltcG9y dGFudCBrZXkgaXRlbSB0aGF0IHNob3VsZCBiZSBlYXNpbHkgYWNjZXNzaWJsZSB5ZXQgSSBmaW5k IHRoYXQgTk9CT0RZIGV2ZXIgZXZlbiBtZW50aW9ucyBpdCBsZXQgYWxvbmUgZG8gdGhleSBleHBs YWluIG9yIHByb3ZpZGUgYSB3YXkgdG8gc2V0IHRoZSBwb3dlci4NCj4+DQo+Pg0KPj4gRXZlcnkg dGV4dCB0aGF0IEkgaGF2ZSBmb3VuZCB0aGF0IGRldGFpbHMgYmVhY29uIHNldHVwcyBmcm9tIGNv bW1hbmQgbGluZSBuZXZlciBib3RoZXIgdG8gbWVudGlvbiBzZXR0aW5nIGJlYWNvbiBUWCBwb3dl ci4NCj4+DQo+PiBBbGwgdGhlIHBhZ2VzIEkgaGF2ZSBmb3VuZCBzZWVtIHRvIGNvcHkgZWFjaCBv dGhlciBhbmQgcmVwZWF0IHRoZSANCj4+IHNhbWUgaW5mb3JtYXRpb24gb3ZlciAmIG92ZXIgQnV0 IG5ldmVyIGdldCBhcm91bmQgdG8gZXZlbiBtZW50aW9uaW5nIG9yIGRpc2N1c3Npbmcgc2V0dGlu ZyB0aGUgcG93ZXIgb3V0cHV0IGxldmVsIG9mIHRoZSBibHV0b290aCBkb25nbGUuDQo+Pg0KPj4g c3VkbyBoY2l0b29sIC1pIGhjaTAgY21kIDB4MDggMHgwMDA4IDFFIDAyIDAxIDFBIDFBIEZGIDRD IDAwIDAyIDE1IFsgDQo+PiA5MiA3NyA4MyAwQSBCMiBFQiA0OSAwRiBBMSBERCA3RiBFMyA4QyA0 OSAyRSBERSBdIFsgMDAgMDAgXSBbIDAwIDAwIF0gDQo+PiBDNSAwMA0KPj4NCj4+IFRoZSBieXRl IGp1c3QgbGVmdCBvZiB0aGUgbGFzdCBvbmUgaXMgdGhlICJyZXBvcnRlZCIgVFggbGV2ZWwgdGhh dCB5b3UgYXJlIHRyYW5zbWl0dGluZyBhdC4NCj4+IFdoaWNoIG1lYW5zIHlvdSdyZSBzdXBwb3Nl ZCB0byBrbm93IChvciBndWVzcz8pIHdoYXQgZGJtIGxldmVsIHlvdSBhcmUgYWN0dWFsbHkgdHJh bnNtaXR0aW5nIGF0IGFuZCBzZXQgaXQgaGVyZSB0byBkaXNwbGF5IHRvIHRoZSB3b3JsZCB3aGF0 IHlvdXIgdHJhbnNtaXR0ZXIgbGV2ZWwgaXMgc2V0IHRvIHNvIHRoZXkgY2FuIHJhbmdlIChndWVz cyBvciBlc3RpbWF0ZSBkaXN0YW5jZSBmcm9tIFRYKS4NCj4+IFRoaXMgdmFsdWUgZG9lcyBub3Qg aW5mbHVlbmNlIG9yIHJlZmxlY3QgYWN0dWFsIHRyYW5zbWl0IHBvd2VyLg0KPj4NCj4+IFBsZWFz ZSBoZWxwISENCj4+DQo+PiBDb3VsZCB1c2UgYW55IHBvaW50ZXJzLg0KPj4NCj4+IEknbSBhIGhh cmR3YXJlIGd1eSBhcyB3ZWxsIHNvIG5vdCB2ZXJ5IGV4cGVyaWVuY2VkIGluIHNvZnR3YXJlL3By b2dyYW1taW5nIGJ1dCBJJ20gd2lsbGluZyB0byB0cnkgYW55dGhpbmcgdG8gZ2V0IGNvbnRyb2wg b2YgdGhpcy4NCj4+DQo+PiBCZWVuIGF0IHRoaXMgZm9yIG92ZXIgYSB3ZWVrIGFuZCBoYXZlIHNv bWUgd29ya2luZyBiZWFjb25zIGJ1dCBubyBjb250cm9sIG9mIHRyYW5zbWl0IHBvd2VyIGxldmVs Lg0KPj4NCj4+IEFtIHVzaW5nIFRyZW5kbmV0IFVTQiBkb25nbGVzIHdoaWNoIGFwcGVhciB0byB1 c2UgYSBDYW1icmlkZ2UgQ2hpcC4gIEJ1dCBJJ20gbm90IGV4YWN0bHkgc3VyZSB3aGljaCBjaGlw Lg0KPj4NCj4+DQo+PiA6fiMgbHN1c2INCj4+IEJ1cyAwMDEgRGV2aWNlIDAwNzogSUQgMGExMjow MDAxIENhbWJyaWRnZSBTaWxpY29uIFJhZGlvLCBMdGQgDQo+PiBCbHVldG9vdGggRG9uZ2xlIChI Q0kgbW9kZSkNCj4+DQo+Pg0KPj4gcm9vdEByYXNwYmVycnlwaTp+IyBoY2ljb25maWcgaGNpMA0K Pj4gaGNpMDogICBUeXBlOiBCUi9FRFIgIEJ1czogVVNCDQo+PiAgICAgICAgIEJEIEFkZHJlc3M6 IDAwOjE1OjgzOkVBOjBBOkI5ICBBQ0wgTVRVOiAzMTA6MTAgIFNDTyBNVFU6IDY0OjgNCj4+ICAg ICAgICAgVVAgUlVOTklORw0KPj4gICAgICAgICBSWCBieXRlczo3ODAgYWNsOjAgc2NvOjAgZXZl bnRzOjUwIGVycm9yczowDQo+PiAgICAgICAgIFRYIGJ5dGVzOjExMTAgYWNsOjAgc2NvOjAgY29t bWFuZHM6NTAgZXJyb3JzOjANCj4+DQo+Pg0KPj4NCj4+DQo+Pg0KPj4NCj4+DQo+Pg0KPj4NCj4+ DQo+Pg0KPj4NCj4+DQo+Pg0KPj4gLS0NCj4+IFRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBsaXN0 OiBzZW5kIHRoZSBsaW5lICJ1bnN1YnNjcmliZSANCj4+IGxpbnV4LWJsdWV0b290aCIgaW4gdGhl IGJvZHkgb2YgYSBtZXNzYWdlIHRvIA0KPj4gbWFqb3Jkb21vQHZnZXIua2VybmVsLm9yZyBNb3Jl IG1ham9yZG9tbyBpbmZvIGF0ICANCj4+IGh0dHA6Ly92Z2VyLmtlcm5lbC5vcmcvbWFqb3Jkb21v LWluZm8uaHRtbA0KPiAtLQ0KPiBUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0 aGUgbGluZSAidW5zdWJzY3JpYmUgDQo+IGxpbnV4LWJsdWV0b290aCIgaW4gdGhlIGJvZHkgb2Yg YSBtZXNzYWdlIHRvIG1ham9yZG9tb0B2Z2VyLmtlcm5lbC5vcmcgDQo+IE1vcmUgbWFqb3Jkb21v IGluZm8gYXQgIGh0dHA6Ly92Z2VyLmtlcm5lbC5vcmcvbWFqb3Jkb21vLWluZm8uaHRtbA0KDQoN Cg0KLS0NCi0tLS0gSGlldSBMZSAtLS0NCg== ^ permalink raw reply [flat|nested] 13+ messages in thread
[parent not found: <CAHFy41_8FzDF-jATapn20Km8vbX6nt44DN9uPnazDMOJ_yD=Kw@mail.gmail.com>]
* RE: How can you set Transmit power level in Bluetooth LE mode for an LE beacon? [not found] ` <CAHFy41_8FzDF-jATapn20Km8vbX6nt44DN9uPnazDMOJ_yD=Kw@mail.gmail.com> @ 2016-10-13 13:54 ` Steve Gladden 2016-10-16 21:56 ` Steve Gladden 1 sibling, 0 replies; 13+ messages in thread From: Steve Gladden @ 2016-10-13 13:54 UTC (permalink / raw) To: Joseph Hwang; +Cc: Hieu Le, Barry Byford, linux-bluetooth@vger.kernel.org KkhhZCB0byB1bi1vdXRsb29rKiBhbmQgcmUtc2VuZCB0aGlzOg0KLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KVHJpZWQgdGhhdCBvZiBjb3Vyc2UgYWxy ZWFkeSBkYXlzIGFnby7CoCANCkFzIHdlbGwgYXMgYW55dGhpbmcgZWxzZSBhIHNpbXBsZSBnb29n bGUgc2VhcmNoIHR1cm5zIHVwLsKgIA0KDQpUbyBzZXQgTWF4IHR4IHBvd2VyOg0Kc3VkbyBiY2Nt ZCBwc3NldCAtcyAweDAwMDAgMHgwMDE3IDEwDQpUbyBzZXQgZGVmYXVsdCB0eCBwb3dlcjoNCnN1 ZG8gYmNjbWQgcHNzZXQgLXMgMHgwMDAwIDB4MDAyZCAxMMKgwqAgDQoNCkl0IGVhdHMgYm90aCBv ZiB0aG9zZSBjb21tYW5kcyBhbmQgZG9lcyBub3QgY29tcGxhaW4gbm8gZXJyb3JzIGJ1dCBhbHNv IG5vIGNoYW5nZSBpbiBUWCBwb3dlciBvdXRwdXQuIA0KSeKAmW0gd2F0Y2hpbmcgdGhlIGJlYWNv bnMgb24gYSByZWNlaXZlciBhbmQgYSBzcGVjdHJ1bSBhbmFseXNlci7CoCANCg0KSWYgSSBpc3N1 ZTogfiMgaGNpY29uZmlnIGhjaTAgaW5xdHBsDQpoY2kwOsKgwqAgVHlwZTogQlIvRURSwqAgQnVz OiBVU0INCsKgwqDCoMKgwqDCoMKgIEJEIEFkZHJlc3M6IDAwOjE1OjgzOkVBOjBBOkI5wqAgQUNM IE1UVTogMzEwOjEwwqAgU0NPIE1UVTogNjQ6OA0KwqDCoMKgwqDCoMKgwqAgSW5xdWlyeSB0cmFu c21pdCBwb3dlciBsZXZlbDogNA0KDQpBbHdheXMgcmVhZHMgYmFjayB0aGF0IOKAnDTigJ3CoMKg IA0KDQpJc3N1aW5nIGVpdGhlcjrCoCANCg0KIyBiY2NtZCB3YXJtcmVzZXQgDQotb3INCiMgYmNj bWQgY29sZHJlc2V0DQoNCnJlc3VsdHMgaW4gdHJhbnNtaXR0ZXIgb2ZmIGFuZCBoYXZlIHRvIGRv OsKgIA0KDQpoY2l0b29sIC1pIGhjaTAgY21kIDB4MDggMHgwMDA4IDFFIDAyIDAxIDFBIDFBIEZG IDRDIDAwIDAyIDE1IEUyIDBBIDM5IEY0IDczIEY1IDRCIEM0IEExIDJGIDAxIDczIDQ1IDI3IDcx IDUwIDBBIDI4IDBBIDI4IDAxIEZGDQotYW5kwqAgDQp+IyBoY2ljb25maWcgaGNpMCBsZWFkdjMN Cg0KVG8gZ2V0IGl0IHRyYW5zbWl0dGluZyBhZ2FpbiAoYXQgdGhlIHNhbWUgbm9uIGNoYW5nZWQg bGV2ZWwuwqAgDQoNCkFuZCANCg0KfiMgaGNpY29uZmlnIGhjaTAgaW5xdHBsDQoNCmhjaTA6wqDC oCBUeXBlOiBCUi9FRFLCoCBCdXM6IFVTQg0KwqDCoMKgwqDCoMKgwqAgQkQgQWRkcmVzczogMDA6 MTU6ODM6RUE6MEE6QjnCoCBBQ0wgTVRVOiAzMTA6MTDCoCBTQ08gTVRVOiA2NDo4DQrCoMKgwqDC oMKgwqDCoCBJbnF1aXJ5IHRyYW5zbWl0IHBvd2VyIGxldmVsOiA0DQoNCkFsd2F5cyBzaG93cyDi gJw04oCdIMKgwqANCg0KT24gdG9wIG9mIGV2ZXJ5dGhpbmcgSSBoYXZlIHN0YXRlZCBhbmQgdHJp ZWQgaGVyZS4uIA0KSSBkb27igJl0IHRoaW5rIHRoYXQgc2V0dGluZyAoaWYgaXQgZXZlbiB3b3Jr ZWQpIGhhcyBhbnkgcmVsYXRpb24gdG8gTEUgR0ZTSyBhZHZlcnRpc2luZyBtb2RlLsKgwqAgDQoN ClByZXR0eSBzdXJlIGl0IGRvZXMgbm90LsKgwqAgDQpUaGF0IChpZiBpdCB3b3JrZWQpIHNldHMg cG93ZXIgb24gQmFzaWMgUmF0ZSBhbmQgRURSIGFzIHNlZW4gaW4gdGhlIHJlc3VsdCDigJxoY2kw OsKgwqAgVHlwZTogQlIvRURSwqAgQnVzOiBVU0LigJ0gd2hlbiBpc3N1aW5nIHRoZSBoY2ljb25m aWcgaGNpMCBpbnF0cGwgY29tbWFuZC4NCg0KDQoNCsKgIA0KDQoNCg0KDQoNCg0KDQoNCg0KDQpT dGV2ZSBHbGFkZGVuDQrCoA0KTWljaGlnYW4gQnJvYWRiYW5kIFN5c3RlbXMNCkNvbm5lY3Rpbmcg WW91ciBCdXNpbmVzcyENCg0KDQoNCisxIDczNC41MjcuNzE1MCBEaXJlY3QNCisxIDI0OC4zMjcu NDM4OSBGYXgNCnN0ZXZlQG1pY2hpZ2FuYnJvYWRiYW5kLmNvbQ0Kd3d3Lm1pY2hpZ2FuYnJvYWRi YW5kLmNvbQ0KDQpGcm9tOiBKb3NlcGggSHdhbmcgW21haWx0bzpqb3NlcGhzaWhAZ29vZ2xlLmNv bV0gDQpTZW50OiBXZWRuZXNkYXksIE9jdG9iZXIgMTIsIDIwMTYgMTE6NTUgQU0NClRvOiBTdGV2 ZSBHbGFkZGVuDQpDYzogSGlldSBMZTsgQmFycnkgQnlmb3JkOyBsaW51eC1ibHVldG9vdGhAdmdl ci5rZXJuZWwub3JnDQpTdWJqZWN0OiBSZTogSG93IGNhbiB5b3Ugc2V0IFRyYW5zbWl0IHBvd2Vy IGxldmVsIGluIEJsdWV0b290aCBMRSBtb2RlIGZvciBhbiBMRSBiZWFjb24/DQoNCkhpIFN0ZXZl Og0KDQrCoCBNYXliZSB5b3UgY2FuIHRyeSBDU1IncyBjb21tYW5kIGxpbmUgdXRpbGl0eSwgYmNj bWQuIFRoZSBzeXN0ZW0gY29udHJvbCBjb21tYW5kIE1heF9UeF9Qb3dlciBhbmQgRGVmYXVsdF9U eF9Qb3dlciBhbGxvdyB5b3UgdG8gc2V0IHR4IHBvd2VyLg0KDQpHb29kIGx1Y2shDQoNCkpvc2Vw aA0KDQoNCk9uIFdlZCwgT2N0IDEyLCAyMDE2IGF0IDExOjMzIFBNLCBTdGV2ZSBHbGFkZGVuIDxz dGV2ZUBtaWNoaWdhbmJyb2FkYmFuZC5jb20+IHdyb3RlOg0KVGhhbmtzLA0KSSB3YXMgaG9waW5n IHRoZXJlIHdhcyBhbiBlYXNpZXIgd2F5IGFuZCBzb21laG93IGF0IHRoZSBjb21tYW5kIGxpbmUg YnV0IEknbGwgZG8gd2hhdCBJIG5lZWQgdG8gZG8gYW5kIGZpZ3VyZSBpdCBvdXQgc29tZWhvdy4N CkkgdXN1YWxseSBlbmQgdXAgb24gMTAgb3RoZXIgcmFiYml0IHRyYWlscyB3aGVuIGl0IGNvbWVz IHRvIGhhdmluZyB0byByZWNvbXBpbGUgYW55dGhpbmcgYmVjYXVzZSBpdCB1c3VhbGx5IGp1c3Qg ZmFpbHMgZm9yIG1lIGFuZCBJJ20NCm5vdCB5ZXQgd2VsbCB2ZXJzZWQgaW4gdHJvdWJsZXNob290 aW5nIHdoZW4gdGhpbmdzIHdvbid0IGNvbXBpbGUgc3VjY2Vzc2Z1bGx5IGFzaWRlIGZyb20gd2hh dCBJIGNhbiBlYXNpbHkgZ29vZ2xlLg0KDQpJIGFsc28gdGhpbmsgaXQncyBhIGxpdHRsZSBtb3Jl IGNvbXBsaWNhdGVkIHRoYW4ganVzdCBzZXR0aW5nIHRoZSBwb3dlci4NCkkgaGF2ZSBnYXRoZXJl ZCBhdCBsZWFzdCB3aXQgaHRoZSBDU1IgY2hpcHNldCB0aGF0IHRoZXJlIGFyZSBhdCBsZWFzdCAz IHNlcGFyYXRlIHBvd2VyIHNldHRpbmdzIHRoYXQgY2FuIGJlIGFkanVzdGVkIGFuZCBub3QgYW55 IG92ZXJhbGwgcG93ZXIgc2V0dGluZy4NClNvIHRoZSB2YXJpb3VzIG1vZHVsYXRpb24gbW9kZXMg KGluY2x1ZGluZyBHRlNLIC1MRSBhZHZlcnRpc2luZy0pIG5lZWQgdG8gYmUgYWRkcmVzc2VkIGFu ZCBzZXQgaW5kaXZpZHVhbGx5Lg0KVGhlcmUncyBub3QgYSBtYXN0ZXIgdHJhbnNtaXQgbGV2ZWwg dGhhdCBzZXRzIHRoZW0gYWxsLg0KDQoNClN0ZXZlIEdsYWRkZW4NCsKgDQpNaWNoaWdhbiBCcm9h ZGJhbmQgU3lzdGVtcw0KQ29ubmVjdGluZyBZb3VyIEJ1c2luZXNzIQ0KDQoNCg0KKzEgNzM0LjUy Ny43MTUwwqBEaXJlY3QNCisxIDI0OC4zMjcuNDM4OcKgRmF4DQpzdGV2ZUBtaWNoaWdhbmJyb2Fk YmFuZC5jb20NCnd3dy5taWNoaWdhbmJyb2FkYmFuZC5jb20NCg0KLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCkZyb206IEhpZXUgTGUgW21haWx0bzpoaWV1LmxlQHZlcmlrc3lzdGVtcy5jb21d DQpTZW50OiBXZWRuZXNkYXksIE9jdG9iZXIgMTIsIDIwMTYgMTowMCBBTQ0KVG86IFN0ZXZlIEds YWRkZW4NCkNjOiBCYXJyeSBCeWZvcmQ7IGxpbnV4LWJsdWV0b290aEB2Z2VyLmtlcm5lbC5vcmcN ClN1YmplY3Q6IFJlOiBIb3cgY2FuIHlvdSBzZXQgVHJhbnNtaXQgcG93ZXIgbGV2ZWwgaW4gQmx1 ZXRvb3RoIExFIG1vZGUgZm9yIGFuIExFIGJlYWNvbj8NCg0KSGksDQoNCkluIG15IG9waW5pb24s IHRoZSBvbmx5IHdheSBJIGNhbiBmaW5kIHRvIGluY3JlYXNlIHRoZSB0eF9wb3dlciBpcyB0byBy ZWNvbXBpbGUgdGhlIGxpbnV4IGtlcm5lbC4gVGhlcmUgbWF5IGJlIGEgYmV0dGVyIHdheQ0KDQpJ dCBzZWVtcyB0aGF0IGJsdWV0b290aCBzdGFjayB3aXRoaW4ga2VybmVsIHNlcGFyYXRlZCBpbnRv IHR3byBjbGFzc2VzOg0KMS4gSW5xdWlyeSBUeF9wb3dlci4NCjIuIEFkdmVydGlzZSBUeF9wb3dl ci4NCg0KQW5kIHRoZSBkZWZhdWx0IHZhbHVlIGlzIDAuDQoNCllvdSBjYW4gdGFrZSBhIGxvb2sg YXQ6DQoqaGNpX2FsbG9jX2Rldih2b2lkKcKgIGZ1bmN0aW9uIHdpdGhpbiBuZXQvYmx1ZXRvb3Ro L2hjaV9jb3JlLmMgZmlsZQ0KaGRldi0+aW5xX3R4X3Bvd2VyID0gSENJX1RYX1BPV0VSX0lOVkFM SUQ7IGFkdl90eF9wb3dlciA9DQpoZGV2LT5IQ0lfVFhfUE9XRVJfSU5WQUxJRDsNCg0KSG9wZSBp dCB3aWxsIGJlIGhlbHBmdWwgdG8geW91Lg0KDQpSZWdhcmRzLA0KSGlldS4NCg0KT24gV2VkLCBP Y3QgMTIsIDIwMTYgYXQgMTI6NTIgQU0sIFN0ZXZlIEdsYWRkZW4gPHN0ZXZlQG1pY2hpZ2FuYnJv YWRiYW5kLmNvbT4gd3JvdGU6DQo+IFRoYW5rcyEhDQo+IFllcyBpdCdzIG5pY2UgdG8gaGVhciBm cm9tIHNvbWVib2R5Lg0KPg0KPiBJJ3ZlIGJlZW4gc2NvdXJpbmcgdGhlIHdlYiBzbyBmYXIgdG8g bm8gYXZhaWwgb24gd2hhdCBJIHRoaW5rIHNob3VsZCBiZSBhIHNpbXBsZSBhbmQgYWNjZXNzaWJs ZSBzZXR0aW5nLg0KPiBJdCdzIG9idmlvdXMgZnJvbSB0aGUgc3BlY3MgdGhhdCBtb3N0IGNoaXBz IGhhdmUgYSBwcm9ncmFtbWFibGUgKHNldHRhYmxlKSB0cmFuc21pdHRlciBwb3dlci4NCj4gQW5k IHdpdGggYmVhY29ucyBpdCBpcyB2ZXJ5IGltcG9ydGFudCBhbmQgZXhwZWN0ZWQgdGhhdCBvbmUg c2hvdWxkIGJlIGFibGUgdG8gYWRqdXN0IHRoZSB0cmFuc21pdHRlciBsZXZlbC4NCj4gQWxsIG9m IHRoZSBzZXJpYWwgYm9hcmRzIGRvIGl0IHdpdGggc2ltcGxlIEFUIGNvbW1hbmRzLg0KPg0KPiBJ IGp1c3QgZG9uJ3QgZ2V0IHdoeSB0aGVyZSdzIG5vIGRvY3VtZW50YXRpb24gb24gaG93IHRvIGRv IGl0IHdpdGggYSBVU0IgZGV2aWNlISENCj4NCj4gVGhleSBzZWxsIGNsYXNzIDEgYmx1ZXRvb3Ro IHVzYiBkb25nbGVzIGZvciBhcHBsaWNhdGlvbnMgdGhhdCByZXF1aXJlIG1vcmUgcmFuZ2UgKDEw MG0pIGlzIHF1b3RlZCBvbiBtb3N0IGNsYXNzIDEgcHJvZHVjdHMuDQo+DQo+IEknZCBleHBlY3Qg dGhlcmUgc2hvdWxkIGJlIGEgc3RyYWlnaHQgZm9yd2FyZCBlYXN5IHRvIHNldCBwb3dlciBpbiBM RSBtb2RlIHRvIGdldCBtb3JlIHJhbmdlIG9yIHNhdmUgcG93ZXIgYW5kIGxpbWl0IHJhbmdlIHdo ZW4gd2FudGVkLg0KPg0KPiBCdXQgSSdtIHJlYWxseSBub3QgZmluZGluZyB0aGlzIGluZm9ybWF0 aW9uIG91dCB0aGVyZSENCj4NCj4gSSBkb247dCB1bmRlcnN0YW5kIHdoYXQgSSBhbSBkb2luZyB3 cm9uZyBvciB3aHkgdGhpcyBpcyBzbyBkaWZmaWN1bHQNCj4gdG8gZmluZC7CoCA6KQ0KPg0KPg0K Pg0KPg0KPg0KPg0KPg0KPiBPbiAxMSBPY3RvYmVyIDIwMTYgYXQgMTc6NTAsIFN0ZXZlIEdsYWRk ZW4gPHN0ZXZlQG1pY2hpZ2FuYnJvYWRiYW5kLmNvbT4gd3JvdGU6DQo+PiBJcyB0aGlzIHRoaXMg bGlzdCBqdXN0IHNvbWUga2luZCBvZiBhdXRvbWF0ZWQgcGF0Y2ggYW5ub3VuY2VtZW50IGxvZyBh bmQgbm90IGFuIGFjdHVhbCBtYWlsaW5nIGxpc3Qgd2hlcmUgeW91IGNhbiBhc2sgYW55dGhpbmcg YWJvdXQgYmx1ZXRvb3RoLg0KPj4gVGhpcyBpcyBhbGwgSSBoYXZlIHNlZW4gaGVyZSBmb3IgdGhl IHBhc3QgZmV3IGRheXM/DQo+PiBXaGVyZSBjYW4gSSBhc2sgYW4gYWN0dWFsIHF1ZXN0aW9uIGFi b3V0IGJsdWV0b290aD8NCj4NCj4gVGhlcmUgYXJlIHNvbWUgcmVhbCBodW1hbnMgaGVyZSB0b28h wqAgOi0pDQo+DQo+IElmIHlvdSBsb29rIGJhY2sgb24gdGhlIGFyY2hpdmUgb2YgdGhpcyBsaXN0 IHlvdSB3aWxsIHNlZSBhIG1peHR1cmUgb2YNCj4gcXVlc3Rpb25zIGFuZCBwYXRjaCByZXF1ZXN0 cy4NCj4gbWFyYy5pbmZvLz9sPWxpbnV4LWJsdWV0b290aA0KPg0KPiBJJ3ZlIGtlcHQgcXVpZXQg YXMgSSdtIG5vdCBzdXJlIEkgY2FuIGFuc3dlciBxdWVzdGlvbnMuIFRvIG9mZmVyIHNvbWUNCj4g c2hhcmVkIGV4cGVyaWVuY2UsIEkgY2FuIHNheSB0aGF0IEkndmUgYmVlbiBleHBlcmltZW50aW5n IHdpdGgNCj4gKEVkZHlzdG9uZSkgYmVhY29ucyBvbiBMaW51eCBzaW5nbGUgYm9hcmQgY29tcHV0 ZXJzIGFjY2Vzc2luZyBCbHVlWg0KPiB0aHJvdWdoIHRoZSBEQnVzIEFQSSB1c2luZyBQeXRob24u IEkgYWxzbyBoYXZlIG5vdCBmb3VuZCBhIHdheSB0bw0KPiBjaGFuZ2UgdGhlIHBvd2VyIGxldmVs IG9mIGFkdmVydGlzZW1lbnRzIGVpdGhlci4gRm9yIHdoYXQgSSdtIGRvaW5nLA0KPiBqdXN0IG1h a2luZyBzdXJlIHRoZSBUWCBwb3dlciBpbiB0aGUgRWRkeXN0b25lIGFkdmVydCBtYXRjaGVzIHdo YXQgdGhlDQo+IGRvbmdsZSBpcyBhY3R1YWxseSBicm9hZGNhc3RpbmcgaGFzIGJlZW4gZ29vZCBl bm91Z2guDQo+DQo+IFNvcnJ5IEkgY291bGRuJ3QgYmUgb2YgbW9yZSBoZWxwLg0KPg0KPiBSZWdh cmRzLA0KPiBCYXJyeQ0KPg0KPj4NCj4+DQo+Pg0KPj4NCj4+IFN0ZXZlIEdsYWRkZW4NCj4+DQo+ PiBNaWNoaWdhbiBCcm9hZGJhbmQgU3lzdGVtcw0KPj4gQ29ubmVjdGluZyBZb3VyIEJ1c2luZXNz IQ0KPj4NCj4+DQo+Pg0KPj4gKzEgNzM0LjUyNy43MTUwIERpcmVjdA0KPj4gKzEgMjQ4LjMyNy40 Mzg5IEZheA0KPj4gc3RldmVAbWljaGlnYW5icm9hZGJhbmQuY29tDQo+PiB3d3cubWljaGlnYW5i cm9hZGJhbmQuY29tDQo+Pg0KPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXw0KPj4gRnJvbTogU3RldmUgR2xhZGRlbg0KPj4gU2VudDogU3VuZGF5LCBPY3RvYmVyIDA5 LCAyMDE2IDEyOjExIFBNDQo+PiBUbzogbGludXgtYmx1ZXRvb3RoQHZnZXIua2VybmVsLm9yZw0K Pj4gU3ViamVjdDogSG93IGNhbiB5b3Ugc2V0IFRyYW5zbWl0IHBvd2VyIGxldmVsIGluIEJsdWV0 b290aCBMRSBtb2RlIGZvciBhbiBMRSBiZWFjb24/DQo+Pg0KPj4gSGksDQo+PiBNeSBuYW1lIGlz IFN0ZXZlIGFuZCBJIGFtIGxvY2F0ZWQgaW4gQW5uIEFyYm9yIE1pY2hpZ2FuIFVTQS4NCj4+DQo+ PiBJIGFtIG5ld8KgIGJsdWV0b290aCBMRSBhbmQgbGF0ZWx5IGFtIG9ic2Vzc2VkIHdpdGggQmx1 ZXRvb3RoIExFIGJlYWNvbnMgYW5kIHRyeWluZyB0aGVtIG91dC4NCj4+DQo+PiBJIGhhdmUgcmVh ZCBhcnRpY2xlIGFmdGVyIGFydGljbGUgYW5kIHBhZ2UgYWZ0ZXIgcGFnZSBhYm91dCBob3cNCj4+ IHBlb3BsZSBoYXZlIHNldHVwIHVwIGJlYWNvbnMgd2l0aCBVU0IgQlQgNC4wIGludGVyZmFjZXMg YXMgd2VsbCBhcyBzZXJpYWwgYmx1ZXRvb3RoIGJvYXJkcy4NCj4+DQo+PiBJIGFtIGN1cnJlbnRs eSBleHBlcmltZW50aW5nIHdpdGggYSBiZWFjb24gcnVubmluZyBvbiBhIFJhc3BiZXJyeSBQaS1C IGFuZCB1c2luZyBhbiBleHRlcm5hbCBVU0IgQmx1ZXRvb3RoIDQuMCBjbGFzcyAxIGRvbmdsZS4N Cj4+DQo+PiBNeSBmcnVzdHJhdGlvbiBpcyB0aGF0IEkgaGF2ZSBub3QgYmVlbiBhYmxlIHRvIGZp bmQgYW55IHVzZWZ1bA0KPj4gaW5mb3JtYXRpb24gaW4gaG93IHRvIGNoYW5nZSB0aGUgVHJhbnNt aXR0ZXIgcG93ZXIgbGV2ZWwgd2hlbiBpbiBMRSBtb2RlLg0KPj4NCj4+IFRoZSBkb25nbGUgYXBw ZWFycyB0byBiZSB3b3JraW5nIGF0IGRlZmF1bHQgbGV2ZWwgYmVsb3cgemVybyBkYm0uDQo+Pg0K Pj4gVGhlIHdob2xlIHBvaW50IG9mIGJ1aWxkaW5nIHlvdXIgb3duIGJlYWNvbiB0aGlzIHdheSBp cyB0byBiZSBhYmxlIHRvDQo+PiBjdXN0b21pemUgaXQgYW5kIHNldHRpbmcgdGhlIHBvd2VyIGxl dmVsIGlzIGFuIGltcG9ydGFudCBrZXkgaXRlbSB0aGF0IHNob3VsZCBiZSBlYXNpbHkgYWNjZXNz aWJsZSB5ZXQgSSBmaW5kIHRoYXQgTk9CT0RZIGV2ZXIgZXZlbiBtZW50aW9ucyBpdCBsZXQgYWxv bmUgZG8gdGhleSBleHBsYWluIG9yIHByb3ZpZGUgYSB3YXkgdG8gc2V0IHRoZSBwb3dlci4NCj4+ DQo+Pg0KPj4gRXZlcnkgdGV4dCB0aGF0IEkgaGF2ZSBmb3VuZCB0aGF0IGRldGFpbHMgYmVhY29u IHNldHVwcyBmcm9tIGNvbW1hbmQgbGluZSBuZXZlciBib3RoZXIgdG8gbWVudGlvbiBzZXR0aW5n IGJlYWNvbiBUWCBwb3dlci4NCj4+DQo+PiBBbGwgdGhlIHBhZ2VzIEkgaGF2ZSBmb3VuZCBzZWVt IHRvIGNvcHkgZWFjaCBvdGhlciBhbmQgcmVwZWF0IHRoZQ0KPj4gc2FtZSBpbmZvcm1hdGlvbiBv dmVyICYgb3ZlciBCdXQgbmV2ZXIgZ2V0IGFyb3VuZCB0byBldmVuIG1lbnRpb25pbmcgb3IgZGlz Y3Vzc2luZyBzZXR0aW5nIHRoZSBwb3dlciBvdXRwdXQgbGV2ZWwgb2YgdGhlIGJsdXRvb3RoIGRv bmdsZS4NCj4+DQo+PiBzdWRvIGhjaXRvb2wgLWkgaGNpMCBjbWQgMHgwOCAweDAwMDggMUUgMDIg MDEgMUEgMUEgRkYgNEMgMDAgMDIgMTUgWw0KPj4gOTIgNzcgODMgMEEgQjIgRUIgNDkgMEYgQTEg REQgN0YgRTMgOEMgNDkgMkUgREUgXSBbIDAwIDAwIF0gWyAwMCAwMCBdDQo+PiBDNSAwMA0KPj4N Cj4+IFRoZSBieXRlIGp1c3QgbGVmdCBvZiB0aGUgbGFzdCBvbmUgaXMgdGhlICJyZXBvcnRlZCIg VFggbGV2ZWwgdGhhdCB5b3UgYXJlIHRyYW5zbWl0dGluZyBhdC4NCj4+IFdoaWNoIG1lYW5zIHlv dSdyZSBzdXBwb3NlZCB0byBrbm93IChvciBndWVzcz8pIHdoYXQgZGJtIGxldmVsIHlvdSBhcmUg YWN0dWFsbHkgdHJhbnNtaXR0aW5nIGF0IGFuZCBzZXQgaXQgaGVyZSB0byBkaXNwbGF5IHRvIHRo ZSB3b3JsZCB3aGF0IHlvdXIgdHJhbnNtaXR0ZXIgbGV2ZWwgaXMgc2V0IHRvIHNvIHRoZXkgY2Fu IHJhbmdlIChndWVzcyBvciBlc3RpbWF0ZSBkaXN0YW5jZSBmcm9tIFRYKS4NCj4+IFRoaXMgdmFs dWUgZG9lcyBub3QgaW5mbHVlbmNlIG9yIHJlZmxlY3QgYWN0dWFsIHRyYW5zbWl0IHBvd2VyLg0K Pj4NCj4+IFBsZWFzZSBoZWxwISENCj4+DQo+PiBDb3VsZCB1c2UgYW55IHBvaW50ZXJzLg0KPj4N Cj4+IEknbSBhIGhhcmR3YXJlIGd1eSBhcyB3ZWxsIHNvIG5vdCB2ZXJ5IGV4cGVyaWVuY2VkIGlu IHNvZnR3YXJlL3Byb2dyYW1taW5nIGJ1dCBJJ20gd2lsbGluZyB0byB0cnkgYW55dGhpbmcgdG8g Z2V0IGNvbnRyb2wgb2YgdGhpcy4NCj4+DQo+PiBCZWVuIGF0IHRoaXMgZm9yIG92ZXIgYSB3ZWVr IGFuZCBoYXZlIHNvbWUgd29ya2luZyBiZWFjb25zIGJ1dCBubyBjb250cm9sIG9mIHRyYW5zbWl0 IHBvd2VyIGxldmVsLg0KPj4NCj4+IEFtIHVzaW5nIFRyZW5kbmV0IFVTQiBkb25nbGVzIHdoaWNo IGFwcGVhciB0byB1c2UgYSBDYW1icmlkZ2UgQ2hpcC7CoCBCdXQgSSdtIG5vdCBleGFjdGx5IHN1 cmUgd2hpY2ggY2hpcC4NCj4+DQo+Pg0KPj4gOn4jIGxzdXNiDQo+PiBCdXMgMDAxIERldmljZSAw MDc6IElEIDBhMTI6MDAwMSBDYW1icmlkZ2UgU2lsaWNvbiBSYWRpbywgTHRkDQo+PiBCbHVldG9v dGggRG9uZ2xlIChIQ0kgbW9kZSkNCj4+DQo+Pg0KPj4gcm9vdEByYXNwYmVycnlwaTp+IyBoY2lj b25maWcgaGNpMA0KPj4gaGNpMDrCoCDCoFR5cGU6IEJSL0VEUsKgIEJ1czogVVNCDQo+PsKgIMKg IMKgIMKgIMKgQkQgQWRkcmVzczogMDA6MTU6ODM6RUE6MEE6QjnCoCBBQ0wgTVRVOiAzMTA6MTDC oCBTQ08gTVRVOiA2NDo4DQo+PsKgIMKgIMKgIMKgIMKgVVAgUlVOTklORw0KPj7CoCDCoCDCoCDC oCDCoFJYIGJ5dGVzOjc4MCBhY2w6MCBzY286MCBldmVudHM6NTAgZXJyb3JzOjANCj4+wqAgwqAg wqAgwqAgwqBUWCBieXRlczoxMTEwIGFjbDowIHNjbzowIGNvbW1hbmRzOjUwIGVycm9yczowDQo+ Pg0KPj4NCj4+DQo+Pg0KPj4NCj4+DQo+Pg0KPj4NCj4+DQo+Pg0KPj4NCj4+DQo+Pg0KPj4NCj4+ IC0tDQo+PiBUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5z dWJzY3JpYmUNCj4+IGxpbnV4LWJsdWV0b290aCIgaW4gdGhlIGJvZHkgb2YgYSBtZXNzYWdlIHRv DQo+PiBtYWpvcmRvbW9Admdlci5rZXJuZWwub3JnIE1vcmUgbWFqb3Jkb21vIGluZm8gYXQNCj4+ IGh0dHA6Ly92Z2VyLmtlcm5lbC5vcmcvbWFqb3Jkb21vLWluZm8uaHRtbA0KPiAtLQ0KPiBUbyB1 bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUNCj4g bGludXgtYmx1ZXRvb3RoIiBpbiB0aGUgYm9keSBvZiBhIG1lc3NhZ2UgdG8gbWFqb3Jkb21vQHZn ZXIua2VybmVsLm9yZw0KPiBNb3JlIG1ham9yZG9tbyBpbmZvIGF0wqAgaHR0cDovL3ZnZXIua2Vy bmVsLm9yZy9tYWpvcmRvbW8taW5mby5odG1sDQoNCg0KDQotLQ0KLS0tLSBIaWV1IExlIC0tLQ0K DQoNCg0KDQotLSANCg0KSm9zZXBoIFNoeWgtSW4gSHdhbmcNCkVtYWlsOiBqb3NlcGhzaWhAZ29v Z2xlLmNvbQ0KDQo= ^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: How can you set Transmit power level in Bluetooth LE mode for an LE beacon? [not found] ` <CAHFy41_8FzDF-jATapn20Km8vbX6nt44DN9uPnazDMOJ_yD=Kw@mail.gmail.com> 2016-10-13 13:54 ` Steve Gladden @ 2016-10-16 21:56 ` Steve Gladden 2016-10-16 22:48 ` Jason Anderssen 1 sibling, 1 reply; 13+ messages in thread From: Steve Gladden @ 2016-10-16 21:56 UTC (permalink / raw) To: Joseph Hwang; +Cc: Hieu Le, Barry Byford, linux-bluetooth@vger.kernel.org T2ssIHRoaXMgaXMgZ2V0dGluZyByZWFsbHkgZnJ1c3RyYXRpbmcuDQpXaHkgd291bGQgc29tZXRo aW5nIHNvIHNpbXBsZSBsaWtlIHRoaXMgYmUgc28gZGlmZmljdWx0PyAgDQoNCkFtIEkgcmVhbGx5 IHRoZSBvbmx5IHNoZWVwIG91dCBoZXJlIHRoYXQgaGFzIGFueSBpbnRlcmVzdCB3aGF0c29ldmVy IGluIHRoZSBwYXN0IDUgeWVhcnMgb24gaG93IHRvIGFjdHVhbGx5IHNldCBMRSB0cmFuc21pdCBw b3dlciBvbiBhIFVTQiBkZXZpY2U/ICAgDQpEbyBJIGp1c3Qgbm90IGdldCBpdD8gICAgIA0KUmVh bGx5IEkgZG9u4oCZdCBnZXQgaXQuICAgDQoNCkEgcmVhbGx5IHNpbXBsZSB0YXNrIGFuZCBub2Jv ZHkgb3V0IGhlcmUgZWl0aGVyIGtub3dzIG9yIGhhcyBhbnkgaW50ZXJlc3QgaW4gZG9pbmcgaXQu ICANCg0KTXkgcXVlc3Rpb24gaXMgbm90IGV2ZW4gdGVjaG5pY2FsIGF0IGFsbC4gICBJZiBJIGFj dHVhbGx5IGFza2VkIHNvbWV0aGluZyB0ZWNobmljYWwgb3V0IGhlcmUgd291bGQgd291bGQgaGFw cGVuPyAgDQoNCk5vIG9mZmVuc2UgdG8gYW55b25lIG91dCBoZXJlIGp1c3QgdG8gbXlzZWxmIHJl YWxseSBidXQgd2hhdCBnaXZlcz8gICANCg0KSG93IGNvdWxkIHBlb3BsZSB3b3JraW5nIHdpdGgg dGhpcyBzdHVmZiBOT1QgYmUgaW50ZXJlc3RlZCBpbiBzaW1wbHkgY29udHJvbGxpbmcgdGhlIFRY IHBvd2VyIG91dHB1dCB2ZXJzdXMganVzdCBsaXZpbmcgd2l0aCBzb21lIFVOS05PV04gREVGQVVM VCB0aGF0IGp1c3Qgc29ydGEgd29ya3MgaWYgeW914oCZcmUgaGFwcHkgd2l0aCBvbmx5IDIwIGZl ZXQgb2YgcmFuZ2UgYWx0aG91Z2ggdGhlIGNoaXAgY2FuIHB1dCBvdXQgKzEwZGJtIGFuZCBnbyBm dXJ0aGVyIA0KT3Igc2V0IGl0IHdheSBiYWNrIHRvIC00MGRibSBhbmQgZ2V0IGpzdHUgYSBmZXcg ZmVldCBhbmQgeWVhcnMgb2YgYmF0dGVyeSBsaWZlLiANCg0KSG93IHRoZSBhY3R1YWwgRi0gYXJl IHBlb3BsZSBOT1QgaW50ZXJlc3RlZCBpbiB0aGlzIGFuZCB0YWxraW5nIGFib3V0IGl0IGFuZCB3 b3JraW5nIHdpdGggaXQ/ICAg4pi6ICAgDQoNCkFsbCBJIGhhdmUgZm91bmQgb24gYmNjbWQgaXMg YSBQREYgZG9jdW1lbnQgZnJvbSAyMDA1IHRoYXQgcHJlZGF0ZXMgQU5ZIGtpbmQgb2YgQlRMRSBz dHVmZi4gICANCg0KQW5kIHRoYXTigJlzIGp1c3QgZm9yIHRoZSBDU1IgY2hpcHNldHMgdGhlIE9O RSB0aGF0IEkgY291bGQgZmluZCBkb2N1bWVudGF0aW9uIG9uLiAgIA0KDQpXaGF0IGFib3V0IGFs bCB0aGUgb3RoZXJzPyAgIA0KDQpXaGF0IGdpdmVzIGhlcmUgbWFuPyAgIA0KDQpBbSBJIGNvbXBs ZXRlbHkgaW4gdGhlIHdyb25nIHBsYWNlIHRvIGJlIGFza2luZyBhYm91dCB0aGlzPyAgIA0KDQpJ IGRvbuKAmXQgbWVhbiBhbnkgZGlzcmVzcGVjdCwgcmVhbGx5IEkgZG9u4oCZdCEgIA0KDQpCdXQg d2hlcmUgaW4gdGhlIHdvcmxkIGRvIEkgZ28gdG8gZ2V0IHRoaXMgYmFzaWMgaW5mb3JtYXRpb24/ ICAgDQoNCkFuZCB3aHkgZG9lcyBub2JvZHkgY2FyZSBvZiBoYXZlIGFueSBoYW5kcy1vbiBleHBl cmllbmNlIGhlcmUgYW5kL29yIGludGVyZXN0PyAgIA0KDQpUaGFua3MhISAgDQoNClN0ZXZlICAN Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KVHJpZWQgdGhhdCBvZiBjb3Vyc2UgYWxyZWFkeSBk YXlzIGFnby7CoCANCkFzIHdlbGwgYXMgYW55dGhpbmcgZWxzZSBhIHNpbXBsZSBnb29nbGUgc2Vh cmNoIHR1cm5zIHVwLsKgIA0KDQpUbyBzZXQgTWF4IHR4IHBvd2VyOg0Kc3VkbyBiY2NtZCBwc3Nl dCAtcyAweDAwMDAgMHgwMDE3IDEwDQpUbyBzZXQgZGVmYXVsdCB0eCBwb3dlcjoNCnN1ZG8gYmNj bWQgcHNzZXQgLXMgMHgwMDAwIDB4MDAyZCAxMMKgwqAgDQoNCkl0IGVhdHMgYm90aCBvZiB0aG9z ZSBjb21tYW5kcyBhbmQgZG9lcyBub3QgY29tcGxhaW4gbm8gZXJyb3JzIGJ1dCBhbHNvIG5vIGNo YW5nZSBpbiBUWCBwb3dlciBvdXRwdXQuIA0KSeKAmW0gd2F0Y2hpbmcgdGhlIGJlYWNvbnMgb24g YSByZWNlaXZlciBhbmQgYSBzcGVjdHJ1bSBhbmFseXNlci7CoCANCg0KSWYgSSBpc3N1ZTogfiMg aGNpY29uZmlnIGhjaTAgaW5xdHBsDQpoY2kwOsKgwqAgVHlwZTogQlIvRURSwqAgQnVzOiBVU0IN CsKgwqDCoMKgwqDCoMKgIEJEIEFkZHJlc3M6IDAwOjE1OjgzOkVBOjBBOkI5wqAgQUNMIE1UVTog MzEwOjEwwqAgU0NPIE1UVTogNjQ6OA0KwqDCoMKgwqDCoMKgwqAgSW5xdWlyeSB0cmFuc21pdCBw b3dlciBsZXZlbDogNA0KDQpBbHdheXMgcmVhZHMgYmFjayB0aGF0IOKAnDTigJ3CoMKgIA0KDQpJ c3N1aW5nIGVpdGhlcjrCoCANCg0KIyBiY2NtZCB3YXJtcmVzZXQgDQotb3INCiMgYmNjbWQgY29s ZHJlc2V0DQoNCnJlc3VsdHMgaW4gdHJhbnNtaXR0ZXIgb2ZmIGFuZCBoYXZlIHRvIGRvOsKgIA0K DQpoY2l0b29sIC1pIGhjaTAgY21kIDB4MDggMHgwMDA4IDFFIDAyIDAxIDFBIDFBIEZGIDRDIDAw IDAyIDE1IEUyIDBBIDM5IEY0IDczIEY1IDRCIEM0IEExIDJGIDAxIDczIDQ1IDI3IDcxIDUwIDBB IDI4IDBBIDI4IDAxIEZGDQotYW5kwqAgDQp+IyBoY2ljb25maWcgaGNpMCBsZWFkdjMNCg0KVG8g Z2V0IGl0IHRyYW5zbWl0dGluZyBhZ2FpbiAoYXQgdGhlIHNhbWUgbm9uIGNoYW5nZWQgbGV2ZWwu wqAgDQoNCkFuZCANCg0KfiMgaGNpY29uZmlnIGhjaTAgaW5xdHBsDQoNCmhjaTA6wqDCoCBUeXBl OiBCUi9FRFLCoCBCdXM6IFVTQg0KwqDCoMKgwqDCoMKgwqAgQkQgQWRkcmVzczogMDA6MTU6ODM6 RUE6MEE6QjnCoCBBQ0wgTVRVOiAzMTA6MTDCoCBTQ08gTVRVOiA2NDo4DQrCoMKgwqDCoMKgwqDC oCBJbnF1aXJ5IHRyYW5zbWl0IHBvd2VyIGxldmVsOiA0DQoNCkFsd2F5cyBzaG93cyDigJw04oCd IMKgwqANCg0KT24gdG9wIG9mIGV2ZXJ5dGhpbmcgSSBoYXZlIHN0YXRlZCBhbmQgdHJpZWQgaGVy ZS4uIA0KSSBkb27igJl0IHRoaW5rIHRoYXQgc2V0dGluZyAoaWYgaXQgZXZlbiB3b3JrZWQpIGhh cyBhbnkgcmVsYXRpb24gdG8gTEUgR0ZTSyBhZHZlcnRpc2luZyBtb2RlLsKgwqAgDQoNClByZXR0 eSBzdXJlIGl0IGRvZXMgbm90LsKgwqAgDQpUaGF0IChpZiBpdCB3b3JrZWQpIHNldHMgcG93ZXIg b24gQmFzaWMgUmF0ZSBhbmQgRURSIGFzIHNlZW4gaW4gdGhlIHJlc3VsdCDigJxoY2kwOsKgwqAg VHlwZTogQlIvRURSwqAgQnVzOiBVU0LigJ0gd2hlbiBpc3N1aW5nIHRoZSBoY2ljb25maWcgaGNp MCBpbnF0cGwgY29tbWFuZC4NCg0KDQoNCsKgIA0KDQoNCg0KDQoNCg0KDQoNCg0KDQpTdGV2ZSBH bGFkZGVuDQrCoA0KTWljaGlnYW4gQnJvYWRiYW5kIFN5c3RlbXMNCkNvbm5lY3RpbmcgWW91ciBC dXNpbmVzcyENCg0KDQoNCisxIDczNC41MjcuNzE1MCBEaXJlY3QNCisxIDI0OC4zMjcuNDM4OSBG YXgNCnN0ZXZlQG1pY2hpZ2FuYnJvYWRiYW5kLmNvbQ0Kd3d3Lm1pY2hpZ2FuYnJvYWRiYW5kLmNv bQ0KDQpGcm9tOiBKb3NlcGggSHdhbmcgW21haWx0bzpqb3NlcGhzaWhAZ29vZ2xlLmNvbV0gDQpT ZW50OiBXZWRuZXNkYXksIE9jdG9iZXIgMTIsIDIwMTYgMTE6NTUgQU0NClRvOiBTdGV2ZSBHbGFk ZGVuDQpDYzogSGlldSBMZTsgQmFycnkgQnlmb3JkOyBsaW51eC1ibHVldG9vdGhAdmdlci5rZXJu ZWwub3JnDQpTdWJqZWN0OiBSZTogSG93IGNhbiB5b3Ugc2V0IFRyYW5zbWl0IHBvd2VyIGxldmVs IGluIEJsdWV0b290aCBMRSBtb2RlIGZvciBhbiBMRSBiZWFjb24/DQoNCkhpIFN0ZXZlOg0KDQrC oCBNYXliZSB5b3UgY2FuIHRyeSBDU1IncyBjb21tYW5kIGxpbmUgdXRpbGl0eSwgYmNjbWQuIFRo ZSBzeXN0ZW0gY29udHJvbCBjb21tYW5kIE1heF9UeF9Qb3dlciBhbmQgRGVmYXVsdF9UeF9Qb3dl ciBhbGxvdyB5b3UgdG8gc2V0IHR4IHBvd2VyLg0KDQpHb29kIGx1Y2shDQoNCkpvc2VwaA0KDQoN Ck9uIFdlZCwgT2N0IDEyLCAyMDE2IGF0IDExOjMzIFBNLCBTdGV2ZSBHbGFkZGVuIDxzdGV2ZUBt aWNoaWdhbmJyb2FkYmFuZC5jb20+IHdyb3RlOg0KVGhhbmtzLA0KSSB3YXMgaG9waW5nIHRoZXJl IHdhcyBhbiBlYXNpZXIgd2F5IGFuZCBzb21laG93IGF0IHRoZSBjb21tYW5kIGxpbmUgYnV0IEkn bGwgZG8gd2hhdCBJIG5lZWQgdG8gZG8gYW5kIGZpZ3VyZSBpdCBvdXQgc29tZWhvdy4NCkkgdXN1 YWxseSBlbmQgdXAgb24gMTAgb3RoZXIgcmFiYml0IHRyYWlscyB3aGVuIGl0IGNvbWVzIHRvIGhh dmluZyB0byByZWNvbXBpbGUgYW55dGhpbmcgYmVjYXVzZSBpdCB1c3VhbGx5IGp1c3QgZmFpbHMg Zm9yIG1lIGFuZCBJJ20NCm5vdCB5ZXQgd2VsbCB2ZXJzZWQgaW4gdHJvdWJsZXNob290aW5nIHdo ZW4gdGhpbmdzIHdvbid0IGNvbXBpbGUgc3VjY2Vzc2Z1bGx5IGFzaWRlIGZyb20gd2hhdCBJIGNh biBlYXNpbHkgZ29vZ2xlLg0KDQpJIGFsc28gdGhpbmsgaXQncyBhIGxpdHRsZSBtb3JlIGNvbXBs aWNhdGVkIHRoYW4ganVzdCBzZXR0aW5nIHRoZSBwb3dlci4NCkkgaGF2ZSBnYXRoZXJlZCBhdCBs ZWFzdCB3aXQgaHRoZSBDU1IgY2hpcHNldCB0aGF0IHRoZXJlIGFyZSBhdCBsZWFzdCAzIHNlcGFy YXRlIHBvd2VyIHNldHRpbmdzIHRoYXQgY2FuIGJlIGFkanVzdGVkIGFuZCBub3QgYW55IG92ZXJh bGwgcG93ZXIgc2V0dGluZy4NClNvIHRoZSB2YXJpb3VzIG1vZHVsYXRpb24gbW9kZXMgKGluY2x1 ZGluZyBHRlNLIC1MRSBhZHZlcnRpc2luZy0pIG5lZWQgdG8gYmUgYWRkcmVzc2VkIGFuZCBzZXQg aW5kaXZpZHVhbGx5Lg0KVGhlcmUncyBub3QgYSBtYXN0ZXIgdHJhbnNtaXQgbGV2ZWwgdGhhdCBz ZXRzIHRoZW0gYWxsLg0KDQoNClN0ZXZlIEdsYWRkZW4NCsKgDQpNaWNoaWdhbiBCcm9hZGJhbmQg U3lzdGVtcw0KQ29ubmVjdGluZyBZb3VyIEJ1c2luZXNzIQ0KDQoNCg0KKzEgNzM0LjUyNy43MTUw wqBEaXJlY3QNCisxIDI0OC4zMjcuNDM4OcKgRmF4DQpzdGV2ZUBtaWNoaWdhbmJyb2FkYmFuZC5j b20NCnd3dy5taWNoaWdhbmJyb2FkYmFuZC5jb20NCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCkZyb206IEhpZXUgTGUgW21haWx0bzpoaWV1LmxlQHZlcmlrc3lzdGVtcy5jb21dDQpTZW50 OiBXZWRuZXNkYXksIE9jdG9iZXIgMTIsIDIwMTYgMTowMCBBTQ0KVG86IFN0ZXZlIEdsYWRkZW4N CkNjOiBCYXJyeSBCeWZvcmQ7IGxpbnV4LWJsdWV0b290aEB2Z2VyLmtlcm5lbC5vcmcNClN1Ympl Y3Q6IFJlOiBIb3cgY2FuIHlvdSBzZXQgVHJhbnNtaXQgcG93ZXIgbGV2ZWwgaW4gQmx1ZXRvb3Ro IExFIG1vZGUgZm9yIGFuIExFIGJlYWNvbj8NCg0KSGksDQoNCkluIG15IG9waW5pb24sIHRoZSBv bmx5IHdheSBJIGNhbiBmaW5kIHRvIGluY3JlYXNlIHRoZSB0eF9wb3dlciBpcyB0byByZWNvbXBp bGUgdGhlIGxpbnV4IGtlcm5lbC4gVGhlcmUgbWF5IGJlIGEgYmV0dGVyIHdheQ0KDQpJdCBzZWVt cyB0aGF0IGJsdWV0b290aCBzdGFjayB3aXRoaW4ga2VybmVsIHNlcGFyYXRlZCBpbnRvIHR3byBj bGFzc2VzOg0KMS4gSW5xdWlyeSBUeF9wb3dlci4NCjIuIEFkdmVydGlzZSBUeF9wb3dlci4NCg0K QW5kIHRoZSBkZWZhdWx0IHZhbHVlIGlzIDAuDQoNCllvdSBjYW4gdGFrZSBhIGxvb2sgYXQ6DQoq aGNpX2FsbG9jX2Rldih2b2lkKcKgIGZ1bmN0aW9uIHdpdGhpbiBuZXQvYmx1ZXRvb3RoL2hjaV9j b3JlLmMgZmlsZQ0KaGRldi0+aW5xX3R4X3Bvd2VyID0gSENJX1RYX1BPV0VSX0lOVkFMSUQ7IGFk dl90eF9wb3dlciA9DQpoZGV2LT5IQ0lfVFhfUE9XRVJfSU5WQUxJRDsNCg0KSG9wZSBpdCB3aWxs IGJlIGhlbHBmdWwgdG8geW91Lg0KDQpSZWdhcmRzLA0KSGlldS4NCg0KT24gV2VkLCBPY3QgMTIs IDIwMTYgYXQgMTI6NTIgQU0sIFN0ZXZlIEdsYWRkZW4gPHN0ZXZlQG1pY2hpZ2FuYnJvYWRiYW5k LmNvbT4gd3JvdGU6DQo+IFRoYW5rcyEhDQo+IFllcyBpdCdzIG5pY2UgdG8gaGVhciBmcm9tIHNv bWVib2R5Lg0KPg0KPiBJJ3ZlIGJlZW4gc2NvdXJpbmcgdGhlIHdlYiBzbyBmYXIgdG8gbm8gYXZh aWwgb24gd2hhdCBJIHRoaW5rIHNob3VsZCBiZSBhIHNpbXBsZSBhbmQgYWNjZXNzaWJsZSBzZXR0 aW5nLg0KPiBJdCdzIG9idmlvdXMgZnJvbSB0aGUgc3BlY3MgdGhhdCBtb3N0IGNoaXBzIGhhdmUg YSBwcm9ncmFtbWFibGUgKHNldHRhYmxlKSB0cmFuc21pdHRlciBwb3dlci4NCj4gQW5kIHdpdGgg YmVhY29ucyBpdCBpcyB2ZXJ5IGltcG9ydGFudCBhbmQgZXhwZWN0ZWQgdGhhdCBvbmUgc2hvdWxk IGJlIGFibGUgdG8gYWRqdXN0IHRoZSB0cmFuc21pdHRlciBsZXZlbC4NCj4gQWxsIG9mIHRoZSBz ZXJpYWwgYm9hcmRzIGRvIGl0IHdpdGggc2ltcGxlIEFUIGNvbW1hbmRzLg0KPg0KPiBJIGp1c3Qg ZG9uJ3QgZ2V0IHdoeSB0aGVyZSdzIG5vIGRvY3VtZW50YXRpb24gb24gaG93IHRvIGRvIGl0IHdp dGggYSBVU0IgZGV2aWNlISENCj4NCj4gVGhleSBzZWxsIGNsYXNzIDEgYmx1ZXRvb3RoIHVzYiBk b25nbGVzIGZvciBhcHBsaWNhdGlvbnMgdGhhdCByZXF1aXJlIG1vcmUgcmFuZ2UgKDEwMG0pIGlz IHF1b3RlZCBvbiBtb3N0IGNsYXNzIDEgcHJvZHVjdHMuDQo+DQo+IEknZCBleHBlY3QgdGhlcmUg c2hvdWxkIGJlIGEgc3RyYWlnaHQgZm9yd2FyZCBlYXN5IHRvIHNldCBwb3dlciBpbiBMRSBtb2Rl IHRvIGdldCBtb3JlIHJhbmdlIG9yIHNhdmUgcG93ZXIgYW5kIGxpbWl0IHJhbmdlIHdoZW4gd2Fu dGVkLg0KPg0KPiBCdXQgSSdtIHJlYWxseSBub3QgZmluZGluZyB0aGlzIGluZm9ybWF0aW9uIG91 dCB0aGVyZSENCj4NCj4gSSBkb247dCB1bmRlcnN0YW5kIHdoYXQgSSBhbSBkb2luZyB3cm9uZyBv ciB3aHkgdGhpcyBpcyBzbyBkaWZmaWN1bHQNCj4gdG8gZmluZC7CoCA6KQ0KPg0KPg0KPg0KPg0K Pg0KPg0KPg0KPiBPbiAxMSBPY3RvYmVyIDIwMTYgYXQgMTc6NTAsIFN0ZXZlIEdsYWRkZW4gPHN0 ZXZlQG1pY2hpZ2FuYnJvYWRiYW5kLmNvbT4gd3JvdGU6DQo+PiBJcyB0aGlzIHRoaXMgbGlzdCBq dXN0IHNvbWUga2luZCBvZiBhdXRvbWF0ZWQgcGF0Y2ggYW5ub3VuY2VtZW50IGxvZyBhbmQgbm90 IGFuIGFjdHVhbCBtYWlsaW5nIGxpc3Qgd2hlcmUgeW91IGNhbiBhc2sgYW55dGhpbmcgYWJvdXQg Ymx1ZXRvb3RoLg0KPj4gVGhpcyBpcyBhbGwgSSBoYXZlIHNlZW4gaGVyZSBmb3IgdGhlIHBhc3Qg ZmV3IGRheXM/DQo+PiBXaGVyZSBjYW4gSSBhc2sgYW4gYWN0dWFsIHF1ZXN0aW9uIGFib3V0IGJs dWV0b290aD8NCj4NCj4gVGhlcmUgYXJlIHNvbWUgcmVhbCBodW1hbnMgaGVyZSB0b28hwqAgOi0p DQo+DQo+IElmIHlvdSBsb29rIGJhY2sgb24gdGhlIGFyY2hpdmUgb2YgdGhpcyBsaXN0IHlvdSB3 aWxsIHNlZSBhIG1peHR1cmUgb2YNCj4gcXVlc3Rpb25zIGFuZCBwYXRjaCByZXF1ZXN0cy4NCj4g bWFyYy5pbmZvLz9sPWxpbnV4LWJsdWV0b290aA0KPg0KPiBJJ3ZlIGtlcHQgcXVpZXQgYXMgSSdt IG5vdCBzdXJlIEkgY2FuIGFuc3dlciBxdWVzdGlvbnMuIFRvIG9mZmVyIHNvbWUNCj4gc2hhcmVk IGV4cGVyaWVuY2UsIEkgY2FuIHNheSB0aGF0IEkndmUgYmVlbiBleHBlcmltZW50aW5nIHdpdGgN Cj4gKEVkZHlzdG9uZSkgYmVhY29ucyBvbiBMaW51eCBzaW5nbGUgYm9hcmQgY29tcHV0ZXJzIGFj Y2Vzc2luZyBCbHVlWg0KPiB0aHJvdWdoIHRoZSBEQnVzIEFQSSB1c2luZyBQeXRob24uIEkgYWxz byBoYXZlIG5vdCBmb3VuZCBhIHdheSB0bw0KPiBjaGFuZ2UgdGhlIHBvd2VyIGxldmVsIG9mIGFk dmVydGlzZW1lbnRzIGVpdGhlci4gRm9yIHdoYXQgSSdtIGRvaW5nLA0KPiBqdXN0IG1ha2luZyBz dXJlIHRoZSBUWCBwb3dlciBpbiB0aGUgRWRkeXN0b25lIGFkdmVydCBtYXRjaGVzIHdoYXQgdGhl DQo+IGRvbmdsZSBpcyBhY3R1YWxseSBicm9hZGNhc3RpbmcgaGFzIGJlZW4gZ29vZCBlbm91Z2gu DQo+DQo+IFNvcnJ5IEkgY291bGRuJ3QgYmUgb2YgbW9yZSBoZWxwLg0KPg0KPiBSZWdhcmRzLA0K PiBCYXJyeQ0KPg0KPj4NCj4+DQo+Pg0KPj4NCj4+IFN0ZXZlIEdsYWRkZW4NCj4+DQo+PiBNaWNo aWdhbiBCcm9hZGJhbmQgU3lzdGVtcw0KPj4gQ29ubmVjdGluZyBZb3VyIEJ1c2luZXNzIQ0KPj4N Cj4+DQo+Pg0KPj4gKzEgNzM0LjUyNy43MTUwIERpcmVjdA0KPj4gKzEgMjQ4LjMyNy40Mzg5IEZh eA0KPj4gc3RldmVAbWljaGlnYW5icm9hZGJhbmQuY29tDQo+PiB3d3cubWljaGlnYW5icm9hZGJh bmQuY29tDQo+Pg0KPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0K Pj4gRnJvbTogU3RldmUgR2xhZGRlbg0KPj4gU2VudDogU3VuZGF5LCBPY3RvYmVyIDA5LCAyMDE2 IDEyOjExIFBNDQo+PiBUbzogbGludXgtYmx1ZXRvb3RoQHZnZXIua2VybmVsLm9yZw0KPj4gU3Vi amVjdDogSG93IGNhbiB5b3Ugc2V0IFRyYW5zbWl0IHBvd2VyIGxldmVsIGluIEJsdWV0b290aCBM RSBtb2RlIGZvciBhbiBMRSBiZWFjb24/DQo+Pg0KPj4gSGksDQo+PiBNeSBuYW1lIGlzIFN0ZXZl IGFuZCBJIGFtIGxvY2F0ZWQgaW4gQW5uIEFyYm9yIE1pY2hpZ2FuIFVTQS4NCj4+DQo+PiBJIGFt IG5ld8KgIGJsdWV0b290aCBMRSBhbmQgbGF0ZWx5IGFtIG9ic2Vzc2VkIHdpdGggQmx1ZXRvb3Ro IExFIGJlYWNvbnMgYW5kIHRyeWluZyB0aGVtIG91dC4NCj4+DQo+PiBJIGhhdmUgcmVhZCBhcnRp Y2xlIGFmdGVyIGFydGljbGUgYW5kIHBhZ2UgYWZ0ZXIgcGFnZSBhYm91dCBob3cNCj4+IHBlb3Bs ZSBoYXZlIHNldHVwIHVwIGJlYWNvbnMgd2l0aCBVU0IgQlQgNC4wIGludGVyZmFjZXMgYXMgd2Vs bCBhcyBzZXJpYWwgYmx1ZXRvb3RoIGJvYXJkcy4NCj4+DQo+PiBJIGFtIGN1cnJlbnRseSBleHBl cmltZW50aW5nIHdpdGggYSBiZWFjb24gcnVubmluZyBvbiBhIFJhc3BiZXJyeSBQaS1CIGFuZCB1 c2luZyBhbiBleHRlcm5hbCBVU0IgQmx1ZXRvb3RoIDQuMCBjbGFzcyAxIGRvbmdsZS4NCj4+DQo+ PiBNeSBmcnVzdHJhdGlvbiBpcyB0aGF0IEkgaGF2ZSBub3QgYmVlbiBhYmxlIHRvIGZpbmQgYW55 IHVzZWZ1bA0KPj4gaW5mb3JtYXRpb24gaW4gaG93IHRvIGNoYW5nZSB0aGUgVHJhbnNtaXR0ZXIg cG93ZXIgbGV2ZWwgd2hlbiBpbiBMRSBtb2RlLg0KPj4NCj4+IFRoZSBkb25nbGUgYXBwZWFycyB0 byBiZSB3b3JraW5nIGF0IGRlZmF1bHQgbGV2ZWwgYmVsb3cgemVybyBkYm0uDQo+Pg0KPj4gVGhl IHdob2xlIHBvaW50IG9mIGJ1aWxkaW5nIHlvdXIgb3duIGJlYWNvbiB0aGlzIHdheSBpcyB0byBi ZSBhYmxlIHRvDQo+PiBjdXN0b21pemUgaXQgYW5kIHNldHRpbmcgdGhlIHBvd2VyIGxldmVsIGlz IGFuIGltcG9ydGFudCBrZXkgaXRlbSB0aGF0IHNob3VsZCBiZSBlYXNpbHkgYWNjZXNzaWJsZSB5 ZXQgSSBmaW5kIHRoYXQgTk9CT0RZIGV2ZXIgZXZlbiBtZW50aW9ucyBpdCBsZXQgYWxvbmUgZG8g dGhleSBleHBsYWluIG9yIHByb3ZpZGUgYSB3YXkgdG8gc2V0IHRoZSBwb3dlci4NCj4+DQo+Pg0K Pj4gRXZlcnkgdGV4dCB0aGF0IEkgaGF2ZSBmb3VuZCB0aGF0IGRldGFpbHMgYmVhY29uIHNldHVw cyBmcm9tIGNvbW1hbmQgbGluZSBuZXZlciBib3RoZXIgdG8gbWVudGlvbiBzZXR0aW5nIGJlYWNv biBUWCBwb3dlci4NCj4+DQo+PiBBbGwgdGhlIHBhZ2VzIEkgaGF2ZSBmb3VuZCBzZWVtIHRvIGNv cHkgZWFjaCBvdGhlciBhbmQgcmVwZWF0IHRoZQ0KPj4gc2FtZSBpbmZvcm1hdGlvbiBvdmVyICYg b3ZlciBCdXQgbmV2ZXIgZ2V0IGFyb3VuZCB0byBldmVuIG1lbnRpb25pbmcgb3IgZGlzY3Vzc2lu ZyBzZXR0aW5nIHRoZSBwb3dlciBvdXRwdXQgbGV2ZWwgb2YgdGhlIGJsdXRvb3RoIGRvbmdsZS4N Cj4+DQo+PiBzdWRvIGhjaXRvb2wgLWkgaGNpMCBjbWQgMHgwOCAweDAwMDggMUUgMDIgMDEgMUEg MUEgRkYgNEMgMDAgMDIgMTUgWw0KPj4gOTIgNzcgODMgMEEgQjIgRUIgNDkgMEYgQTEgREQgN0Yg RTMgOEMgNDkgMkUgREUgXSBbIDAwIDAwIF0gWyAwMCAwMCBdDQo+PiBDNSAwMA0KPj4NCj4+IFRo ZSBieXRlIGp1c3QgbGVmdCBvZiB0aGUgbGFzdCBvbmUgaXMgdGhlICJyZXBvcnRlZCIgVFggbGV2 ZWwgdGhhdCB5b3UgYXJlIHRyYW5zbWl0dGluZyBhdC4NCj4+IFdoaWNoIG1lYW5zIHlvdSdyZSBz dXBwb3NlZCB0byBrbm93IChvciBndWVzcz8pIHdoYXQgZGJtIGxldmVsIHlvdSBhcmUgYWN0dWFs bHkgdHJhbnNtaXR0aW5nIGF0IGFuZCBzZXQgaXQgaGVyZSB0byBkaXNwbGF5IHRvIHRoZSB3b3Js ZCB3aGF0IHlvdXIgdHJhbnNtaXR0ZXIgbGV2ZWwgaXMgc2V0IHRvIHNvIHRoZXkgY2FuIHJhbmdl IChndWVzcyBvciBlc3RpbWF0ZSBkaXN0YW5jZSBmcm9tIFRYKS4NCj4+IFRoaXMgdmFsdWUgZG9l cyBub3QgaW5mbHVlbmNlIG9yIHJlZmxlY3QgYWN0dWFsIHRyYW5zbWl0IHBvd2VyLg0KPj4NCj4+ IFBsZWFzZSBoZWxwISENCj4+DQo+PiBDb3VsZCB1c2UgYW55IHBvaW50ZXJzLg0KPj4NCj4+IEkn bSBhIGhhcmR3YXJlIGd1eSBhcyB3ZWxsIHNvIG5vdCB2ZXJ5IGV4cGVyaWVuY2VkIGluIHNvZnR3 YXJlL3Byb2dyYW1taW5nIGJ1dCBJJ20gd2lsbGluZyB0byB0cnkgYW55dGhpbmcgdG8gZ2V0IGNv bnRyb2wgb2YgdGhpcy4NCj4+DQo+PiBCZWVuIGF0IHRoaXMgZm9yIG92ZXIgYSB3ZWVrIGFuZCBo YXZlIHNvbWUgd29ya2luZyBiZWFjb25zIGJ1dCBubyBjb250cm9sIG9mIHRyYW5zbWl0IHBvd2Vy IGxldmVsLg0KPj4NCj4+IEFtIHVzaW5nIFRyZW5kbmV0IFVTQiBkb25nbGVzIHdoaWNoIGFwcGVh ciB0byB1c2UgYSBDYW1icmlkZ2UgQ2hpcC7CoCBCdXQgSSdtIG5vdCBleGFjdGx5IHN1cmUgd2hp Y2ggY2hpcC4NCj4+DQo+Pg0KPj4gOn4jIGxzdXNiDQo+PiBCdXMgMDAxIERldmljZSAwMDc6IElE IDBhMTI6MDAwMSBDYW1icmlkZ2UgU2lsaWNvbiBSYWRpbywgTHRkDQo+PiBCbHVldG9vdGggRG9u Z2xlIChIQ0kgbW9kZSkNCj4+DQo+Pg0KPj4gcm9vdEByYXNwYmVycnlwaTp+IyBoY2ljb25maWcg aGNpMA0KPj4gaGNpMDrCoCDCoFR5cGU6IEJSL0VEUsKgIEJ1czogVVNCDQo+PsKgIMKgIMKgIMKg IMKgQkQgQWRkcmVzczogMDA6MTU6ODM6RUE6MEE6QjnCoCBBQ0wgTVRVOiAzMTA6MTDCoCBTQ08g TVRVOiA2NDo4DQo+PsKgIMKgIMKgIMKgIMKgVVAgUlVOTklORw0KPj7CoCDCoCDCoCDCoCDCoFJY IGJ5dGVzOjc4MCBhY2w6MCBzY286MCBldmVudHM6NTAgZXJyb3JzOjANCj4+wqAgwqAgwqAgwqAg wqBUWCBieXRlczoxMTEwIGFjbDowIHNjbzowIGNvbW1hbmRzOjUwIGVycm9yczowDQo+Pg0KPj4N Cj4+DQo+Pg0KPj4NCj4+DQo+Pg0KPj4NCj4+DQo+Pg0KPj4NCj4+DQo+Pg0KPj4NCj4+IC0tDQo+ PiBUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJzY3Jp YmUNCj4+IGxpbnV4LWJsdWV0b290aCIgaW4gdGhlIGJvZHkgb2YgYSBtZXNzYWdlIHRvDQo+PiBt YWpvcmRvbW9Admdlci5rZXJuZWwub3JnIE1vcmUgbWFqb3Jkb21vIGluZm8gYXQNCj4+IGh0dHA6 Ly92Z2VyLmtlcm5lbC5vcmcvbWFqb3Jkb21vLWluZm8uaHRtbA0KPiAtLQ0KPiBUbyB1bnN1YnNj cmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUNCj4gbGludXgt Ymx1ZXRvb3RoIiBpbiB0aGUgYm9keSBvZiBhIG1lc3NhZ2UgdG8gbWFqb3Jkb21vQHZnZXIua2Vy bmVsLm9yZw0KPiBNb3JlIG1ham9yZG9tbyBpbmZvIGF0wqAgaHR0cDovL3ZnZXIua2VybmVsLm9y Zy9tYWpvcmRvbW8taW5mby5odG1sDQoNCg0KDQotLQ0KLS0tLSBIaWV1IExlIC0tLQ0KDQoNCg0K DQotLSANCg0KSm9zZXBoIFNoeWgtSW4gSHdhbmcNCkVtYWlsOiBqb3NlcGhzaWhAZ29vZ2xlLmNv bQ0KDQo= ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: How can you set Transmit power level in Bluetooth LE mode for an LE beacon? 2016-10-16 21:56 ` Steve Gladden @ 2016-10-16 22:48 ` Jason Anderssen 2016-10-17 4:15 ` Steve Gladden [not found] ` <E870213FE4F9C248AE722569E8374C6A386A32B414@X2.michiganbb.local> 0 siblings, 2 replies; 13+ messages in thread From: Jason Anderssen @ 2016-10-16 22:48 UTC (permalink / raw) To: Steve Gladden Cc: Joseph Hwang, Hieu Le, Barry Byford, linux-bluetooth@vger.kernel.org Hi Steve, I have been reading and watching your emails, and have not replied as I probably don’t have any answers, but my guess is as follows : Most people, myself included, are using Linux and hardware like Raspberry pi to pick up beacons, not actually be a beacon, I know you can create a beacon with linux, but it is not really the main focus for a lot of people. The hardware I use for BLE advertising completely lets me and others to program the power level, which then is received from the Raspberry pi or like hardware, so I don’t have your issue or frustration. So my summary is: you maybe a minority in your work :-) Nothing wrong with that, but it does mean extra development and research on your behalf I would say. Anyway, I hear your frustration, and I add no value to your question, hopefully some insight as how I see things fit in life and might explain your current situation. Remember this is simply my opinion, and is probably wrong too :) Cheers Jason > On 17 Oct 2016, at 7:56 AM, Steve Gladden <steve@michiganbroadband.com> wrote: > > Ok, this is getting really frustrating. > Why would something so simple like this be so difficult? > > Am I really the only sheep out here that has any interest whatsoever in the past 5 years on how to actually set LE transmit power on a USB device? > Do I just not get it? > Really I don’t get it. > > A really simple task and nobody out here either knows or has any interest in doing it. > > My question is not even technical at all. If I actually asked something technical out here would would happen? > > No offense to anyone out here just to myself really but what gives? > > How could people working with this stuff NOT be interested in simply controlling the TX power output versus just living with some UNKNOWN DEFAULT that just sorta works if you’re happy with only 20 feet of range although the chip can put out +10dbm and go further > Or set it way back to -40dbm and get jstu a few feet and years of battery life. > > How the actual F- are people NOT interested in this and talking about it and working with it? ☺ > > All I have found on bccmd is a PDF document from 2005 that predates ANY kind of BTLE stuff. > > And that’s just for the CSR chipsets the ONE that I could find documentation on. > > What about all the others? > > What gives here man? > > Am I completely in the wrong place to be asking about this? > > I don’t mean any disrespect, really I don’t! > > But where in the world do I go to get this basic information? > > And why does nobody care of have any hands-on experience here and/or interest? > > Thanks!! > > Steve > > > > > > > > > > > > > > Tried that of course already days ago. > As well as anything else a simple google search turns up. > > To set Max tx power: > sudo bccmd psset -s 0x0000 0x0017 10 > To set default tx power: > sudo bccmd psset -s 0x0000 0x002d 10 > > It eats both of those commands and does not complain no errors but also no change in TX power output. > I’m watching the beacons on a receiver and a spectrum analyser. > > If I issue: ~# hciconfig hci0 inqtpl > hci0: Type: BR/EDR Bus: USB > BD Address: 00:15:83:EA:0A:B9 ACL MTU: 310:10 SCO MTU: 64:8 > Inquiry transmit power level: 4 > > Always reads back that “4” > > Issuing either: > > # bccmd warmreset > -or > # bccmd coldreset > > results in transmitter off and have to do: > > hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 E2 0A 39 F4 73 F5 4B C4 A1 2F 01 73 45 27 71 50 0A 28 0A 28 01 FF > -and > ~# hciconfig hci0 leadv3 > > To get it transmitting again (at the same non changed level. > > And > > ~# hciconfig hci0 inqtpl > > hci0: Type: BR/EDR Bus: USB > BD Address: 00:15:83:EA:0A:B9 ACL MTU: 310:10 SCO MTU: 64:8 > Inquiry transmit power level: 4 > > Always shows “4” > > On top of everything I have stated and tried here.. > I don’t think that setting (if it even worked) has any relation to LE GFSK advertising mode. > > Pretty sure it does not. > That (if it worked) sets power on Basic Rate and EDR as seen in the result “hci0: Type: BR/EDR Bus: USB” when issuing the hciconfig hci0 inqtpl command. > > > > > > > > > > > > > > > Steve Gladden > > Michigan Broadband Systems > Connecting Your Business! > > > > +1 734.527.7150 Direct > +1 248.327.4389 Fax > steve@michiganbroadband.com > www.michiganbroadband.com > > From: Joseph Hwang [mailto:josephsih@google.com] > Sent: Wednesday, October 12, 2016 11:55 AM > To: Steve Gladden > Cc: Hieu Le; Barry Byford; linux-bluetooth@vger.kernel.org > Subject: Re: How can you set Transmit power level in Bluetooth LE mode for an LE beacon? > > Hi Steve: > > Maybe you can try CSR's command line utility, bccmd. The system control command Max_Tx_Power and Default_Tx_Power allow you to set tx power. > > Good luck! > > Joseph > > > On Wed, Oct 12, 2016 at 11:33 PM, Steve Gladden <steve@michiganbroadband.com> wrote: > Thanks, > I was hoping there was an easier way and somehow at the command line but I'll do what I need to do and figure it out somehow. > I usually end up on 10 other rabbit trails when it comes to having to recompile anything because it usually just fails for me and I'm > not yet well versed in troubleshooting when things won't compile successfully aside from what I can easily google. > > I also think it's a little more complicated than just setting the power. > I have gathered at least wit hthe CSR chipset that there are at least 3 separate power settings that can be adjusted and not any overall power setting. > So the various modulation modes (including GFSK -LE advertising-) need to be addressed and set individually. > There's not a master transmit level that sets them all. > > > Steve Gladden > > Michigan Broadband Systems > Connecting Your Business! > > > > +1 734.527.7150 Direct > +1 248.327.4389 Fax > steve@michiganbroadband.com > www.michiganbroadband.com > > -----Original Message----- > From: Hieu Le [mailto:hieu.le@veriksystems.com] > Sent: Wednesday, October 12, 2016 1:00 AM > To: Steve Gladden > Cc: Barry Byford; linux-bluetooth@vger.kernel.org > Subject: Re: How can you set Transmit power level in Bluetooth LE mode for an LE beacon? > > Hi, > > In my opinion, the only way I can find to increase the tx_power is to recompile the linux kernel. There may be a better way > > It seems that bluetooth stack within kernel separated into two classes: > 1. Inquiry Tx_power. > 2. Advertise Tx_power. > > And the default value is 0. > > You can take a look at: > *hci_alloc_dev(void) function within net/bluetooth/hci_core.c file > hdev->inq_tx_power = HCI_TX_POWER_INVALID; adv_tx_power = > hdev->HCI_TX_POWER_INVALID; > > Hope it will be helpful to you. > > Regards, > Hieu. > > On Wed, Oct 12, 2016 at 12:52 AM, Steve Gladden <steve@michiganbroadband.com> wrote: >> Thanks!! >> Yes it's nice to hear from somebody. >> >> I've been scouring the web so far to no avail on what I think should be a simple and accessible setting. >> It's obvious from the specs that most chips have a programmable (settable) transmitter power. >> And with beacons it is very important and expected that one should be able to adjust the transmitter level. >> All of the serial boards do it with simple AT commands. >> >> I just don't get why there's no documentation on how to do it with a USB device!! >> >> They sell class 1 bluetooth usb dongles for applications that require more range (100m) is quoted on most class 1 products. >> >> I'd expect there should be a straight forward easy to set power in LE mode to get more range or save power and limit range when wanted. >> >> But I'm really not finding this information out there! >> >> I don;t understand what I am doing wrong or why this is so difficult >> to find. :) >> >> >> >> >> >> >> >> On 11 October 2016 at 17:50, Steve Gladden <steve@michiganbroadband.com> wrote: >>> Is this this list just some kind of automated patch announcement log and not an actual mailing list where you can ask anything about bluetooth. >>> This is all I have seen here for the past few days? >>> Where can I ask an actual question about bluetooth? >> >> There are some real humans here too! :-) >> >> If you look back on the archive of this list you will see a mixture of >> questions and patch requests. >> marc.info/?l=linux-bluetooth >> >> I've kept quiet as I'm not sure I can answer questions. To offer some >> shared experience, I can say that I've been experimenting with >> (Eddystone) beacons on Linux single board computers accessing BlueZ >> through the DBus API using Python. I also have not found a way to >> change the power level of advertisements either. For what I'm doing, >> just making sure the TX power in the Eddystone advert matches what the >> dongle is actually broadcasting has been good enough. >> >> Sorry I couldn't be of more help. >> >> Regards, >> Barry >> >>> >>> >>> >>> >>> Steve Gladden >>> >>> Michigan Broadband Systems >>> Connecting Your Business! >>> >>> >>> >>> +1 734.527.7150 Direct >>> +1 248.327.4389 Fax >>> steve@michiganbroadband.com >>> www.michiganbroadband.com >>> >>> ________________________________________ >>> From: Steve Gladden >>> Sent: Sunday, October 09, 2016 12:11 PM >>> To: linux-bluetooth@vger.kernel.org >>> Subject: How can you set Transmit power level in Bluetooth LE mode for an LE beacon? >>> >>> Hi, >>> My name is Steve and I am located in Ann Arbor Michigan USA. >>> >>> I am new bluetooth LE and lately am obsessed with Bluetooth LE beacons and trying them out. >>> >>> I have read article after article and page after page about how >>> people have setup up beacons with USB BT 4.0 interfaces as well as serial bluetooth boards. >>> >>> I am currently experimenting with a beacon running on a Raspberry Pi-B and using an external USB Bluetooth 4.0 class 1 dongle. >>> >>> My frustration is that I have not been able to find any useful >>> information in how to change the Transmitter power level when in LE mode. >>> >>> The dongle appears to be working at default level below zero dbm. >>> >>> The whole point of building your own beacon this way is to be able to >>> customize it and setting the power level is an important key item that should be easily accessible yet I find that NOBODY ever even mentions it let alone do they explain or provide a way to set the power. >>> >>> >>> Every text that I have found that details beacon setups from command line never bother to mention setting beacon TX power. >>> >>> All the pages I have found seem to copy each other and repeat the >>> same information over & over But never get around to even mentioning or discussing setting the power output level of the blutooth dongle. >>> >>> sudo hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 [ >>> 92 77 83 0A B2 EB 49 0F A1 DD 7F E3 8C 49 2E DE ] [ 00 00 ] [ 00 00 ] >>> C5 00 >>> >>> The byte just left of the last one is the "reported" TX level that you are transmitting at. >>> Which means you're supposed to know (or guess?) what dbm level you are actually transmitting at and set it here to display to the world what your transmitter level is set to so they can range (guess or estimate distance from TX). >>> This value does not influence or reflect actual transmit power. >>> >>> Please help!! >>> >>> Could use any pointers. >>> >>> I'm a hardware guy as well so not very experienced in software/programming but I'm willing to try anything to get control of this. >>> >>> Been at this for over a week and have some working beacons but no control of transmit power level. >>> >>> Am using Trendnet USB dongles which appear to use a Cambridge Chip. But I'm not exactly sure which chip. >>> >>> >>> :~# lsusb >>> Bus 001 Device 007: ID 0a12:0001 Cambridge Silicon Radio, Ltd >>> Bluetooth Dongle (HCI mode) >>> >>> >>> root@raspberrypi:~# hciconfig hci0 >>> hci0: Type: BR/EDR Bus: USB >>> BD Address: 00:15:83:EA:0A:B9 ACL MTU: 310:10 SCO MTU: 64:8 >>> UP RUNNING >>> RX bytes:780 acl:0 sco:0 events:50 errors:0 >>> TX bytes:1110 acl:0 sco:0 commands:50 errors:0 >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> -- >>> To unsubscribe from this list: send the line "unsubscribe >>> linux-bluetooth" in the body of a message to >>> majordomo@vger.kernel.org More majordomo info at >>> http://vger.kernel.org/majordomo-info.html >> -- >> To unsubscribe from this list: send the line "unsubscribe >> linux-bluetooth" in the body of a message to majordomo@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html > > > > -- > ---- Hieu Le --- > > > > > -- > > Joseph Shyh-In Hwang > Email: josephsih@google.com > > N���r�y���b�X�ǧv�^�){.n�+�{�n[�-�)���w*\x1fjg�\x1e��ݢj/���z�ޖ��2�ޙ���&�)ߡ�a��\x7f�\x1e�G��h�\x0f�j:+v�w�٥ ^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: How can you set Transmit power level in Bluetooth LE mode for an LE beacon? 2016-10-16 22:48 ` Jason Anderssen @ 2016-10-17 4:15 ` Steve Gladden 2016-10-19 7:22 ` Andrei Emeltchenko [not found] ` <E870213FE4F9C248AE722569E8374C6A386A32B414@X2.michiganbb.local> 1 sibling, 1 reply; 13+ messages in thread From: Steve Gladden @ 2016-10-17 4:15 UTC (permalink / raw) To: Jason Anderssen Cc: Joseph Hwang, Hieu Le, Barry Byford, linux-bluetooth@vger.kernel.org SGkgSmFzb24gYW5kIHRoYW5rcyENCg0KTm8sIGZ1bGx5IGFncmVlIHdpdGggd2hhdCB5b3Ugc2F5 Lg0KDQpJJ20gd2lsbGluZyB0byBkbyB0aGUgZXh0cmEgcmVzZWFyY2guDQpqdXN0IGEgbGl0dGxl IGJ1bW1lZCB0aGF0IHRoZSBpbmZvcm1hdGlvbiBJIHNlZWsgc2VlbWluZ2x5IGp1c3QgaXMgbm90 IHRoZXJlIGFueXdoZXJlLg0KDQpBbmQgSSBhbHNvIHdvdWxkIHRoaW5nIHRoYXQgbWFueSBvdGhl ciBhcHBsaWNhdGlvbnMgKGFuZCBwZW9wbGUpIHdvdWxkIHdhbnQgdG8gYmUgYWJsZSB0byBhZGp1 c3QgdGhlIHBvd2VyIGZvciBvdGhlciB1c2VzIGFzIHdlbGwuDQpFc3BlY2lhbGx5IHRvIGdldCBm dWxsIHJhbmdlIGF2YWlsYWJsZSB3aXRoIGZ1bGwgVFggb3V0cHV0IHBvd2VyIHZlcnN1cyB0aGUg InVua25vd24gZGVmYXVsdCIuICBPciBmaXJtd2FyZSBzZXQgdW5rbm93biBkZWZhdWx0IGV0Yy4N Cg0KSSB0aG91Z2h0IHRoZXJlJ2QgYmUgbW9yZSBwZW9wbGUgb3V0IGhlcmUgdGhhdCB3YW50ZWQg YW5kIGtuZXcgaG93IHRvIHNldC9jaGFuZ2UgdHJhbnNtaXQgcG93ZXIgbGV2ZWwuDQoNClRoYW5r cyBmb3IgcmVwbHlpbmcgYW5kIGl0IHdhcyBlbmpveWFibGUgdG8gaGVhciBmcm9tIHlvdSENCg0K VGFrZSBjYXJlIQ0KDQoNClN0ZXZlIEdsYWRkZW4NCg0KTWljaGlnYW4gQnJvYWRiYW5kIFN5c3Rl bXMNCkNvbm5lY3RpbmcgWW91ciBCdXNpbmVzcyENCg0KDQoNCisxIDczNC41MjcuNzE1MCBEaXJl Y3QNCisxIDI0OC4zMjcuNDM4OSBGYXgNCnN0ZXZlQG1pY2hpZ2FuYnJvYWRiYW5kLmNvbQ0Kd3d3 Lm1pY2hpZ2FuYnJvYWRiYW5kLmNvbQ0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJv bTogSmFzb24gQW5kZXJzc2VuIFttYWlsdG86akBrZXlpbml0aWF0aXZlLmNvbV0NClNlbnQ6IFN1 bmRheSwgT2N0b2JlciAxNiwgMjAxNiA2OjQ5IFBNDQpUbzogU3RldmUgR2xhZGRlbg0KQ2M6IEpv c2VwaCBId2FuZzsgSGlldSBMZTsgQmFycnkgQnlmb3JkOyBsaW51eC1ibHVldG9vdGhAdmdlci5r ZXJuZWwub3JnDQpTdWJqZWN0OiBSZTogSG93IGNhbiB5b3Ugc2V0IFRyYW5zbWl0IHBvd2VyIGxl dmVsIGluIEJsdWV0b290aCBMRSBtb2RlIGZvciBhbiBMRSBiZWFjb24/DQoNCkhpIFN0ZXZlLA0K DQpJIGhhdmUgYmVlbiByZWFkaW5nIGFuZCB3YXRjaGluZyB5b3VyIGVtYWlscywgYW5kIGhhdmUg bm90IHJlcGxpZWQgYXMgSSBwcm9iYWJseSBkb27igJl0IGhhdmUgYW55IGFuc3dlcnMsIGJ1dCBt eSBndWVzcyBpcyBhcyBmb2xsb3dzIDoNCg0KTW9zdCBwZW9wbGUsIG15c2VsZiBpbmNsdWRlZCwg YXJlIHVzaW5nIExpbnV4IGFuZCBoYXJkd2FyZSBsaWtlIFJhc3BiZXJyeSBwaSB0byBwaWNrIHVw IGJlYWNvbnMsIG5vdCBhY3R1YWxseSBiZSBhIGJlYWNvbiwgSSBrbm93IHlvdSBjYW4gY3JlYXRl IGEgYmVhY29uIHdpdGggbGludXgsIGJ1dCBpdCBpcyBub3QgcmVhbGx5IHRoZSBtYWluIGZvY3Vz IGZvciBhIGxvdCBvZiBwZW9wbGUuDQpUaGUgaGFyZHdhcmUgSSB1c2UgZm9yIEJMRSBhZHZlcnRp c2luZyBjb21wbGV0ZWx5IGxldHMgbWUgYW5kIG90aGVycyB0byBwcm9ncmFtIHRoZSBwb3dlciBs ZXZlbCwgd2hpY2ggdGhlbiBpcyByZWNlaXZlZCBmcm9tIHRoZSBSYXNwYmVycnkgcGkgb3IgbGlr ZSBoYXJkd2FyZSwgc28gSSBkb27igJl0IGhhdmUgeW91ciBpc3N1ZSBvciBmcnVzdHJhdGlvbi4N Cg0KU28gbXkgc3VtbWFyeSBpczogeW91IG1heWJlIGEgbWlub3JpdHkgaW4geW91ciB3b3JrIDot KSAgTm90aGluZyB3cm9uZyB3aXRoIHRoYXQsIGJ1dCBpdCBkb2VzIG1lYW4gZXh0cmEgZGV2ZWxv cG1lbnQgYW5kIHJlc2VhcmNoIG9uIHlvdXIgYmVoYWxmIEkgd291bGQgc2F5Lg0KDQpBbnl3YXks IEkgaGVhciB5b3VyIGZydXN0cmF0aW9uLCBhbmQgSSBhZGQgbm8gdmFsdWUgdG8geW91ciBxdWVz dGlvbiwgaG9wZWZ1bGx5IHNvbWUgaW5zaWdodCBhcyBob3cgSSBzZWUgdGhpbmdzIGZpdCBpbiBs aWZlIGFuZCBtaWdodCBleHBsYWluIHlvdXIgY3VycmVudCBzaXR1YXRpb24uDQoNClJlbWVtYmVy IHRoaXMgaXMgc2ltcGx5IG15IG9waW5pb24sIGFuZCBpcyBwcm9iYWJseSB3cm9uZyB0b28gOikN Cg0KQ2hlZXJzDQpKYXNvbg0KDQo+IE9uIDE3IE9jdCAyMDE2LCBhdCA3OjU2IEFNLCBTdGV2ZSBH bGFkZGVuIDxzdGV2ZUBtaWNoaWdhbmJyb2FkYmFuZC5jb20+IHdyb3RlOg0KPg0KPiBPaywgdGhp cyBpcyBnZXR0aW5nIHJlYWxseSBmcnVzdHJhdGluZy4NCj4gV2h5IHdvdWxkIHNvbWV0aGluZyBz byBzaW1wbGUgbGlrZSB0aGlzIGJlIHNvIGRpZmZpY3VsdD8NCj4NCj4gQW0gSSByZWFsbHkgdGhl IG9ubHkgc2hlZXAgb3V0IGhlcmUgdGhhdCBoYXMgYW55IGludGVyZXN0IHdoYXRzb2V2ZXIgaW4g dGhlIHBhc3QgNSB5ZWFycyBvbiBob3cgdG8gYWN0dWFsbHkgc2V0IExFIHRyYW5zbWl0IHBvd2Vy IG9uIGEgVVNCIGRldmljZT8NCj4gRG8gSSBqdXN0IG5vdCBnZXQgaXQ/DQo+IFJlYWxseSBJIGRv buKAmXQgZ2V0IGl0Lg0KPg0KPiBBIHJlYWxseSBzaW1wbGUgdGFzayBhbmQgbm9ib2R5IG91dCBo ZXJlIGVpdGhlciBrbm93cyBvciBoYXMgYW55IGludGVyZXN0IGluIGRvaW5nIGl0Lg0KPg0KPiBN eSBxdWVzdGlvbiBpcyBub3QgZXZlbiB0ZWNobmljYWwgYXQgYWxsLiAgIElmIEkgYWN0dWFsbHkg YXNrZWQgc29tZXRoaW5nIHRlY2huaWNhbCBvdXQgaGVyZSB3b3VsZCB3b3VsZCBoYXBwZW4/DQo+ DQo+IE5vIG9mZmVuc2UgdG8gYW55b25lIG91dCBoZXJlIGp1c3QgdG8gbXlzZWxmIHJlYWxseSBi dXQgd2hhdCBnaXZlcz8NCj4NCj4gSG93IGNvdWxkIHBlb3BsZSB3b3JraW5nIHdpdGggdGhpcyBz dHVmZiBOT1QgYmUgaW50ZXJlc3RlZCBpbiBzaW1wbHkNCj4gY29udHJvbGxpbmcgdGhlIFRYIHBv d2VyIG91dHB1dCB2ZXJzdXMganVzdCBsaXZpbmcgd2l0aCBzb21lIFVOS05PV04gREVGQVVMVCB0 aGF0IGp1c3Qgc29ydGEgd29ya3MgaWYgeW914oCZcmUgaGFwcHkgd2l0aCBvbmx5IDIwIGZlZXQg b2YgcmFuZ2UgYWx0aG91Z2ggdGhlIGNoaXAgY2FuIHB1dCBvdXQgKzEwZGJtIGFuZCBnbyBmdXJ0 aGVyIE9yIHNldCBpdCB3YXkgYmFjayB0byAtNDBkYm0gYW5kIGdldCBqc3R1IGEgZmV3IGZlZXQg YW5kIHllYXJzIG9mIGJhdHRlcnkgbGlmZS4NCj4NCj4gSG93IHRoZSBhY3R1YWwgRi0gYXJlIHBl b3BsZSBOT1QgaW50ZXJlc3RlZCBpbiB0aGlzIGFuZCB0YWxraW5nIGFib3V0IGl0IGFuZCB3b3Jr aW5nIHdpdGggaXQ/ICAg4pi6DQo+DQo+IEFsbCBJIGhhdmUgZm91bmQgb24gYmNjbWQgaXMgYSBQ REYgZG9jdW1lbnQgZnJvbSAyMDA1IHRoYXQgcHJlZGF0ZXMgQU5ZIGtpbmQgb2YgQlRMRSBzdHVm Zi4NCj4NCj4gQW5kIHRoYXTigJlzIGp1c3QgZm9yIHRoZSBDU1IgY2hpcHNldHMgdGhlIE9ORSB0 aGF0IEkgY291bGQgZmluZCBkb2N1bWVudGF0aW9uIG9uLg0KPg0KPiBXaGF0IGFib3V0IGFsbCB0 aGUgb3RoZXJzPw0KPg0KPiBXaGF0IGdpdmVzIGhlcmUgbWFuPw0KPg0KPiBBbSBJIGNvbXBsZXRl bHkgaW4gdGhlIHdyb25nIHBsYWNlIHRvIGJlIGFza2luZyBhYm91dCB0aGlzPw0KPg0KPiBJIGRv buKAmXQgbWVhbiBhbnkgZGlzcmVzcGVjdCwgcmVhbGx5IEkgZG9u4oCZdCENCj4NCj4gQnV0IHdo ZXJlIGluIHRoZSB3b3JsZCBkbyBJIGdvIHRvIGdldCB0aGlzIGJhc2ljIGluZm9ybWF0aW9uPw0K Pg0KPiBBbmQgd2h5IGRvZXMgbm9ib2R5IGNhcmUgb2YgaGF2ZSBhbnkgaGFuZHMtb24gZXhwZXJp ZW5jZSBoZXJlIGFuZC9vciBpbnRlcmVzdD8NCj4NCj4gVGhhbmtzISENCj4NCj4gU3RldmUNCj4N Cj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4gVHJpZWQgdGhhdCBvZiBjb3Vy c2UgYWxyZWFkeSBkYXlzIGFnby4NCj4gQXMgd2VsbCBhcyBhbnl0aGluZyBlbHNlIGEgc2ltcGxl IGdvb2dsZSBzZWFyY2ggdHVybnMgdXAuDQo+DQo+IFRvIHNldCBNYXggdHggcG93ZXI6DQo+IHN1 ZG8gYmNjbWQgcHNzZXQgLXMgMHgwMDAwIDB4MDAxNyAxMA0KPiBUbyBzZXQgZGVmYXVsdCB0eCBw b3dlcjoNCj4gc3VkbyBiY2NtZCBwc3NldCAtcyAweDAwMDAgMHgwMDJkIDEwDQo+DQo+IEl0IGVh dHMgYm90aCBvZiB0aG9zZSBjb21tYW5kcyBhbmQgZG9lcyBub3QgY29tcGxhaW4gbm8gZXJyb3Jz IGJ1dCBhbHNvIG5vIGNoYW5nZSBpbiBUWCBwb3dlciBvdXRwdXQuDQo+IEnigJltIHdhdGNoaW5n IHRoZSBiZWFjb25zIG9uIGEgcmVjZWl2ZXIgYW5kIGEgc3BlY3RydW0gYW5hbHlzZXIuDQo+DQo+ IElmIEkgaXNzdWU6IH4jIGhjaWNvbmZpZyBoY2kwIGlucXRwbA0KPiBoY2kwOiAgIFR5cGU6IEJS L0VEUiAgQnVzOiBVU0INCj4gICAgICAgICBCRCBBZGRyZXNzOiAwMDoxNTo4MzpFQTowQTpCOSAg QUNMIE1UVTogMzEwOjEwICBTQ08gTVRVOiA2NDo4DQo+ICAgICAgICAgSW5xdWlyeSB0cmFuc21p dCBwb3dlciBsZXZlbDogNA0KPg0KPiBBbHdheXMgcmVhZHMgYmFjayB0aGF0IOKAnDTigJ0NCj4N Cj4gSXNzdWluZyBlaXRoZXI6DQo+DQo+ICMgYmNjbWQgd2FybXJlc2V0DQo+IC1vcg0KPiAjIGJj Y21kIGNvbGRyZXNldA0KPg0KPiByZXN1bHRzIGluIHRyYW5zbWl0dGVyIG9mZiBhbmQgaGF2ZSB0 byBkbzoNCj4NCj4gaGNpdG9vbCAtaSBoY2kwIGNtZCAweDA4IDB4MDAwOCAxRSAwMiAwMSAxQSAx QSBGRiA0QyAwMCAwMiAxNSBFMiAwQSAzOQ0KPiBGNCA3MyBGNSA0QiBDNCBBMSAyRiAwMSA3MyA0 NSAyNyA3MSA1MCAwQSAyOCAwQSAyOCAwMSBGRiAtYW5kIH4jDQo+IGhjaWNvbmZpZyBoY2kwIGxl YWR2Mw0KPg0KPiBUbyBnZXQgaXQgdHJhbnNtaXR0aW5nIGFnYWluIChhdCB0aGUgc2FtZSBub24g Y2hhbmdlZCBsZXZlbC4NCj4NCj4gQW5kDQo+DQo+IH4jIGhjaWNvbmZpZyBoY2kwIGlucXRwbA0K Pg0KPiBoY2kwOiAgIFR5cGU6IEJSL0VEUiAgQnVzOiBVU0INCj4gICAgICAgICBCRCBBZGRyZXNz OiAwMDoxNTo4MzpFQTowQTpCOSAgQUNMIE1UVTogMzEwOjEwICBTQ08gTVRVOiA2NDo4DQo+ICAg ICAgICAgSW5xdWlyeSB0cmFuc21pdCBwb3dlciBsZXZlbDogNA0KPg0KPiBBbHdheXMgc2hvd3Mg 4oCcNOKAnQ0KPg0KPiBPbiB0b3Agb2YgZXZlcnl0aGluZyBJIGhhdmUgc3RhdGVkIGFuZCB0cmll ZCBoZXJlLi4NCj4gSSBkb27igJl0IHRoaW5rIHRoYXQgc2V0dGluZyAoaWYgaXQgZXZlbiB3b3Jr ZWQpIGhhcyBhbnkgcmVsYXRpb24gdG8gTEUgR0ZTSyBhZHZlcnRpc2luZyBtb2RlLg0KPg0KPiBQ cmV0dHkgc3VyZSBpdCBkb2VzIG5vdC4NCj4gVGhhdCAoaWYgaXQgd29ya2VkKSBzZXRzIHBvd2Vy IG9uIEJhc2ljIFJhdGUgYW5kIEVEUiBhcyBzZWVuIGluIHRoZSByZXN1bHQg4oCcaGNpMDogICBU eXBlOiBCUi9FRFIgIEJ1czogVVNC4oCdIHdoZW4gaXNzdWluZyB0aGUgaGNpY29uZmlnIGhjaTAg aW5xdHBsIGNvbW1hbmQuDQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+DQo+ DQo+IFN0ZXZlIEdsYWRkZW4NCj4NCj4gTWljaGlnYW4gQnJvYWRiYW5kIFN5c3RlbXMNCj4gQ29u bmVjdGluZyBZb3VyIEJ1c2luZXNzIQ0KPg0KPg0KPg0KPiArMSA3MzQuNTI3LjcxNTAgRGlyZWN0 DQo+ICsxIDI0OC4zMjcuNDM4OSBGYXgNCj4gc3RldmVAbWljaGlnYW5icm9hZGJhbmQuY29tDQo+ IHd3dy5taWNoaWdhbmJyb2FkYmFuZC5jb20NCj4NCj4gRnJvbTogSm9zZXBoIEh3YW5nIFttYWls dG86am9zZXBoc2loQGdvb2dsZS5jb21dDQo+IFNlbnQ6IFdlZG5lc2RheSwgT2N0b2JlciAxMiwg MjAxNiAxMTo1NSBBTQ0KPiBUbzogU3RldmUgR2xhZGRlbg0KPiBDYzogSGlldSBMZTsgQmFycnkg Qnlmb3JkOyBsaW51eC1ibHVldG9vdGhAdmdlci5rZXJuZWwub3JnDQo+IFN1YmplY3Q6IFJlOiBI b3cgY2FuIHlvdSBzZXQgVHJhbnNtaXQgcG93ZXIgbGV2ZWwgaW4gQmx1ZXRvb3RoIExFIG1vZGUg Zm9yIGFuIExFIGJlYWNvbj8NCj4NCj4gSGkgU3RldmU6DQo+DQo+ICAgTWF5YmUgeW91IGNhbiB0 cnkgQ1NSJ3MgY29tbWFuZCBsaW5lIHV0aWxpdHksIGJjY21kLiBUaGUgc3lzdGVtIGNvbnRyb2wg Y29tbWFuZCBNYXhfVHhfUG93ZXIgYW5kIERlZmF1bHRfVHhfUG93ZXIgYWxsb3cgeW91IHRvIHNl dCB0eCBwb3dlci4NCj4NCj4gR29vZCBsdWNrIQ0KPg0KPiBKb3NlcGgNCj4NCj4NCj4gT24gV2Vk LCBPY3QgMTIsIDIwMTYgYXQgMTE6MzMgUE0sIFN0ZXZlIEdsYWRkZW4gPHN0ZXZlQG1pY2hpZ2Fu YnJvYWRiYW5kLmNvbT4gd3JvdGU6DQo+IFRoYW5rcywNCj4gSSB3YXMgaG9waW5nIHRoZXJlIHdh cyBhbiBlYXNpZXIgd2F5IGFuZCBzb21laG93IGF0IHRoZSBjb21tYW5kIGxpbmUgYnV0IEknbGwg ZG8gd2hhdCBJIG5lZWQgdG8gZG8gYW5kIGZpZ3VyZSBpdCBvdXQgc29tZWhvdy4NCj4gSSB1c3Vh bGx5IGVuZCB1cCBvbiAxMCBvdGhlciByYWJiaXQgdHJhaWxzIHdoZW4gaXQgY29tZXMgdG8gaGF2 aW5nIHRvDQo+IHJlY29tcGlsZSBhbnl0aGluZyBiZWNhdXNlIGl0IHVzdWFsbHkganVzdCBmYWls cyBmb3IgbWUgYW5kIEknbSBub3QgeWV0IHdlbGwgdmVyc2VkIGluIHRyb3VibGVzaG9vdGluZyB3 aGVuIHRoaW5ncyB3b24ndCBjb21waWxlIHN1Y2Nlc3NmdWxseSBhc2lkZSBmcm9tIHdoYXQgSSBj YW4gZWFzaWx5IGdvb2dsZS4NCj4NCj4gSSBhbHNvIHRoaW5rIGl0J3MgYSBsaXR0bGUgbW9yZSBj b21wbGljYXRlZCB0aGFuIGp1c3Qgc2V0dGluZyB0aGUgcG93ZXIuDQo+IEkgaGF2ZSBnYXRoZXJl ZCBhdCBsZWFzdCB3aXQgaHRoZSBDU1IgY2hpcHNldCB0aGF0IHRoZXJlIGFyZSBhdCBsZWFzdCAz IHNlcGFyYXRlIHBvd2VyIHNldHRpbmdzIHRoYXQgY2FuIGJlIGFkanVzdGVkIGFuZCBub3QgYW55 IG92ZXJhbGwgcG93ZXIgc2V0dGluZy4NCj4gU28gdGhlIHZhcmlvdXMgbW9kdWxhdGlvbiBtb2Rl cyAoaW5jbHVkaW5nIEdGU0sgLUxFIGFkdmVydGlzaW5nLSkgbmVlZCB0byBiZSBhZGRyZXNzZWQg YW5kIHNldCBpbmRpdmlkdWFsbHkuDQo+IFRoZXJlJ3Mgbm90IGEgbWFzdGVyIHRyYW5zbWl0IGxl dmVsIHRoYXQgc2V0cyB0aGVtIGFsbC4NCj4NCj4NCj4gU3RldmUgR2xhZGRlbg0KPg0KPiBNaWNo aWdhbiBCcm9hZGJhbmQgU3lzdGVtcw0KPiBDb25uZWN0aW5nIFlvdXIgQnVzaW5lc3MhDQo+DQo+ DQo+DQo+ICsxIDczNC41MjcuNzE1MCBEaXJlY3QNCj4gKzEgMjQ4LjMyNy40Mzg5IEZheA0KPiBz dGV2ZUBtaWNoaWdhbmJyb2FkYmFuZC5jb20NCj4gd3d3Lm1pY2hpZ2FuYnJvYWRiYW5kLmNvbQ0K Pg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBIaWV1IExlIFttYWlsdG86 aGlldS5sZUB2ZXJpa3N5c3RlbXMuY29tXQ0KPiBTZW50OiBXZWRuZXNkYXksIE9jdG9iZXIgMTIs IDIwMTYgMTowMCBBTQ0KPiBUbzogU3RldmUgR2xhZGRlbg0KPiBDYzogQmFycnkgQnlmb3JkOyBs aW51eC1ibHVldG9vdGhAdmdlci5rZXJuZWwub3JnDQo+IFN1YmplY3Q6IFJlOiBIb3cgY2FuIHlv dSBzZXQgVHJhbnNtaXQgcG93ZXIgbGV2ZWwgaW4gQmx1ZXRvb3RoIExFIG1vZGUgZm9yIGFuIExF IGJlYWNvbj8NCj4NCj4gSGksDQo+DQo+IEluIG15IG9waW5pb24sIHRoZSBvbmx5IHdheSBJIGNh biBmaW5kIHRvIGluY3JlYXNlIHRoZSB0eF9wb3dlciBpcyB0bw0KPiByZWNvbXBpbGUgdGhlIGxp bnV4IGtlcm5lbC4gVGhlcmUgbWF5IGJlIGEgYmV0dGVyIHdheQ0KPg0KPiBJdCBzZWVtcyB0aGF0 IGJsdWV0b290aCBzdGFjayB3aXRoaW4ga2VybmVsIHNlcGFyYXRlZCBpbnRvIHR3byBjbGFzc2Vz Og0KPiAxLiBJbnF1aXJ5IFR4X3Bvd2VyLg0KPiAyLiBBZHZlcnRpc2UgVHhfcG93ZXIuDQo+DQo+ IEFuZCB0aGUgZGVmYXVsdCB2YWx1ZSBpcyAwLg0KPg0KPiBZb3UgY2FuIHRha2UgYSBsb29rIGF0 Og0KPiAqaGNpX2FsbG9jX2Rldih2b2lkKSAgZnVuY3Rpb24gd2l0aGluIG5ldC9ibHVldG9vdGgv aGNpX2NvcmUuYyBmaWxlDQo+IGhkZXYtPmlucV90eF9wb3dlciA9IEhDSV9UWF9QT1dFUl9JTlZB TElEOyBhZHZfdHhfcG93ZXIgPQ0KPiBoZGV2LT5IQ0lfVFhfUE9XRVJfSU5WQUxJRDsNCj4NCj4g SG9wZSBpdCB3aWxsIGJlIGhlbHBmdWwgdG8geW91Lg0KPg0KPiBSZWdhcmRzLA0KPiBIaWV1Lg0K Pg0KPiBPbiBXZWQsIE9jdCAxMiwgMjAxNiBhdCAxMjo1MiBBTSwgU3RldmUgR2xhZGRlbiA8c3Rl dmVAbWljaGlnYW5icm9hZGJhbmQuY29tPiB3cm90ZToNCj4+IFRoYW5rcyEhDQo+PiBZZXMgaXQn cyBuaWNlIHRvIGhlYXIgZnJvbSBzb21lYm9keS4NCj4+DQo+PiBJJ3ZlIGJlZW4gc2NvdXJpbmcg dGhlIHdlYiBzbyBmYXIgdG8gbm8gYXZhaWwgb24gd2hhdCBJIHRoaW5rIHNob3VsZCBiZSBhIHNp bXBsZSBhbmQgYWNjZXNzaWJsZSBzZXR0aW5nLg0KPj4gSXQncyBvYnZpb3VzIGZyb20gdGhlIHNw ZWNzIHRoYXQgbW9zdCBjaGlwcyBoYXZlIGEgcHJvZ3JhbW1hYmxlIChzZXR0YWJsZSkgdHJhbnNt aXR0ZXIgcG93ZXIuDQo+PiBBbmQgd2l0aCBiZWFjb25zIGl0IGlzIHZlcnkgaW1wb3J0YW50IGFu ZCBleHBlY3RlZCB0aGF0IG9uZSBzaG91bGQgYmUgYWJsZSB0byBhZGp1c3QgdGhlIHRyYW5zbWl0 dGVyIGxldmVsLg0KPj4gQWxsIG9mIHRoZSBzZXJpYWwgYm9hcmRzIGRvIGl0IHdpdGggc2ltcGxl IEFUIGNvbW1hbmRzLg0KPj4NCj4+IEkganVzdCBkb24ndCBnZXQgd2h5IHRoZXJlJ3Mgbm8gZG9j dW1lbnRhdGlvbiBvbiBob3cgdG8gZG8gaXQgd2l0aCBhIFVTQiBkZXZpY2UhIQ0KPj4NCj4+IFRo ZXkgc2VsbCBjbGFzcyAxIGJsdWV0b290aCB1c2IgZG9uZ2xlcyBmb3IgYXBwbGljYXRpb25zIHRo YXQgcmVxdWlyZSBtb3JlIHJhbmdlICgxMDBtKSBpcyBxdW90ZWQgb24gbW9zdCBjbGFzcyAxIHBy b2R1Y3RzLg0KPj4NCj4+IEknZCBleHBlY3QgdGhlcmUgc2hvdWxkIGJlIGEgc3RyYWlnaHQgZm9y d2FyZCBlYXN5IHRvIHNldCBwb3dlciBpbiBMRSBtb2RlIHRvIGdldCBtb3JlIHJhbmdlIG9yIHNh dmUgcG93ZXIgYW5kIGxpbWl0IHJhbmdlIHdoZW4gd2FudGVkLg0KPj4NCj4+IEJ1dCBJJ20gcmVh bGx5IG5vdCBmaW5kaW5nIHRoaXMgaW5mb3JtYXRpb24gb3V0IHRoZXJlIQ0KPj4NCj4+IEkgZG9u O3QgdW5kZXJzdGFuZCB3aGF0IEkgYW0gZG9pbmcgd3Jvbmcgb3Igd2h5IHRoaXMgaXMgc28gZGlm ZmljdWx0DQo+PiB0byBmaW5kLiAgOikNCj4+DQo+Pg0KPj4NCj4+DQo+Pg0KPj4NCj4+DQo+PiBP biAxMSBPY3RvYmVyIDIwMTYgYXQgMTc6NTAsIFN0ZXZlIEdsYWRkZW4gPHN0ZXZlQG1pY2hpZ2Fu YnJvYWRiYW5kLmNvbT4gd3JvdGU6DQo+Pj4gSXMgdGhpcyB0aGlzIGxpc3QganVzdCBzb21lIGtp bmQgb2YgYXV0b21hdGVkIHBhdGNoIGFubm91bmNlbWVudCBsb2cgYW5kIG5vdCBhbiBhY3R1YWwg bWFpbGluZyBsaXN0IHdoZXJlIHlvdSBjYW4gYXNrIGFueXRoaW5nIGFib3V0IGJsdWV0b290aC4N Cj4+PiBUaGlzIGlzIGFsbCBJIGhhdmUgc2VlbiBoZXJlIGZvciB0aGUgcGFzdCBmZXcgZGF5cz8N Cj4+PiBXaGVyZSBjYW4gSSBhc2sgYW4gYWN0dWFsIHF1ZXN0aW9uIGFib3V0IGJsdWV0b290aD8N Cj4+DQo+PiBUaGVyZSBhcmUgc29tZSByZWFsIGh1bWFucyBoZXJlIHRvbyEgIDotKQ0KPj4NCj4+ IElmIHlvdSBsb29rIGJhY2sgb24gdGhlIGFyY2hpdmUgb2YgdGhpcyBsaXN0IHlvdSB3aWxsIHNl ZSBhIG1peHR1cmUNCj4+IG9mIHF1ZXN0aW9ucyBhbmQgcGF0Y2ggcmVxdWVzdHMuDQo+PiBtYXJj LmluZm8vP2w9bGludXgtYmx1ZXRvb3RoDQo+Pg0KPj4gSSd2ZSBrZXB0IHF1aWV0IGFzIEknbSBu b3Qgc3VyZSBJIGNhbiBhbnN3ZXIgcXVlc3Rpb25zLiBUbyBvZmZlciBzb21lDQo+PiBzaGFyZWQg ZXhwZXJpZW5jZSwgSSBjYW4gc2F5IHRoYXQgSSd2ZSBiZWVuIGV4cGVyaW1lbnRpbmcgd2l0aA0K Pj4gKEVkZHlzdG9uZSkgYmVhY29ucyBvbiBMaW51eCBzaW5nbGUgYm9hcmQgY29tcHV0ZXJzIGFj Y2Vzc2luZyBCbHVlWg0KPj4gdGhyb3VnaCB0aGUgREJ1cyBBUEkgdXNpbmcgUHl0aG9uLiBJIGFs c28gaGF2ZSBub3QgZm91bmQgYSB3YXkgdG8NCj4+IGNoYW5nZSB0aGUgcG93ZXIgbGV2ZWwgb2Yg YWR2ZXJ0aXNlbWVudHMgZWl0aGVyLiBGb3Igd2hhdCBJJ20gZG9pbmcsDQo+PiBqdXN0IG1ha2lu ZyBzdXJlIHRoZSBUWCBwb3dlciBpbiB0aGUgRWRkeXN0b25lIGFkdmVydCBtYXRjaGVzIHdoYXQN Cj4+IHRoZSBkb25nbGUgaXMgYWN0dWFsbHkgYnJvYWRjYXN0aW5nIGhhcyBiZWVuIGdvb2QgZW5v dWdoLg0KPj4NCj4+IFNvcnJ5IEkgY291bGRuJ3QgYmUgb2YgbW9yZSBoZWxwLg0KPj4NCj4+IFJl Z2FyZHMsDQo+PiBCYXJyeQ0KPj4NCj4+Pg0KPj4+DQo+Pj4NCj4+Pg0KPj4+IFN0ZXZlIEdsYWRk ZW4NCj4+Pg0KPj4+IE1pY2hpZ2FuIEJyb2FkYmFuZCBTeXN0ZW1zDQo+Pj4gQ29ubmVjdGluZyBZ b3VyIEJ1c2luZXNzIQ0KPj4+DQo+Pj4NCj4+Pg0KPj4+ICsxIDczNC41MjcuNzE1MCBEaXJlY3QN Cj4+PiArMSAyNDguMzI3LjQzODkgRmF4DQo+Pj4gc3RldmVAbWljaGlnYW5icm9hZGJhbmQuY29t DQo+Pj4gd3d3Lm1pY2hpZ2FuYnJvYWRiYW5kLmNvbQ0KPj4+DQo+Pj4gX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXw0KPj4+IEZyb206IFN0ZXZlIEdsYWRkZW4NCj4+PiBT ZW50OiBTdW5kYXksIE9jdG9iZXIgMDksIDIwMTYgMTI6MTEgUE0NCj4+PiBUbzogbGludXgtYmx1 ZXRvb3RoQHZnZXIua2VybmVsLm9yZw0KPj4+IFN1YmplY3Q6IEhvdyBjYW4geW91IHNldCBUcmFu c21pdCBwb3dlciBsZXZlbCBpbiBCbHVldG9vdGggTEUgbW9kZSBmb3IgYW4gTEUgYmVhY29uPw0K Pj4+DQo+Pj4gSGksDQo+Pj4gTXkgbmFtZSBpcyBTdGV2ZSBhbmQgSSBhbSBsb2NhdGVkIGluIEFu biBBcmJvciBNaWNoaWdhbiBVU0EuDQo+Pj4NCj4+PiBJIGFtIG5ldyAgYmx1ZXRvb3RoIExFIGFu ZCBsYXRlbHkgYW0gb2JzZXNzZWQgd2l0aCBCbHVldG9vdGggTEUgYmVhY29ucyBhbmQgdHJ5aW5n IHRoZW0gb3V0Lg0KPj4+DQo+Pj4gSSBoYXZlIHJlYWQgYXJ0aWNsZSBhZnRlciBhcnRpY2xlIGFu ZCBwYWdlIGFmdGVyIHBhZ2UgYWJvdXQgaG93DQo+Pj4gcGVvcGxlIGhhdmUgc2V0dXAgdXAgYmVh Y29ucyB3aXRoIFVTQiBCVCA0LjAgaW50ZXJmYWNlcyBhcyB3ZWxsIGFzIHNlcmlhbCBibHVldG9v dGggYm9hcmRzLg0KPj4+DQo+Pj4gSSBhbSBjdXJyZW50bHkgZXhwZXJpbWVudGluZyB3aXRoIGEg YmVhY29uIHJ1bm5pbmcgb24gYSBSYXNwYmVycnkgUGktQiBhbmQgdXNpbmcgYW4gZXh0ZXJuYWwg VVNCIEJsdWV0b290aCA0LjAgY2xhc3MgMSBkb25nbGUuDQo+Pj4NCj4+PiBNeSBmcnVzdHJhdGlv biBpcyB0aGF0IEkgaGF2ZSBub3QgYmVlbiBhYmxlIHRvIGZpbmQgYW55IHVzZWZ1bA0KPj4+IGlu Zm9ybWF0aW9uIGluIGhvdyB0byBjaGFuZ2UgdGhlIFRyYW5zbWl0dGVyIHBvd2VyIGxldmVsIHdo ZW4gaW4gTEUgbW9kZS4NCj4+Pg0KPj4+IFRoZSBkb25nbGUgYXBwZWFycyB0byBiZSB3b3JraW5n IGF0IGRlZmF1bHQgbGV2ZWwgYmVsb3cgemVybyBkYm0uDQo+Pj4NCj4+PiBUaGUgd2hvbGUgcG9p bnQgb2YgYnVpbGRpbmcgeW91ciBvd24gYmVhY29uIHRoaXMgd2F5IGlzIHRvIGJlIGFibGUNCj4+ PiB0byBjdXN0b21pemUgaXQgYW5kIHNldHRpbmcgdGhlIHBvd2VyIGxldmVsIGlzIGFuIGltcG9y dGFudCBrZXkgaXRlbSB0aGF0IHNob3VsZCBiZSBlYXNpbHkgYWNjZXNzaWJsZSB5ZXQgSSBmaW5k IHRoYXQgTk9CT0RZIGV2ZXIgZXZlbiBtZW50aW9ucyBpdCBsZXQgYWxvbmUgZG8gdGhleSBleHBs YWluIG9yIHByb3ZpZGUgYSB3YXkgdG8gc2V0IHRoZSBwb3dlci4NCj4+Pg0KPj4+DQo+Pj4gRXZl cnkgdGV4dCB0aGF0IEkgaGF2ZSBmb3VuZCB0aGF0IGRldGFpbHMgYmVhY29uIHNldHVwcyBmcm9t IGNvbW1hbmQgbGluZSBuZXZlciBib3RoZXIgdG8gbWVudGlvbiBzZXR0aW5nIGJlYWNvbiBUWCBw b3dlci4NCj4+Pg0KPj4+IEFsbCB0aGUgcGFnZXMgSSBoYXZlIGZvdW5kIHNlZW0gdG8gY29weSBl YWNoIG90aGVyIGFuZCByZXBlYXQgdGhlDQo+Pj4gc2FtZSBpbmZvcm1hdGlvbiBvdmVyICYgb3Zl ciBCdXQgbmV2ZXIgZ2V0IGFyb3VuZCB0byBldmVuIG1lbnRpb25pbmcgb3IgZGlzY3Vzc2luZyBz ZXR0aW5nIHRoZSBwb3dlciBvdXRwdXQgbGV2ZWwgb2YgdGhlIGJsdXRvb3RoIGRvbmdsZS4NCj4+ Pg0KPj4+IHN1ZG8gaGNpdG9vbCAtaSBoY2kwIGNtZCAweDA4IDB4MDAwOCAxRSAwMiAwMSAxQSAx QSBGRiA0QyAwMCAwMiAxNSBbDQo+Pj4gOTIgNzcgODMgMEEgQjIgRUIgNDkgMEYgQTEgREQgN0Yg RTMgOEMgNDkgMkUgREUgXSBbIDAwIDAwIF0gWyAwMCAwMA0KPj4+IF0NCj4+PiBDNSAwMA0KPj4+ DQo+Pj4gVGhlIGJ5dGUganVzdCBsZWZ0IG9mIHRoZSBsYXN0IG9uZSBpcyB0aGUgInJlcG9ydGVk IiBUWCBsZXZlbCB0aGF0IHlvdSBhcmUgdHJhbnNtaXR0aW5nIGF0Lg0KPj4+IFdoaWNoIG1lYW5z IHlvdSdyZSBzdXBwb3NlZCB0byBrbm93IChvciBndWVzcz8pIHdoYXQgZGJtIGxldmVsIHlvdSBh cmUgYWN0dWFsbHkgdHJhbnNtaXR0aW5nIGF0IGFuZCBzZXQgaXQgaGVyZSB0byBkaXNwbGF5IHRv IHRoZSB3b3JsZCB3aGF0IHlvdXIgdHJhbnNtaXR0ZXIgbGV2ZWwgaXMgc2V0IHRvIHNvIHRoZXkg Y2FuIHJhbmdlIChndWVzcyBvciBlc3RpbWF0ZSBkaXN0YW5jZSBmcm9tIFRYKS4NCj4+PiBUaGlz IHZhbHVlIGRvZXMgbm90IGluZmx1ZW5jZSBvciByZWZsZWN0IGFjdHVhbCB0cmFuc21pdCBwb3dl ci4NCj4+Pg0KPj4+IFBsZWFzZSBoZWxwISENCj4+Pg0KPj4+IENvdWxkIHVzZSBhbnkgcG9pbnRl cnMuDQo+Pj4NCj4+PiBJJ20gYSBoYXJkd2FyZSBndXkgYXMgd2VsbCBzbyBub3QgdmVyeSBleHBl cmllbmNlZCBpbiBzb2Z0d2FyZS9wcm9ncmFtbWluZyBidXQgSSdtIHdpbGxpbmcgdG8gdHJ5IGFu eXRoaW5nIHRvIGdldCBjb250cm9sIG9mIHRoaXMuDQo+Pj4NCj4+PiBCZWVuIGF0IHRoaXMgZm9y IG92ZXIgYSB3ZWVrIGFuZCBoYXZlIHNvbWUgd29ya2luZyBiZWFjb25zIGJ1dCBubyBjb250cm9s IG9mIHRyYW5zbWl0IHBvd2VyIGxldmVsLg0KPj4+DQo+Pj4gQW0gdXNpbmcgVHJlbmRuZXQgVVNC IGRvbmdsZXMgd2hpY2ggYXBwZWFyIHRvIHVzZSBhIENhbWJyaWRnZSBDaGlwLiAgQnV0IEknbSBu b3QgZXhhY3RseSBzdXJlIHdoaWNoIGNoaXAuDQo+Pj4NCj4+Pg0KPj4+IDp+IyBsc3VzYg0KPj4+ IEJ1cyAwMDEgRGV2aWNlIDAwNzogSUQgMGExMjowMDAxIENhbWJyaWRnZSBTaWxpY29uIFJhZGlv LCBMdGQNCj4+PiBCbHVldG9vdGggRG9uZ2xlIChIQ0kgbW9kZSkNCj4+Pg0KPj4+DQo+Pj4gcm9v dEByYXNwYmVycnlwaTp+IyBoY2ljb25maWcgaGNpMA0KPj4+IGhjaTA6ICAgVHlwZTogQlIvRURS ICBCdXM6IFVTQg0KPj4+ICAgICAgICAgIEJEIEFkZHJlc3M6IDAwOjE1OjgzOkVBOjBBOkI5ICBB Q0wgTVRVOiAzMTA6MTAgIFNDTyBNVFU6IDY0OjgNCj4+PiAgICAgICAgICBVUCBSVU5OSU5HDQo+ Pj4gICAgICAgICAgUlggYnl0ZXM6NzgwIGFjbDowIHNjbzowIGV2ZW50czo1MCBlcnJvcnM6MA0K Pj4+ICAgICAgICAgIFRYIGJ5dGVzOjExMTAgYWNsOjAgc2NvOjAgY29tbWFuZHM6NTAgZXJyb3Jz OjANCj4+Pg0KPj4+DQo+Pj4NCj4+Pg0KPj4+DQo+Pj4NCj4+Pg0KPj4+DQo+Pj4NCj4+Pg0KPj4+ DQo+Pj4NCj4+Pg0KPj4+DQo+Pj4gLS0NCj4+PiBUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlz dDogc2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUNCj4+PiBsaW51eC1ibHVldG9vdGgiIGluIHRo ZSBib2R5IG9mIGEgbWVzc2FnZSB0bw0KPj4+IG1ham9yZG9tb0B2Z2VyLmtlcm5lbC5vcmcgTW9y ZSBtYWpvcmRvbW8gaW5mbyBhdA0KPj4+IGh0dHA6Ly92Z2VyLmtlcm5lbC5vcmcvbWFqb3Jkb21v LWluZm8uaHRtbA0KPj4gLS0NCj4+IFRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBsaXN0OiBzZW5k IHRoZSBsaW5lICJ1bnN1YnNjcmliZQ0KPj4gbGludXgtYmx1ZXRvb3RoIiBpbiB0aGUgYm9keSBv ZiBhIG1lc3NhZ2UgdG8NCj4+IG1ham9yZG9tb0B2Z2VyLmtlcm5lbC5vcmcgTW9yZSBtYWpvcmRv bW8gaW5mbyBhdA0KPj4gaHR0cDovL3ZnZXIua2VybmVsLm9yZy9tYWpvcmRvbW8taW5mby5odG1s DQo+DQo+DQo+DQo+IC0tDQo+IC0tLS0gSGlldSBMZSAtLS0NCj4NCj4NCj4NCj4NCj4gLS0NCj4N Cj4gSm9zZXBoIFNoeWgtSW4gSHdhbmcNCj4gRW1haWw6IGpvc2VwaHNpaEBnb29nbGUuY29tDQo+ DQo+IE4gICByIHkgICBiIFggx6d2IF4gKd66ey5uICsgeyBuWyAtICkgICB3KmpnIB4gIN2iai8g ICB6IN6WICAyIN6ZICAgJiAp36EgYQ0KPiAgIH8gHiBHICBoIA8gajordiB3INmlDQoNCg== ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: How can you set Transmit power level in Bluetooth LE mode for an LE beacon? 2016-10-17 4:15 ` Steve Gladden @ 2016-10-19 7:22 ` Andrei Emeltchenko 0 siblings, 0 replies; 13+ messages in thread From: Andrei Emeltchenko @ 2016-10-19 7:22 UTC (permalink / raw) To: Steve Gladden Cc: Jason Anderssen, Joseph Hwang, Hieu Le, Barry Byford, linux-bluetooth@vger.kernel.org Hi Steve, On Mon, Oct 17, 2016 at 12:15:40AM -0400, Steve Gladden wrote: > Hi Jason and thanks! >=20 > No, fully agree with what you say. >=20 > I'm willing to do the extra research. > just a little bummed that the information I seek seemingly just is not th= ere anywhere. >=20 > And I also would thing that many other applications (and people) would > want to be able to adjust the power for other uses as well. > Especially to get full range available with full TX output power > versus the "unknown default". Or firmware set unknown default etc. Johan already replied that there is no standard HCI command for that. But you can use Vendor Specific Commands if there are any for changing TX power. So you should check manual for your hardware and use the command you mentioned below: hcitool -i hci0 cmd .... Best regards=20 Andrei Emeltchenko=20 >=20 > I thought there'd be more people out here that wanted and knew how to set= /change transmit power level. >=20 > Thanks for replying and it was enjoyable to hear from you! >=20 > Take care! >=20 >=20 > Steve Gladden >=20 > Michigan Broadband Systems > Connecting Your Business! >=20 >=20 >=20 > +1 734.527.7150 Direct > +1 248.327.4389 Fax > steve@michiganbroadband.com > www.michiganbroadband.com >=20 > -----Original Message----- > From: Jason Anderssen [mailto:j@keyinitiative.com] > Sent: Sunday, October 16, 2016 6:49 PM > To: Steve Gladden > Cc: Joseph Hwang; Hieu Le; Barry Byford; linux-bluetooth@vger.kernel.org > Subject: Re: How can you set Transmit power level in Bluetooth LE mode fo= r an LE beacon? >=20 > Hi Steve, >=20 > I have been reading and watching your emails, and have not replied as I p= robably don=E2=80=99t have any answers, but my guess is as follows : >=20 > Most people, myself included, are using Linux and hardware like Raspberry= pi to pick up beacons, not actually be a beacon, I know you can create a b= eacon with linux, but it is not really the main focus for a lot of people. > The hardware I use for BLE advertising completely lets me and others to p= rogram the power level, which then is received from the Raspberry pi or lik= e hardware, so I don=E2=80=99t have your issue or frustration. >=20 > So my summary is: you maybe a minority in your work :-) Nothing wrong wi= th that, but it does mean extra development and research on your behalf I w= ould say. >=20 > Anyway, I hear your frustration, and I add no value to your question, hop= efully some insight as how I see things fit in life and might explain your = current situation. >=20 > Remember this is simply my opinion, and is probably wrong too :) >=20 > Cheers > Jason >=20 > > On 17 Oct 2016, at 7:56 AM, Steve Gladden <steve@michiganbroadband.com>= wrote: > > > > Ok, this is getting really frustrating. > > Why would something so simple like this be so difficult? > > > > Am I really the only sheep out here that has any interest whatsoever in= the past 5 years on how to actually set LE transmit power on a USB device? > > Do I just not get it? > > Really I don=E2=80=99t get it. > > > > A really simple task and nobody out here either knows or has any intere= st in doing it. > > > > My question is not even technical at all. If I actually asked somethi= ng technical out here would would happen? > > > > No offense to anyone out here just to myself really but what gives? > > > > How could people working with this stuff NOT be interested in simply > > controlling the TX power output versus just living with some UNKNOWN DE= FAULT that just sorta works if you=E2=80=99re happy with only 20 feet of ra= nge although the chip can put out +10dbm and go further Or set it way back = to -40dbm and get jstu a few feet and years of battery life. > > > > How the actual F- are people NOT interested in this and talking about i= t and working with it? =E2=98=BA > > > > All I have found on bccmd is a PDF document from 2005 that predates ANY= kind of BTLE stuff. > > > > And that=E2=80=99s just for the CSR chipsets the ONE that I could find = documentation on. > > > > What about all the others? > > > > What gives here man? > > > > Am I completely in the wrong place to be asking about this? > > > > I don=E2=80=99t mean any disrespect, really I don=E2=80=99t! > > > > But where in the world do I go to get this basic information? > > > > And why does nobody care of have any hands-on experience here and/or in= terest? > > > > Thanks!! > > > > Steve > > > > > > > > > > > > > > > > > > > > > > > > > > > > Tried that of course already days ago. > > As well as anything else a simple google search turns up. > > > > To set Max tx power: > > sudo bccmd psset -s 0x0000 0x0017 10 > > To set default tx power: > > sudo bccmd psset -s 0x0000 0x002d 10 > > > > It eats both of those commands and does not complain no errors but also= no change in TX power output. > > I=E2=80=99m watching the beacons on a receiver and a spectrum analyser. > > > > If I issue: ~# hciconfig hci0 inqtpl > > hci0: Type: BR/EDR Bus: USB > > BD Address: 00:15:83:EA:0A:B9 ACL MTU: 310:10 SCO MTU: 64:8 > > Inquiry transmit power level: 4 > > > > Always reads back that =E2=80=9C4=E2=80=9D > > > > Issuing either: > > > > # bccmd warmreset > > -or > > # bccmd coldreset > > > > results in transmitter off and have to do: > > > > hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 E2 0A 39 > > F4 73 F5 4B C4 A1 2F 01 73 45 27 71 50 0A 28 0A 28 01 FF -and ~# > > hciconfig hci0 leadv3 > > > > To get it transmitting again (at the same non changed level. > > > > And > > > > ~# hciconfig hci0 inqtpl > > > > hci0: Type: BR/EDR Bus: USB > > BD Address: 00:15:83:EA:0A:B9 ACL MTU: 310:10 SCO MTU: 64:8 > > Inquiry transmit power level: 4 > > > > Always shows =E2=80=9C4=E2=80=9D > > > > On top of everything I have stated and tried here.. > > I don=E2=80=99t think that setting (if it even worked) has any relation= to LE GFSK advertising mode. > > > > Pretty sure it does not. > > That (if it worked) sets power on Basic Rate and EDR as seen in the res= ult =E2=80=9Chci0: Type: BR/EDR Bus: USB=E2=80=9D when issuing the hcico= nfig hci0 inqtpl command. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Steve Gladden > > > > Michigan Broadband Systems > > Connecting Your Business! > > > > > > > > +1 734.527.7150 Direct > > +1 248.327.4389 Fax > > steve@michiganbroadband.com > > www.michiganbroadband.com > > > > From: Joseph Hwang [mailto:josephsih@google.com] > > Sent: Wednesday, October 12, 2016 11:55 AM > > To: Steve Gladden > > Cc: Hieu Le; Barry Byford; linux-bluetooth@vger.kernel.org > > Subject: Re: How can you set Transmit power level in Bluetooth LE mode = for an LE beacon? > > > > Hi Steve: > > > > Maybe you can try CSR's command line utility, bccmd. The system contr= ol command Max_Tx_Power and Default_Tx_Power allow you to set tx power. > > > > Good luck! > > > > Joseph > > > > > > On Wed, Oct 12, 2016 at 11:33 PM, Steve Gladden <steve@michiganbroadban= d.com> wrote: > > Thanks, > > I was hoping there was an easier way and somehow at the command line bu= t I'll do what I need to do and figure it out somehow. > > I usually end up on 10 other rabbit trails when it comes to having to > > recompile anything because it usually just fails for me and I'm not yet= well versed in troubleshooting when things won't compile successfully asid= e from what I can easily google. > > > > I also think it's a little more complicated than just setting the power. > > I have gathered at least wit hthe CSR chipset that there are at least 3= separate power settings that can be adjusted and not any overall power set= ting. > > So the various modulation modes (including GFSK -LE advertising-) need = to be addressed and set individually. > > There's not a master transmit level that sets them all. > > > > > > Steve Gladden > > > > Michigan Broadband Systems > > Connecting Your Business! > > > > > > > > +1 734.527.7150 Direct > > +1 248.327.4389 Fax > > steve@michiganbroadband.com > > www.michiganbroadband.com > > > > -----Original Message----- > > From: Hieu Le [mailto:hieu.le@veriksystems.com] > > Sent: Wednesday, October 12, 2016 1:00 AM > > To: Steve Gladden > > Cc: Barry Byford; linux-bluetooth@vger.kernel.org > > Subject: Re: How can you set Transmit power level in Bluetooth LE mode = for an LE beacon? > > > > Hi, > > > > In my opinion, the only way I can find to increase the tx_power is to > > recompile the linux kernel. There may be a better way > > > > It seems that bluetooth stack within kernel separated into two classes: > > 1. Inquiry Tx_power. > > 2. Advertise Tx_power. > > > > And the default value is 0. > > > > You can take a look at: > > *hci_alloc_dev(void) function within net/bluetooth/hci_core.c file > > hdev->inq_tx_power =3D HCI_TX_POWER_INVALID; adv_tx_power =3D > > hdev->HCI_TX_POWER_INVALID; > > > > Hope it will be helpful to you. > > > > Regards, > > Hieu. > > > > On Wed, Oct 12, 2016 at 12:52 AM, Steve Gladden <steve@michiganbroadban= d.com> wrote: > >> Thanks!! > >> Yes it's nice to hear from somebody. > >> > >> I've been scouring the web so far to no avail on what I think should b= e a simple and accessible setting. > >> It's obvious from the specs that most chips have a programmable (setta= ble) transmitter power. > >> And with beacons it is very important and expected that one should be = able to adjust the transmitter level. > >> All of the serial boards do it with simple AT commands. > >> > >> I just don't get why there's no documentation on how to do it with a U= SB device!! > >> > >> They sell class 1 bluetooth usb dongles for applications that require = more range (100m) is quoted on most class 1 products. > >> > >> I'd expect there should be a straight forward easy to set power in LE = mode to get more range or save power and limit range when wanted. > >> > >> But I'm really not finding this information out there! > >> > >> I don;t understand what I am doing wrong or why this is so difficult > >> to find. :) > >> > >> > >> > >> > >> > >> > >> > >> On 11 October 2016 at 17:50, Steve Gladden <steve@michiganbroadband.co= m> wrote: > >>> Is this this list just some kind of automated patch announcement log = and not an actual mailing list where you can ask anything about bluetooth. > >>> This is all I have seen here for the past few days? > >>> Where can I ask an actual question about bluetooth? > >> > >> There are some real humans here too! :-) > >> > >> If you look back on the archive of this list you will see a mixture > >> of questions and patch requests. > >> marc.info/?l=3Dlinux-bluetooth > >> > >> I've kept quiet as I'm not sure I can answer questions. To offer some > >> shared experience, I can say that I've been experimenting with > >> (Eddystone) beacons on Linux single board computers accessing BlueZ > >> through the DBus API using Python. I also have not found a way to > >> change the power level of advertisements either. For what I'm doing, > >> just making sure the TX power in the Eddystone advert matches what > >> the dongle is actually broadcasting has been good enough. > >> > >> Sorry I couldn't be of more help. > >> > >> Regards, > >> Barry > >> > >>> > >>> > >>> > >>> > >>> Steve Gladden > >>> > >>> Michigan Broadband Systems > >>> Connecting Your Business! > >>> > >>> > >>> > >>> +1 734.527.7150 Direct > >>> +1 248.327.4389 Fax > >>> steve@michiganbroadband.com > >>> www.michiganbroadband.com > >>> > >>> ________________________________________ > >>> From: Steve Gladden > >>> Sent: Sunday, October 09, 2016 12:11 PM > >>> To: linux-bluetooth@vger.kernel.org > >>> Subject: How can you set Transmit power level in Bluetooth LE mode fo= r an LE beacon? > >>> > >>> Hi, > >>> My name is Steve and I am located in Ann Arbor Michigan USA. > >>> > >>> I am new bluetooth LE and lately am obsessed with Bluetooth LE beaco= ns and trying them out. > >>> > >>> I have read article after article and page after page about how > >>> people have setup up beacons with USB BT 4.0 interfaces as well as se= rial bluetooth boards. > >>> > >>> I am currently experimenting with a beacon running on a Raspberry Pi-= B and using an external USB Bluetooth 4.0 class 1 dongle. > >>> > >>> My frustration is that I have not been able to find any useful > >>> information in how to change the Transmitter power level when in LE m= ode. > >>> > >>> The dongle appears to be working at default level below zero dbm. > >>> > >>> The whole point of building your own beacon this way is to be able > >>> to customize it and setting the power level is an important key item = that should be easily accessible yet I find that NOBODY ever even mentions = it let alone do they explain or provide a way to set the power. > >>> > >>> > >>> Every text that I have found that details beacon setups from command = line never bother to mention setting beacon TX power. > >>> > >>> All the pages I have found seem to copy each other and repeat the > >>> same information over & over But never get around to even mentioning = or discussing setting the power output level of the blutooth dongle. > >>> > >>> sudo hcitool -i hci0 cmd 0x08 0x0008 1E 02 01 1A 1A FF 4C 00 02 15 [ > >>> 92 77 83 0A B2 EB 49 0F A1 DD 7F E3 8C 49 2E DE ] [ 00 00 ] [ 00 00 > >>> ] > >>> C5 00 > >>> > >>> The byte just left of the last one is the "reported" TX level that yo= u are transmitting at. > >>> Which means you're supposed to know (or guess?) what dbm level you ar= e actually transmitting at and set it here to display to the world what you= r transmitter level is set to so they can range (guess or estimate distance= from TX). > >>> This value does not influence or reflect actual transmit power. > >>> > >>> Please help!! > >>> > >>> Could use any pointers. > >>> > >>> I'm a hardware guy as well so not very experienced in software/progra= mming but I'm willing to try anything to get control of this. > >>> > >>> Been at this for over a week and have some working beacons but no con= trol of transmit power level. > >>> > >>> Am using Trendnet USB dongles which appear to use a Cambridge Chip. = But I'm not exactly sure which chip. > >>> > >>> > >>> :~# lsusb > >>> Bus 001 Device 007: ID 0a12:0001 Cambridge Silicon Radio, Ltd > >>> Bluetooth Dongle (HCI mode) > >>> > >>> > >>> root@raspberrypi:~# hciconfig hci0 > >>> hci0: Type: BR/EDR Bus: USB > >>> BD Address: 00:15:83:EA:0A:B9 ACL MTU: 310:10 SCO MTU: 64:8 > >>> UP RUNNING > >>> RX bytes:780 acl:0 sco:0 events:50 errors:0 > >>> TX bytes:1110 acl:0 sco:0 commands:50 errors:0 > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> -- > >>> To unsubscribe from this list: send the line "unsubscribe > >>> linux-bluetooth" in the body of a message to > >>> majordomo@vger.kernel.org More majordomo info at > >>> http://vger.kernel.org/majordomo-info.html > >> -- > >> To unsubscribe from this list: send the line "unsubscribe > >> linux-bluetooth" in the body of a message to > >> majordomo@vger.kernel.org More majordomo info at > >> http://vger.kernel.org/majordomo-info.html > > > > > > > > -- > > ---- Hieu Le --- > > > > > > > > > > -- > > > > Joseph Shyh-In Hwang > > Email: josephsih@google.com > > > > N r y b X =C7=A7v ^ )=DE=BA{.n + { n[ - ) w*jg =1E =DD=A2j/ z = =DE=96 2 =DE=99 & )=DF=A1 a > > =7F =1E G h =0F j:+v w =D9=A5 >=20 ^ permalink raw reply [flat|nested] 13+ messages in thread
[parent not found: <E870213FE4F9C248AE722569E8374C6A386A32B414@X2.michiganbb.local>]
* RE: How can you set Transmit power level in Bluetooth LE mode for an LE beacon? [not found] ` <E870213FE4F9C248AE722569E8374C6A386A32B414@X2.michiganbb.local> @ 2016-10-24 21:24 ` Steve Gladden 0 siblings, 0 replies; 13+ messages in thread From: Steve Gladden @ 2016-10-24 21:24 UTC (permalink / raw) To: 'Jason Anderssen' Cc: 'Joseph Hwang', 'Hieu Le', 'Barry Byford', 'linux-bluetooth@vger.kernel.org' SGVsbG8gQW5kcmVpOg0KPj5Kb2hhbiBhbHJlYWR5IHJlcGxpZWQgdGhhdCB0aGVyZSBpcyBubyBz dGFuZGFyZCBIQ0kgY29tbWFuZCBmb3IgdGhhdC4NCj4+QnV0IHlvdSBjYW4gdXNlIFZlbmRvciBT cGVjaWZpYyBDb21tYW5kcyBpZiB0aGVyZSBhcmUgYW55IGZvciBjaGFuZ2luZw0KPj5UWCBwb3dl ci4NCg0KDQpUaGUgY2xvc2VzdCB0aGluZyBJIGhhdmUgZXZlciBiZWVuIGFibGUgdG8gZmluZCB0 aGF0IHNob3dzIGFueSB2ZW5kb3Igc3BlY2lmaWMgY29tbWFuZHMgaXMgdGhpcyBPTEQgZG9jdW1l bnQgZnJvbSAyMDA1IHdoaWNoIGlzIGZyb20gbG9uZyBiZWZvcmUgQmx1ZXRvb3RoIExFIGV2ZXIg ZXhpc3RlZCAtLS0tLT4gaHR0cHM6Ly9oaW1zZWxmLmZpbGVzLndvcmRwcmVzcy5jb20vMjAxMy8w NS9iY2NtZC1jb21tYW5kcy5wZGYNCg0KQWxzbyBpbmNsdWRlZCBoZXJlIGFzIG1vcmUgb2YgYSBq b2tlIHRoYW4gYW55dGhpbmcgZWxzZSBpcyBhIGNvcHkgb2YgYSB0eXBpY2FsICJ2ZW5kb3IgbWFu dWFsIg0KVHlwaWNhbCBWZW5kb3IgTWFudWFsICAtLS0tLT4gaHR0cDovL2ltYWdlczEwLm5ld2Vn Zy5jb20vTWFudWZhY3R1cmVyLUJyb2NodXJlL01hbnVmYWN0dXJlcl9Ccm9jaHVyZV8zMy00MTIt MDAxLnBkZg0KDQoNCj4+U28geW91IHNob3VsZCBjaGVjayBtYW51YWwgZm9yIHlvdXIgaGFyZHdh cmUgYW5kIHVzZSB0aGUgY29tbWFuZCB5b3UNCj4+bWVudGlvbmVkIGJlbG93Og0KDQpZZXMgSSBz aG91bGQhICAgSW4gZmFjdCBJJ2QgcmVhbGx5IGVuam95IGRvaW5nIHNvIGlmIEkgY291bGQganVz dCBmaW5kLi4gbmV2ZXJtaW5kLiAgICA6LSkNCg0KDQpBbmRyZWksIHBlciBjaGFuY2UgZG8geW91 IGhhdmUgYW4gZXhhbXBsZSBvZiBhIHZlbmRvciBtYW51YWwgdGhhdCBpbmNsdWRlcyB0aGVzZSBj b21tYW5kcz8NCk9yIGFueSBzb3VyY2Ugb2YgaW5mb3JtYXRpb24gdGhhdCBJIHN0aWxsIGFtIG5v dCBmYW1pbGlhciB3aXRoPw0KVGhhbmtzIGFuZCB0YWtlIGNhcmUhDQpTdGV2ZQ0KDQoNCj4+SGNp dG9vbCAtaSBoY2kwIGNtZCAuLi4uDQoNCj4+QmVzdCByZWdhcmRzDQo+PkFuZHJlaSBFbWVsdGNo ZW5rbw0KDQoNCg0KDQoNCg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogU3Rl dmUgR2xhZGRlbg0KU2VudDogTW9uZGF5LCBPY3RvYmVyIDE3LCAyMDE2IDEyOjE2IEFNDQpUbzog SmFzb24gQW5kZXJzc2VuIDxqQGtleWluaXRpYXRpdmUuY29tPg0KQ2M6IEpvc2VwaCBId2FuZyA8 am9zZXBoc2loQGdvb2dsZS5jb20+OyBIaWV1IExlIDxoaWV1LmxlQHZlcmlrc3lzdGVtcy5jb20+ OyBCYXJyeSBCeWZvcmQgPDMxYmF6NjZAZ21haWwuY29tPjsgbGludXgtYmx1ZXRvb3RoQHZnZXIu a2VybmVsLm9yZw0KU3ViamVjdDogUkU6IEhvdyBjYW4geW91IHNldCBUcmFuc21pdCBwb3dlciBs ZXZlbCBpbiBCbHVldG9vdGggTEUgbW9kZSBmb3IgYW4gTEUgYmVhY29uPw0KDQpIaSBKYXNvbiBh bmQgdGhhbmtzIQ0KDQpObywgZnVsbHkgYWdyZWUgd2l0aCB3aGF0IHlvdSBzYXkuDQoNCkknbSB3 aWxsaW5nIHRvIGRvIHRoZSBleHRyYSByZXNlYXJjaC4NCmp1c3QgYSBsaXR0bGUgYnVtbWVkIHRo YXQgdGhlIGluZm9ybWF0aW9uIEkgc2VlayBzZWVtaW5nbHkganVzdCBpcyBub3QgdGhlcmUgYW55 d2hlcmUuDQoNCkFuZCBJIGFsc28gd291bGQgdGhpbmcgdGhhdCBtYW55IG90aGVyIGFwcGxpY2F0 aW9ucyAoYW5kIHBlb3BsZSkgd291bGQgd2FudCB0byBiZSBhYmxlIHRvIGFkanVzdCB0aGUgcG93 ZXIgZm9yIG90aGVyIHVzZXMgYXMgd2VsbC4NCkVzcGVjaWFsbHkgdG8gZ2V0IGZ1bGwgcmFuZ2Ug YXZhaWxhYmxlIHdpdGggZnVsbCBUWCBvdXRwdXQgcG93ZXIgdmVyc3VzIHRoZSAidW5rbm93biBk ZWZhdWx0Ii4gIE9yIGZpcm13YXJlIHNldCB1bmtub3duIGRlZmF1bHQgZXRjLg0KDQpJIHRob3Vn aHQgdGhlcmUnZCBiZSBtb3JlIHBlb3BsZSBvdXQgaGVyZSB0aGF0IHdhbnRlZCBhbmQga25ldyBo b3cgdG8gc2V0L2NoYW5nZSB0cmFuc21pdCBwb3dlciBsZXZlbC4NCg0KVGhhbmtzIGZvciByZXBs eWluZyBhbmQgaXQgd2FzIGVuam95YWJsZSB0byBoZWFyIGZyb20geW91IQ0KDQpUYWtlIGNhcmUh DQoNCg0KU3RldmUgR2xhZGRlbg0KDQpNaWNoaWdhbiBCcm9hZGJhbmQgU3lzdGVtcw0KQ29ubmVj dGluZyBZb3VyIEJ1c2luZXNzIQ0KDQoNCg0KKzEgNzM0LjUyNy43MTUwIERpcmVjdA0KKzEgMjQ4 LjMyNy40Mzg5IEZheA0Kc3RldmVAbWljaGlnYW5icm9hZGJhbmQuY29tDQp3d3cubWljaGlnYW5i cm9hZGJhbmQuY29tDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBKYXNvbiBB bmRlcnNzZW4gW21haWx0bzpqQGtleWluaXRpYXRpdmUuY29tXQ0KU2VudDogU3VuZGF5LCBPY3Rv YmVyIDE2LCAyMDE2IDY6NDkgUE0NClRvOiBTdGV2ZSBHbGFkZGVuDQpDYzogSm9zZXBoIEh3YW5n OyBIaWV1IExlOyBCYXJyeSBCeWZvcmQ7IGxpbnV4LWJsdWV0b290aEB2Z2VyLmtlcm5lbC5vcmcN ClN1YmplY3Q6IFJlOiBIb3cgY2FuIHlvdSBzZXQgVHJhbnNtaXQgcG93ZXIgbGV2ZWwgaW4gQmx1 ZXRvb3RoIExFIG1vZGUgZm9yIGFuIExFIGJlYWNvbj8NCg0KSGkgU3RldmUsDQoNCkkgaGF2ZSBi ZWVuIHJlYWRpbmcgYW5kIHdhdGNoaW5nIHlvdXIgZW1haWxzLCBhbmQgaGF2ZSBub3QgcmVwbGll ZCBhcyBJIHByb2JhYmx5IGRvbuKAmXQgaGF2ZSBhbnkgYW5zd2VycywgYnV0IG15IGd1ZXNzIGlz IGFzIGZvbGxvd3MgOg0KDQpNb3N0IHBlb3BsZSwgbXlzZWxmIGluY2x1ZGVkLCBhcmUgdXNpbmcg TGludXggYW5kIGhhcmR3YXJlIGxpa2UgUmFzcGJlcnJ5IHBpIHRvIHBpY2sgdXAgYmVhY29ucywg bm90IGFjdHVhbGx5IGJlIGEgYmVhY29uLCBJIGtub3cgeW91IGNhbiBjcmVhdGUgYSBiZWFjb24g d2l0aCBsaW51eCwgYnV0IGl0IGlzIG5vdCByZWFsbHkgdGhlIG1haW4gZm9jdXMgZm9yIGEgbG90 IG9mIHBlb3BsZS4NClRoZSBoYXJkd2FyZSBJIHVzZSBmb3IgQkxFIGFkdmVydGlzaW5nIGNvbXBs ZXRlbHkgbGV0cyBtZSBhbmQgb3RoZXJzIHRvIHByb2dyYW0gdGhlIHBvd2VyIGxldmVsLCB3aGlj aCB0aGVuIGlzIHJlY2VpdmVkIGZyb20gdGhlIFJhc3BiZXJyeSBwaSBvciBsaWtlIGhhcmR3YXJl LCBzbyBJIGRvbuKAmXQgaGF2ZSB5b3VyIGlzc3VlIG9yIGZydXN0cmF0aW9uLg0KDQpTbyBteSBz dW1tYXJ5IGlzOiB5b3UgbWF5YmUgYSBtaW5vcml0eSBpbiB5b3VyIHdvcmsgOi0pICBOb3RoaW5n IHdyb25nIHdpdGggdGhhdCwgYnV0IGl0IGRvZXMgbWVhbiBleHRyYSBkZXZlbG9wbWVudCBhbmQg cmVzZWFyY2ggb24geW91ciBiZWhhbGYgSSB3b3VsZCBzYXkuDQoNCkFueXdheSwgSSBoZWFyIHlv dXIgZnJ1c3RyYXRpb24sIGFuZCBJIGFkZCBubyB2YWx1ZSB0byB5b3VyIHF1ZXN0aW9uLCBob3Bl ZnVsbHkgc29tZSBpbnNpZ2h0IGFzIGhvdyBJIHNlZSB0aGluZ3MgZml0IGluIGxpZmUgYW5kIG1p Z2h0IGV4cGxhaW4geW91ciBjdXJyZW50IHNpdHVhdGlvbi4NCg0KUmVtZW1iZXIgdGhpcyBpcyBz aW1wbHkgbXkgb3BpbmlvbiwgYW5kIGlzIHByb2JhYmx5IHdyb25nIHRvbyA6KQ0KDQpDaGVlcnMN Ckphc29uDQoNCj4gT24gMTcgT2N0IDIwMTYsIGF0IDc6NTYgQU0sIFN0ZXZlIEdsYWRkZW4gPHN0 ZXZlQG1pY2hpZ2FuYnJvYWRiYW5kLmNvbT4gd3JvdGU6DQo+DQo+IE9rLCB0aGlzIGlzIGdldHRp bmcgcmVhbGx5IGZydXN0cmF0aW5nLg0KPiBXaHkgd291bGQgc29tZXRoaW5nIHNvIHNpbXBsZSBs aWtlIHRoaXMgYmUgc28gZGlmZmljdWx0Pw0KPg0KPiBBbSBJIHJlYWxseSB0aGUgb25seSBzaGVl cCBvdXQgaGVyZSB0aGF0IGhhcyBhbnkgaW50ZXJlc3Qgd2hhdHNvZXZlciBpbiB0aGUgcGFzdCA1 IHllYXJzIG9uIGhvdyB0byBhY3R1YWxseSBzZXQgTEUgdHJhbnNtaXQgcG93ZXIgb24gYSBVU0Ig ZGV2aWNlPw0KPiBEbyBJIGp1c3Qgbm90IGdldCBpdD8NCj4gUmVhbGx5IEkgZG9u4oCZdCBnZXQg aXQuDQo+DQo+IEEgcmVhbGx5IHNpbXBsZSB0YXNrIGFuZCBub2JvZHkgb3V0IGhlcmUgZWl0aGVy IGtub3dzIG9yIGhhcyBhbnkgaW50ZXJlc3QgaW4gZG9pbmcgaXQuDQo+DQo+IE15IHF1ZXN0aW9u IGlzIG5vdCBldmVuIHRlY2huaWNhbCBhdCBhbGwuICAgSWYgSSBhY3R1YWxseSBhc2tlZCBzb21l dGhpbmcgdGVjaG5pY2FsIG91dCBoZXJlIHdvdWxkIHdvdWxkIGhhcHBlbj8NCj4NCj4gTm8gb2Zm ZW5zZSB0byBhbnlvbmUgb3V0IGhlcmUganVzdCB0byBteXNlbGYgcmVhbGx5IGJ1dCB3aGF0IGdp dmVzPw0KPg0KPiBIb3cgY291bGQgcGVvcGxlIHdvcmtpbmcgd2l0aCB0aGlzIHN0dWZmIE5PVCBi ZSBpbnRlcmVzdGVkIGluIHNpbXBseQ0KPiBjb250cm9sbGluZyB0aGUgVFggcG93ZXIgb3V0cHV0 IHZlcnN1cyBqdXN0IGxpdmluZyB3aXRoIHNvbWUgVU5LTk9XTiBERUZBVUxUIHRoYXQganVzdCBz b3J0YSB3b3JrcyBpZiB5b3XigJlyZSBoYXBweSB3aXRoIG9ubHkgMjAgZmVldCBvZiByYW5nZSBh bHRob3VnaCB0aGUgY2hpcCBjYW4gcHV0IG91dCArMTBkYm0gYW5kIGdvIGZ1cnRoZXIgT3Igc2V0 IGl0IHdheSBiYWNrIHRvIC00MGRibSBhbmQgZ2V0IGpzdHUgYSBmZXcgZmVldCBhbmQgeWVhcnMg b2YgYmF0dGVyeSBsaWZlLg0KPg0KPiBIb3cgdGhlIGFjdHVhbCBGLSBhcmUgcGVvcGxlIE5PVCBp bnRlcmVzdGVkIGluIHRoaXMgYW5kIHRhbGtpbmcgYWJvdXQgaXQgYW5kIHdvcmtpbmcgd2l0aCBp dD8gICDimLoNCj4NCj4gQWxsIEkgaGF2ZSBmb3VuZCBvbiBiY2NtZCBpcyBhIFBERiBkb2N1bWVu dCBmcm9tIDIwMDUgdGhhdCBwcmVkYXRlcyBBTlkga2luZCBvZiBCVExFIHN0dWZmLg0KPg0KPiBB bmQgdGhhdOKAmXMganVzdCBmb3IgdGhlIENTUiBjaGlwc2V0cyB0aGUgT05FIHRoYXQgSSBjb3Vs ZCBmaW5kIGRvY3VtZW50YXRpb24gb24uDQo+DQo+IFdoYXQgYWJvdXQgYWxsIHRoZSBvdGhlcnM/ DQo+DQo+IFdoYXQgZ2l2ZXMgaGVyZSBtYW4/DQo+DQo+IEFtIEkgY29tcGxldGVseSBpbiB0aGUg d3JvbmcgcGxhY2UgdG8gYmUgYXNraW5nIGFib3V0IHRoaXM/DQo+DQo+IEkgZG9u4oCZdCBtZWFu IGFueSBkaXNyZXNwZWN0LCByZWFsbHkgSSBkb27igJl0IQ0KPg0KPiBCdXQgd2hlcmUgaW4gdGhl IHdvcmxkIGRvIEkgZ28gdG8gZ2V0IHRoaXMgYmFzaWMgaW5mb3JtYXRpb24/DQo+DQo+IEFuZCB3 aHkgZG9lcyBub2JvZHkgY2FyZSBvZiBoYXZlIGFueSBoYW5kcy1vbiBleHBlcmllbmNlIGhlcmUg YW5kL29yIGludGVyZXN0Pw0KPg0KPiBUaGFua3MhIQ0KPg0KPiBTdGV2ZQ0KPg0KPg0KPg0KPg0K Pg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPg0KPiBUcmllZCB0aGF0IG9mIGNvdXJzZSBhbHJlYWR5 IGRheXMgYWdvLg0KPiBBcyB3ZWxsIGFzIGFueXRoaW5nIGVsc2UgYSBzaW1wbGUgZ29vZ2xlIHNl YXJjaCB0dXJucyB1cC4NCj4NCj4gVG8gc2V0IE1heCB0eCBwb3dlcjoNCj4gc3VkbyBiY2NtZCBw c3NldCAtcyAweDAwMDAgMHgwMDE3IDEwDQo+IFRvIHNldCBkZWZhdWx0IHR4IHBvd2VyOg0KPiBz dWRvIGJjY21kIHBzc2V0IC1zIDB4MDAwMCAweDAwMmQgMTANCj4NCj4gSXQgZWF0cyBib3RoIG9m IHRob3NlIGNvbW1hbmRzIGFuZCBkb2VzIG5vdCBjb21wbGFpbiBubyBlcnJvcnMgYnV0IGFsc28g bm8gY2hhbmdlIGluIFRYIHBvd2VyIG91dHB1dC4NCj4gSeKAmW0gd2F0Y2hpbmcgdGhlIGJlYWNv bnMgb24gYSByZWNlaXZlciBhbmQgYSBzcGVjdHJ1bSBhbmFseXNlci4NCj4NCj4gSWYgSSBpc3N1 ZTogfiMgaGNpY29uZmlnIGhjaTAgaW5xdHBsDQo+IGhjaTA6ICAgVHlwZTogQlIvRURSICBCdXM6 IFVTQg0KPiAgICAgICAgIEJEIEFkZHJlc3M6IDAwOjE1OjgzOkVBOjBBOkI5ICBBQ0wgTVRVOiAz MTA6MTAgIFNDTyBNVFU6IDY0OjgNCj4gICAgICAgICBJbnF1aXJ5IHRyYW5zbWl0IHBvd2VyIGxl dmVsOiA0DQo+DQo+IEFsd2F5cyByZWFkcyBiYWNrIHRoYXQg4oCcNOKAnQ0KPg0KPiBJc3N1aW5n IGVpdGhlcjoNCj4NCj4gIyBiY2NtZCB3YXJtcmVzZXQNCj4gLW9yDQo+ICMgYmNjbWQgY29sZHJl c2V0DQo+DQo+IHJlc3VsdHMgaW4gdHJhbnNtaXR0ZXIgb2ZmIGFuZCBoYXZlIHRvIGRvOg0KPg0K PiBoY2l0b29sIC1pIGhjaTAgY21kIDB4MDggMHgwMDA4IDFFIDAyIDAxIDFBIDFBIEZGIDRDIDAw IDAyIDE1IEUyIDBBIDM5DQo+IEY0IDczIEY1IDRCIEM0IEExIDJGIDAxIDczIDQ1IDI3IDcxIDUw IDBBIDI4IDBBIDI4IDAxIEZGIC1hbmQgfiMNCj4gaGNpY29uZmlnIGhjaTAgbGVhZHYzDQo+DQo+ IFRvIGdldCBpdCB0cmFuc21pdHRpbmcgYWdhaW4gKGF0IHRoZSBzYW1lIG5vbiBjaGFuZ2VkIGxl dmVsLg0KPg0KPiBBbmQNCj4NCj4gfiMgaGNpY29uZmlnIGhjaTAgaW5xdHBsDQo+DQo+IGhjaTA6 ICAgVHlwZTogQlIvRURSICBCdXM6IFVTQg0KPiAgICAgICAgIEJEIEFkZHJlc3M6IDAwOjE1Ojgz OkVBOjBBOkI5ICBBQ0wgTVRVOiAzMTA6MTAgIFNDTyBNVFU6IDY0OjgNCj4gICAgICAgICBJbnF1 aXJ5IHRyYW5zbWl0IHBvd2VyIGxldmVsOiA0DQo+DQo+IEFsd2F5cyBzaG93cyDigJw04oCdDQo+ DQo+IE9uIHRvcCBvZiBldmVyeXRoaW5nIEkgaGF2ZSBzdGF0ZWQgYW5kIHRyaWVkIGhlcmUuLg0K PiBJIGRvbuKAmXQgdGhpbmsgdGhhdCBzZXR0aW5nIChpZiBpdCBldmVuIHdvcmtlZCkgaGFzIGFu eSByZWxhdGlvbiB0byBMRSBHRlNLIGFkdmVydGlzaW5nIG1vZGUuDQo+DQo+IFByZXR0eSBzdXJl IGl0IGRvZXMgbm90Lg0KPiBUaGF0IChpZiBpdCB3b3JrZWQpIHNldHMgcG93ZXIgb24gQmFzaWMg UmF0ZSBhbmQgRURSIGFzIHNlZW4gaW4gdGhlIHJlc3VsdCDigJxoY2kwOiAgIFR5cGU6IEJSL0VE UiAgQnVzOiBVU0LigJ0gd2hlbiBpc3N1aW5nIHRoZSBoY2ljb25maWcgaGNpMCBpbnF0cGwgY29t bWFuZC4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4NCj4gU3RldmUg R2xhZGRlbg0KPg0KPiBNaWNoaWdhbiBCcm9hZGJhbmQgU3lzdGVtcw0KPiBDb25uZWN0aW5nIFlv dXIgQnVzaW5lc3MhDQo+DQo+DQo+DQo+ICsxIDczNC41MjcuNzE1MCBEaXJlY3QNCj4gKzEgMjQ4 LjMyNy40Mzg5IEZheA0KPiBzdGV2ZUBtaWNoaWdhbmJyb2FkYmFuZC5jb20NCj4gd3d3Lm1pY2hp Z2FuYnJvYWRiYW5kLmNvbQ0KPg0KPiBGcm9tOiBKb3NlcGggSHdhbmcgW21haWx0bzpqb3NlcGhz aWhAZ29vZ2xlLmNvbV0NCj4gU2VudDogV2VkbmVzZGF5LCBPY3RvYmVyIDEyLCAyMDE2IDExOjU1 IEFNDQo+IFRvOiBTdGV2ZSBHbGFkZGVuDQo+IENjOiBIaWV1IExlOyBCYXJyeSBCeWZvcmQ7IGxp bnV4LWJsdWV0b290aEB2Z2VyLmtlcm5lbC5vcmcNCj4gU3ViamVjdDogUmU6IEhvdyBjYW4geW91 IHNldCBUcmFuc21pdCBwb3dlciBsZXZlbCBpbiBCbHVldG9vdGggTEUgbW9kZSBmb3IgYW4gTEUg YmVhY29uPw0KPg0KPiBIaSBTdGV2ZToNCj4NCj4gICBNYXliZSB5b3UgY2FuIHRyeSBDU1IncyBj b21tYW5kIGxpbmUgdXRpbGl0eSwgYmNjbWQuIFRoZSBzeXN0ZW0gY29udHJvbCBjb21tYW5kIE1h eF9UeF9Qb3dlciBhbmQgRGVmYXVsdF9UeF9Qb3dlciBhbGxvdyB5b3UgdG8gc2V0IHR4IHBvd2Vy Lg0KPg0KPiBHb29kIGx1Y2shDQo+DQo+IEpvc2VwaA0KPg0KPg0KPiBPbiBXZWQsIE9jdCAxMiwg MjAxNiBhdCAxMTozMyBQTSwgU3RldmUgR2xhZGRlbiA8c3RldmVAbWljaGlnYW5icm9hZGJhbmQu Y29tPiB3cm90ZToNCj4gVGhhbmtzLA0KPiBJIHdhcyBob3BpbmcgdGhlcmUgd2FzIGFuIGVhc2ll ciB3YXkgYW5kIHNvbWVob3cgYXQgdGhlIGNvbW1hbmQgbGluZSBidXQgSSdsbCBkbyB3aGF0IEkg bmVlZCB0byBkbyBhbmQgZmlndXJlIGl0IG91dCBzb21laG93Lg0KPiBJIHVzdWFsbHkgZW5kIHVw IG9uIDEwIG90aGVyIHJhYmJpdCB0cmFpbHMgd2hlbiBpdCBjb21lcyB0byBoYXZpbmcgdG8NCj4g cmVjb21waWxlIGFueXRoaW5nIGJlY2F1c2UgaXQgdXN1YWxseSBqdXN0IGZhaWxzIGZvciBtZSBh bmQgSSdtIG5vdCB5ZXQgd2VsbCB2ZXJzZWQgaW4gdHJvdWJsZXNob290aW5nIHdoZW4gdGhpbmdz IHdvbid0IGNvbXBpbGUgc3VjY2Vzc2Z1bGx5IGFzaWRlIGZyb20gd2hhdCBJIGNhbiBlYXNpbHkg Z29vZ2xlLg0KPg0KPiBJIGFsc28gdGhpbmsgaXQncyBhIGxpdHRsZSBtb3JlIGNvbXBsaWNhdGVk IHRoYW4ganVzdCBzZXR0aW5nIHRoZSBwb3dlci4NCj4gSSBoYXZlIGdhdGhlcmVkIGF0IGxlYXN0 IHdpdCBodGhlIENTUiBjaGlwc2V0IHRoYXQgdGhlcmUgYXJlIGF0IGxlYXN0IDMgc2VwYXJhdGUg cG93ZXIgc2V0dGluZ3MgdGhhdCBjYW4gYmUgYWRqdXN0ZWQgYW5kIG5vdCBhbnkgb3ZlcmFsbCBw b3dlciBzZXR0aW5nLg0KPiBTbyB0aGUgdmFyaW91cyBtb2R1bGF0aW9uIG1vZGVzIChpbmNsdWRp bmcgR0ZTSyAtTEUgYWR2ZXJ0aXNpbmctKSBuZWVkIHRvIGJlIGFkZHJlc3NlZCBhbmQgc2V0IGlu ZGl2aWR1YWxseS4NCj4gVGhlcmUncyBub3QgYSBtYXN0ZXIgdHJhbnNtaXQgbGV2ZWwgdGhhdCBz ZXRzIHRoZW0gYWxsLg0KPg0KPg0KPiBTdGV2ZSBHbGFkZGVuDQo+DQo+IE1pY2hpZ2FuIEJyb2Fk YmFuZCBTeXN0ZW1zDQo+IENvbm5lY3RpbmcgWW91ciBCdXNpbmVzcyENCj4NCj4NCj4NCj4gKzEg NzM0LjUyNy43MTUwIERpcmVjdA0KPiArMSAyNDguMzI3LjQzODkgRmF4DQo+IHN0ZXZlQG1pY2hp Z2FuYnJvYWRiYW5kLmNvbQ0KPiB3d3cubWljaGlnYW5icm9hZGJhbmQuY29tDQo+DQo+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEhpZXUgTGUgW21haWx0bzpoaWV1LmxlQHZl cmlrc3lzdGVtcy5jb21dDQo+IFNlbnQ6IFdlZG5lc2RheSwgT2N0b2JlciAxMiwgMjAxNiAxOjAw IEFNDQo+IFRvOiBTdGV2ZSBHbGFkZGVuDQo+IENjOiBCYXJyeSBCeWZvcmQ7IGxpbnV4LWJsdWV0 b290aEB2Z2VyLmtlcm5lbC5vcmcNCj4gU3ViamVjdDogUmU6IEhvdyBjYW4geW91IHNldCBUcmFu c21pdCBwb3dlciBsZXZlbCBpbiBCbHVldG9vdGggTEUgbW9kZSBmb3IgYW4gTEUgYmVhY29uPw0K Pg0KPiBIaSwNCj4NCj4gSW4gbXkgb3BpbmlvbiwgdGhlIG9ubHkgd2F5IEkgY2FuIGZpbmQgdG8g aW5jcmVhc2UgdGhlIHR4X3Bvd2VyIGlzIHRvDQo+IHJlY29tcGlsZSB0aGUgbGludXgga2VybmVs LiBUaGVyZSBtYXkgYmUgYSBiZXR0ZXIgd2F5DQo+DQo+IEl0IHNlZW1zIHRoYXQgYmx1ZXRvb3Ro IHN0YWNrIHdpdGhpbiBrZXJuZWwgc2VwYXJhdGVkIGludG8gdHdvIGNsYXNzZXM6DQo+IDEuIElu cXVpcnkgVHhfcG93ZXIuDQo+IDIuIEFkdmVydGlzZSBUeF9wb3dlci4NCj4NCj4gQW5kIHRoZSBk ZWZhdWx0IHZhbHVlIGlzIDAuDQo+DQo+IFlvdSBjYW4gdGFrZSBhIGxvb2sgYXQ6DQo+ICpoY2lf YWxsb2NfZGV2KHZvaWQpICBmdW5jdGlvbiB3aXRoaW4gbmV0L2JsdWV0b290aC9oY2lfY29yZS5j IGZpbGUNCj4gaGRldi0+aW5xX3R4X3Bvd2VyID0gSENJX1RYX1BPV0VSX0lOVkFMSUQ7IGFkdl90 eF9wb3dlciA9DQo+IGhkZXYtPkhDSV9UWF9QT1dFUl9JTlZBTElEOw0KPg0KPiBIb3BlIGl0IHdp bGwgYmUgaGVscGZ1bCB0byB5b3UuDQo+DQo+IFJlZ2FyZHMsDQo+IEhpZXUuDQo+DQo+IE9uIFdl ZCwgT2N0IDEyLCAyMDE2IGF0IDEyOjUyIEFNLCBTdGV2ZSBHbGFkZGVuIDxzdGV2ZUBtaWNoaWdh bmJyb2FkYmFuZC5jb20+IHdyb3RlOg0KPj4gVGhhbmtzISENCj4+IFllcyBpdCdzIG5pY2UgdG8g aGVhciBmcm9tIHNvbWVib2R5Lg0KPj4NCj4+IEkndmUgYmVlbiBzY291cmluZyB0aGUgd2ViIHNv IGZhciB0byBubyBhdmFpbCBvbiB3aGF0IEkgdGhpbmsgc2hvdWxkIGJlIGEgc2ltcGxlIGFuZCBh Y2Nlc3NpYmxlIHNldHRpbmcuDQo+PiBJdCdzIG9idmlvdXMgZnJvbSB0aGUgc3BlY3MgdGhhdCBt b3N0IGNoaXBzIGhhdmUgYSBwcm9ncmFtbWFibGUgKHNldHRhYmxlKSB0cmFuc21pdHRlciBwb3dl ci4NCj4+IEFuZCB3aXRoIGJlYWNvbnMgaXQgaXMgdmVyeSBpbXBvcnRhbnQgYW5kIGV4cGVjdGVk IHRoYXQgb25lIHNob3VsZCBiZSBhYmxlIHRvIGFkanVzdCB0aGUgdHJhbnNtaXR0ZXIgbGV2ZWwu DQo+PiBBbGwgb2YgdGhlIHNlcmlhbCBib2FyZHMgZG8gaXQgd2l0aCBzaW1wbGUgQVQgY29tbWFu ZHMuDQo+Pg0KPj4gSSBqdXN0IGRvbid0IGdldCB3aHkgdGhlcmUncyBubyBkb2N1bWVudGF0aW9u IG9uIGhvdyB0byBkbyBpdCB3aXRoIGEgVVNCIGRldmljZSEhDQo+Pg0KPj4gVGhleSBzZWxsIGNs YXNzIDEgYmx1ZXRvb3RoIHVzYiBkb25nbGVzIGZvciBhcHBsaWNhdGlvbnMgdGhhdCByZXF1aXJl IG1vcmUgcmFuZ2UgKDEwMG0pIGlzIHF1b3RlZCBvbiBtb3N0IGNsYXNzIDEgcHJvZHVjdHMuDQo+ Pg0KPj4gSSdkIGV4cGVjdCB0aGVyZSBzaG91bGQgYmUgYSBzdHJhaWdodCBmb3J3YXJkIGVhc3kg dG8gc2V0IHBvd2VyIGluIExFIG1vZGUgdG8gZ2V0IG1vcmUgcmFuZ2Ugb3Igc2F2ZSBwb3dlciBh bmQgbGltaXQgcmFuZ2Ugd2hlbiB3YW50ZWQuDQo+Pg0KPj4gQnV0IEknbSByZWFsbHkgbm90IGZp bmRpbmcgdGhpcyBpbmZvcm1hdGlvbiBvdXQgdGhlcmUhDQo+Pg0KPj4gSSBkb247dCB1bmRlcnN0 YW5kIHdoYXQgSSBhbSBkb2luZyB3cm9uZyBvciB3aHkgdGhpcyBpcyBzbyBkaWZmaWN1bHQNCj4+ IHRvIGZpbmQuICA6KQ0KPj4NCj4+DQo+Pg0KPj4NCj4+DQo+Pg0KPj4NCj4+IE9uIDExIE9jdG9i ZXIgMjAxNiBhdCAxNzo1MCwgU3RldmUgR2xhZGRlbiA8c3RldmVAbWljaGlnYW5icm9hZGJhbmQu Y29tPiB3cm90ZToNCj4+PiBJcyB0aGlzIHRoaXMgbGlzdCBqdXN0IHNvbWUga2luZCBvZiBhdXRv bWF0ZWQgcGF0Y2ggYW5ub3VuY2VtZW50IGxvZyBhbmQgbm90IGFuIGFjdHVhbCBtYWlsaW5nIGxp c3Qgd2hlcmUgeW91IGNhbiBhc2sgYW55dGhpbmcgYWJvdXQgYmx1ZXRvb3RoLg0KPj4+IFRoaXMg aXMgYWxsIEkgaGF2ZSBzZWVuIGhlcmUgZm9yIHRoZSBwYXN0IGZldyBkYXlzPw0KPj4+IFdoZXJl IGNhbiBJIGFzayBhbiBhY3R1YWwgcXVlc3Rpb24gYWJvdXQgYmx1ZXRvb3RoPw0KPj4NCj4+IFRo ZXJlIGFyZSBzb21lIHJlYWwgaHVtYW5zIGhlcmUgdG9vISAgOi0pDQo+Pg0KPj4gSWYgeW91IGxv b2sgYmFjayBvbiB0aGUgYXJjaGl2ZSBvZiB0aGlzIGxpc3QgeW91IHdpbGwgc2VlIGEgbWl4dHVy ZQ0KPj4gb2YgcXVlc3Rpb25zIGFuZCBwYXRjaCByZXF1ZXN0cy4NCj4+IG1hcmMuaW5mby8/bD1s aW51eC1ibHVldG9vdGgNCj4+DQo+PiBJJ3ZlIGtlcHQgcXVpZXQgYXMgSSdtIG5vdCBzdXJlIEkg Y2FuIGFuc3dlciBxdWVzdGlvbnMuIFRvIG9mZmVyIHNvbWUNCj4+IHNoYXJlZCBleHBlcmllbmNl LCBJIGNhbiBzYXkgdGhhdCBJJ3ZlIGJlZW4gZXhwZXJpbWVudGluZyB3aXRoDQo+PiAoRWRkeXN0 b25lKSBiZWFjb25zIG9uIExpbnV4IHNpbmdsZSBib2FyZCBjb21wdXRlcnMgYWNjZXNzaW5nIEJs dWVaDQo+PiB0aHJvdWdoIHRoZSBEQnVzIEFQSSB1c2luZyBQeXRob24uIEkgYWxzbyBoYXZlIG5v dCBmb3VuZCBhIHdheSB0bw0KPj4gY2hhbmdlIHRoZSBwb3dlciBsZXZlbCBvZiBhZHZlcnRpc2Vt ZW50cyBlaXRoZXIuIEZvciB3aGF0IEknbSBkb2luZywNCj4+IGp1c3QgbWFraW5nIHN1cmUgdGhl IFRYIHBvd2VyIGluIHRoZSBFZGR5c3RvbmUgYWR2ZXJ0IG1hdGNoZXMgd2hhdA0KPj4gdGhlIGRv bmdsZSBpcyBhY3R1YWxseSBicm9hZGNhc3RpbmcgaGFzIGJlZW4gZ29vZCBlbm91Z2guDQo+Pg0K Pj4gU29ycnkgSSBjb3VsZG4ndCBiZSBvZiBtb3JlIGhlbHAuDQo+Pg0KPj4gUmVnYXJkcywNCj4+ IEJhcnJ5DQo+Pg0KPj4+DQo+Pj4NCj4+Pg0KPj4+DQo+Pj4gU3RldmUgR2xhZGRlbg0KPj4+DQo+ Pj4gTWljaGlnYW4gQnJvYWRiYW5kIFN5c3RlbXMNCj4+PiBDb25uZWN0aW5nIFlvdXIgQnVzaW5l c3MhDQo+Pj4NCj4+Pg0KPj4+DQo+Pj4gKzEgNzM0LjUyNy43MTUwIERpcmVjdA0KPj4+ICsxIDI0 OC4zMjcuNDM4OSBGYXgNCj4+PiBzdGV2ZUBtaWNoaWdhbmJyb2FkYmFuZC5jb20NCj4+PiB3d3cu bWljaGlnYW5icm9hZGJhbmQuY29tDQo+Pj4NCj4+PiBfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fDQo+Pj4gRnJvbTogU3RldmUgR2xhZGRlbg0KPj4+IFNlbnQ6IFN1bmRh eSwgT2N0b2JlciAwOSwgMjAxNiAxMjoxMSBQTQ0KPj4+IFRvOiBsaW51eC1ibHVldG9vdGhAdmdl ci5rZXJuZWwub3JnDQo+Pj4gU3ViamVjdDogSG93IGNhbiB5b3Ugc2V0IFRyYW5zbWl0IHBvd2Vy IGxldmVsIGluIEJsdWV0b290aCBMRSBtb2RlIGZvciBhbiBMRSBiZWFjb24/DQo+Pj4NCj4+PiBI aSwNCj4+PiBNeSBuYW1lIGlzIFN0ZXZlIGFuZCBJIGFtIGxvY2F0ZWQgaW4gQW5uIEFyYm9yIE1p Y2hpZ2FuIFVTQS4NCj4+Pg0KPj4+IEkgYW0gbmV3ICBibHVldG9vdGggTEUgYW5kIGxhdGVseSBh bSBvYnNlc3NlZCB3aXRoIEJsdWV0b290aCBMRSBiZWFjb25zIGFuZCB0cnlpbmcgdGhlbSBvdXQu DQo+Pj4NCj4+PiBJIGhhdmUgcmVhZCBhcnRpY2xlIGFmdGVyIGFydGljbGUgYW5kIHBhZ2UgYWZ0 ZXIgcGFnZSBhYm91dCBob3cNCj4+PiBwZW9wbGUgaGF2ZSBzZXR1cCB1cCBiZWFjb25zIHdpdGgg VVNCIEJUIDQuMCBpbnRlcmZhY2VzIGFzIHdlbGwgYXMgc2VyaWFsIGJsdWV0b290aCBib2FyZHMu DQo+Pj4NCj4+PiBJIGFtIGN1cnJlbnRseSBleHBlcmltZW50aW5nIHdpdGggYSBiZWFjb24gcnVu bmluZyBvbiBhIFJhc3BiZXJyeSBQaS1CIGFuZCB1c2luZyBhbiBleHRlcm5hbCBVU0IgQmx1ZXRv b3RoIDQuMCBjbGFzcyAxIGRvbmdsZS4NCj4+Pg0KPj4+IE15IGZydXN0cmF0aW9uIGlzIHRoYXQg SSBoYXZlIG5vdCBiZWVuIGFibGUgdG8gZmluZCBhbnkgdXNlZnVsDQo+Pj4gaW5mb3JtYXRpb24g aW4gaG93IHRvIGNoYW5nZSB0aGUgVHJhbnNtaXR0ZXIgcG93ZXIgbGV2ZWwgd2hlbiBpbiBMRSBt b2RlLg0KPj4+DQo+Pj4gVGhlIGRvbmdsZSBhcHBlYXJzIHRvIGJlIHdvcmtpbmcgYXQgZGVmYXVs dCBsZXZlbCBiZWxvdyB6ZXJvIGRibS4NCj4+Pg0KPj4+IFRoZSB3aG9sZSBwb2ludCBvZiBidWls ZGluZyB5b3VyIG93biBiZWFjb24gdGhpcyB3YXkgaXMgdG8gYmUgYWJsZQ0KPj4+IHRvIGN1c3Rv bWl6ZSBpdCBhbmQgc2V0dGluZyB0aGUgcG93ZXIgbGV2ZWwgaXMgYW4gaW1wb3J0YW50IGtleSBp dGVtIHRoYXQgc2hvdWxkIGJlIGVhc2lseSBhY2Nlc3NpYmxlIHlldCBJIGZpbmQgdGhhdCBOT0JP RFkgZXZlciBldmVuIG1lbnRpb25zIGl0IGxldCBhbG9uZSBkbyB0aGV5IGV4cGxhaW4gb3IgcHJv dmlkZSBhIHdheSB0byBzZXQgdGhlIHBvd2VyLg0KPj4+DQo+Pj4NCj4+PiBFdmVyeSB0ZXh0IHRo YXQgSSBoYXZlIGZvdW5kIHRoYXQgZGV0YWlscyBiZWFjb24gc2V0dXBzIGZyb20gY29tbWFuZCBs aW5lIG5ldmVyIGJvdGhlciB0byBtZW50aW9uIHNldHRpbmcgYmVhY29uIFRYIHBvd2VyLg0KPj4+ DQo+Pj4gQWxsIHRoZSBwYWdlcyBJIGhhdmUgZm91bmQgc2VlbSB0byBjb3B5IGVhY2ggb3RoZXIg YW5kIHJlcGVhdCB0aGUNCj4+PiBzYW1lIGluZm9ybWF0aW9uIG92ZXIgJiBvdmVyIEJ1dCBuZXZl ciBnZXQgYXJvdW5kIHRvIGV2ZW4gbWVudGlvbmluZyBvciBkaXNjdXNzaW5nIHNldHRpbmcgdGhl IHBvd2VyIG91dHB1dCBsZXZlbCBvZiB0aGUgYmx1dG9vdGggZG9uZ2xlLg0KPj4+DQo+Pj4gc3Vk byBoY2l0b29sIC1pIGhjaTAgY21kIDB4MDggMHgwMDA4IDFFIDAyIDAxIDFBIDFBIEZGIDRDIDAw IDAyIDE1IFsNCj4+PiA5MiA3NyA4MyAwQSBCMiBFQiA0OSAwRiBBMSBERCA3RiBFMyA4QyA0OSAy RSBERSBdIFsgMDAgMDAgXSBbIDAwIDAwDQo+Pj4gXQ0KPj4+IEM1IDAwDQo+Pj4NCj4+PiBUaGUg Ynl0ZSBqdXN0IGxlZnQgb2YgdGhlIGxhc3Qgb25lIGlzIHRoZSAicmVwb3J0ZWQiIFRYIGxldmVs IHRoYXQgeW91IGFyZSB0cmFuc21pdHRpbmcgYXQuDQo+Pj4gV2hpY2ggbWVhbnMgeW91J3JlIHN1 cHBvc2VkIHRvIGtub3cgKG9yIGd1ZXNzPykgd2hhdCBkYm0gbGV2ZWwgeW91IGFyZSBhY3R1YWxs eSB0cmFuc21pdHRpbmcgYXQgYW5kIHNldCBpdCBoZXJlIHRvIGRpc3BsYXkgdG8gdGhlIHdvcmxk IHdoYXQgeW91ciB0cmFuc21pdHRlciBsZXZlbCBpcyBzZXQgdG8gc28gdGhleSBjYW4gcmFuZ2Ug KGd1ZXNzIG9yIGVzdGltYXRlIGRpc3RhbmNlIGZyb20gVFgpLg0KPj4+IFRoaXMgdmFsdWUgZG9l cyBub3QgaW5mbHVlbmNlIG9yIHJlZmxlY3QgYWN0dWFsIHRyYW5zbWl0IHBvd2VyLg0KPj4+DQo+ Pj4gUGxlYXNlIGhlbHAhIQ0KPj4+DQo+Pj4gQ291bGQgdXNlIGFueSBwb2ludGVycy4NCj4+Pg0K Pj4+IEknbSBhIGhhcmR3YXJlIGd1eSBhcyB3ZWxsIHNvIG5vdCB2ZXJ5IGV4cGVyaWVuY2VkIGlu IHNvZnR3YXJlL3Byb2dyYW1taW5nIGJ1dCBJJ20gd2lsbGluZyB0byB0cnkgYW55dGhpbmcgdG8g Z2V0IGNvbnRyb2wgb2YgdGhpcy4NCj4+Pg0KPj4+IEJlZW4gYXQgdGhpcyBmb3Igb3ZlciBhIHdl ZWsgYW5kIGhhdmUgc29tZSB3b3JraW5nIGJlYWNvbnMgYnV0IG5vIGNvbnRyb2wgb2YgdHJhbnNt aXQgcG93ZXIgbGV2ZWwuDQo+Pj4NCj4+PiBBbSB1c2luZyBUcmVuZG5ldCBVU0IgZG9uZ2xlcyB3 aGljaCBhcHBlYXIgdG8gdXNlIGEgQ2FtYnJpZGdlIENoaXAuICBCdXQgSSdtIG5vdCBleGFjdGx5 IHN1cmUgd2hpY2ggY2hpcC4NCj4+Pg0KPj4+DQo+Pj4gOn4jIGxzdXNiDQo+Pj4gQnVzIDAwMSBE ZXZpY2UgMDA3OiBJRCAwYTEyOjAwMDEgQ2FtYnJpZGdlIFNpbGljb24gUmFkaW8sIEx0ZA0KPj4+ IEJsdWV0b290aCBEb25nbGUgKEhDSSBtb2RlKQ0KPj4+DQo+Pj4NCj4+PiByb290QHJhc3BiZXJy eXBpOn4jIGhjaWNvbmZpZyBoY2kwDQo+Pj4gaGNpMDogICBUeXBlOiBCUi9FRFIgIEJ1czogVVNC DQo+Pj4gICAgICAgICAgQkQgQWRkcmVzczogMDA6MTU6ODM6RUE6MEE6QjkgIEFDTCBNVFU6IDMx MDoxMCAgU0NPIE1UVTogNjQ6OA0KPj4+ICAgICAgICAgIFVQIFJVTk5JTkcNCj4+PiAgICAgICAg ICBSWCBieXRlczo3ODAgYWNsOjAgc2NvOjAgZXZlbnRzOjUwIGVycm9yczowDQo+Pj4gICAgICAg ICAgVFggYnl0ZXM6MTExMCBhY2w6MCBzY286MCBjb21tYW5kczo1MCBlcnJvcnM6MA0KPj4+DQo+ Pj4NCj4+Pg0KPj4+DQo+Pj4NCj4+Pg0KPj4+DQo+Pj4NCj4+Pg0KPj4+DQo+Pj4NCj4+Pg0KPj4+ DQo+Pj4NCj4+PiAtLQ0KPj4+IFRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBsaXN0OiBzZW5kIHRo ZSBsaW5lICJ1bnN1YnNjcmliZQ0KPj4+IGxpbnV4LWJsdWV0b290aCIgaW4gdGhlIGJvZHkgb2Yg YSBtZXNzYWdlIHRvDQo+Pj4gbWFqb3Jkb21vQHZnZXIua2VybmVsLm9yZyBNb3JlIG1ham9yZG9t byBpbmZvIGF0DQo+Pj4gaHR0cDovL3ZnZXIua2VybmVsLm9yZy9tYWpvcmRvbW8taW5mby5odG1s DQo+PiAtLQ0KPj4gVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIGxpc3Q6IHNlbmQgdGhlIGxpbmUg InVuc3Vic2NyaWJlDQo+PiBsaW51eC1ibHVldG9vdGgiIGluIHRoZSBib2R5IG9mIGEgbWVzc2Fn ZSB0bw0KPj4gbWFqb3Jkb21vQHZnZXIua2VybmVsLm9yZyBNb3JlIG1ham9yZG9tbyBpbmZvIGF0 DQo+PiBodHRwOi8vdmdlci5rZXJuZWwub3JnL21ham9yZG9tby1pbmZvLmh0bWwNCj4NCj4NCj4N Cj4gLS0NCj4gLS0tLSBIaWV1IExlIC0tLQ0KPg0KPg0KPg0KPg0KPiAtLQ0KPg0KPiBKb3NlcGgg U2h5aC1JbiBId2FuZw0KPiBFbWFpbDogam9zZXBoc2loQGdvb2dsZS5jb20NCj4NCj4gTiAgIHIg eSAgIGIgWCDHp3YgXiAp3rp7Lm4gKyB7IG5bIC0gKSAgIHcqamcgHiAg3aJqLyAgIHog3pYgIDIg 3pkgICAmICnfoSBhDQo+ICAgfyAeIEcgIGggDyBqOit2IHcg2aUNCg0K ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2016-10-24 21:24 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-09 16:11 How can you set Transmit power level in Bluetooth LE mode for an LE beacon? Steve Gladden
2016-10-11 16:50 ` Steve Gladden
2016-10-11 17:38 ` Barry Byford
2016-10-11 17:52 ` Steve Gladden
2016-10-12 5:00 ` Hieu Le
2016-10-12 7:22 ` Johan Hedberg
2016-10-12 15:33 ` Steve Gladden
[not found] ` <CAHFy41_8FzDF-jATapn20Km8vbX6nt44DN9uPnazDMOJ_yD=Kw@mail.gmail.com>
2016-10-13 13:54 ` Steve Gladden
2016-10-16 21:56 ` Steve Gladden
2016-10-16 22:48 ` Jason Anderssen
2016-10-17 4:15 ` Steve Gladden
2016-10-19 7:22 ` Andrei Emeltchenko
[not found] ` <E870213FE4F9C248AE722569E8374C6A386A32B414@X2.michiganbb.local>
2016-10-24 21:24 ` Steve Gladden
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).