[PC-BSD Commits] r116 - in pcbsd/trunk: NetworkManager NetworkTray ethernetconfig/src wificonfig

svn at pcbsd.org svn at pcbsd.org
Thu Mar 1 11:28:56 PST 2007


Author: kris
Date: 2007-03-01 20:28:55 +0100 (Thu, 01 Mar 2007)
New Revision: 116

Modified:
   pcbsd/trunk/NetworkManager/networkman.ui
   pcbsd/trunk/NetworkManager/networkman.ui.h
   pcbsd/trunk/NetworkTray/NetworkTray.cpp
   pcbsd/trunk/ethernetconfig/src/ethernetconfigwidget.cpp
   pcbsd/trunk/ethernetconfig/src/ethernetconfigwidget.h
   pcbsd/trunk/ethernetconfig/src/ethernetconfigwidgetbase.ui
   pcbsd/trunk/wificonfig/wificonfigwidgetbase.ui
   pcbsd/trunk/wificonfig/wificonfigwidgetbase.ui.h
Log:
Add MAC address support, include netmask in network tray app. 

Modified: pcbsd/trunk/NetworkManager/networkman.ui
===================================================================
--- pcbsd/trunk/NetworkManager/networkman.ui	2007-02-28 19:40:20 UTC (rev 115)
+++ pcbsd/trunk/NetworkManager/networkman.ui	2007-03-01 19:28:55 UTC (rev 116)
@@ -748,6 +748,14 @@
                     <cstring>TabPage</cstring>
                 </property>
                 <attribute name="title">
+                    <string>Bluetooth</string>
+                </attribute>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>TabPage</cstring>
+                </property>
+                <attribute name="title">
                     <string>Firewall</string>
                 </attribute>
             </widget>
@@ -756,7 +764,7 @@
 </widget>
 <images>
     <image name="image0">
-        <data format="PNG" length="4975">89504e470d0a1a0a0000000d4948445200000040000000400806000000aa6971de0000133649444154789ced5b7f505cd775feb057d2c386ccc3959ca5113634b22ca91b0714ec00951d70d45a168a43218a6c11453644b125a2242aa48eba681acdc24c54a00dedeeb44a7713d3ecd68db290a9b48b3334a00499c5830c4e85411ec12c1a49dd65305d36183f5ed0b3bffe71df836585642091e44c7366de1cceeebefbde77ce77cf3df707c0ff7349b8d90f90326dab25546e55b5da2d12a41c15eafd92c9ba5ad56a219924a89a0a09d65115b5c39249ea5535f5172aac3fc79b774dddec77bba922672adb648bd5979ecfab65dff29297489ee3c2322994af838c04c8dc9df6693953f90fc962dd72bb712c59248b355fb6d87e557cd04dce908aa2839c59582bd7f97ce042849106327d8bedb49c69cdbeddb83e50cc162549b2585fea7291ecd3c118e0f50833120736721d3d395fdb1a78353d87f548b749b71be782225b940de66cdb309bc8c898406d684507110a4574addcd036ee0bc5b5d3d51364c1333c2b592ad7de6ebcf344b6285bccd9b677a8901cd32317ba4e64838bd463d7b12f90050e86258b75c3edc60d40809733adef703236920b47307449e8de73a11beae0a5c8bcfbe3dbe93d17626ed187c00!
 972a6922e59ac610e526478c668830146e406851ad0357b84eaeab98e6d443e14a78df63b48730e87a475b6d5b7077dbe62922cd6d78bf78b6c4d92c1609cd6236ed8ed9d417286f475187a6041bb3d109ccf24a39d4bf3db3f70c44bd9623d755bf04b16eb77dc5b496f4b5c642ec445b093e424e96d1d2023a4b795babe811d1b717d3419b830bf7d8349e66c1be54ce5d95b0d3e5dceb44d1f38ec2367c8a0ce808173bad66d5f47900c91ce13bd4bd2ed9dc16b99439d219c9f33cabe454a16ebdb72a64dbe650e902dca4b053b9d8c74905d81b848197dbc53b0c0ded4455e20ed4dd4f522ec49cee50e9d59de56d19eaf4dffae537c6e77f5d2994fca16ebdf2e17cf9d4bf9b139db669ed24effeb430f549986a21dd8bb2b03819e30d21e4e4647f7081e494f41e0cd30d2fa93511fec80a63d86c0c500bea9a5a1fe4a00da4cde9c7d31ee7bdd4e4d9d40cac7123172790229698918199a40dea713d177258ccfe426233018465a6e320267c328195b8f86abcd18ba546e5157e29f3079465bae231625b2c55625672accda6667a483f4e97dd6ded445a587b4358808d91ada676da1dbc973f3edf8ef951e31179897038271ccd2e712ed06038e93914ed29c63a36c519e5e0ea6253140bad7ff77eafbb5f74d291a9aba7ae05897878ee80886420fa1fb5207aaefca4!
 0f3bb8378e1c94770f454079e5733501bf443d59e404fa803e58a6eab4fe0f!
 4453f2ab
4f5b3df5f5402282d4e43f8ed69247f740546462690929188c1a1096c7a30117dfd61a47e4244feb1dc64787e3a88f2c81ad40e7740bdba1717c78e421b3bf393e538615122672ab26cb152ce54285b6c9433156edc5a4786f4bea990f6a65e463a49a74744a8ced5450e92070efb186c250f1c7633e8515876b04eb7bdbaf689fe6e548c710c30ea88d93aa1537c66ad6da7d249961df251ce542696836bf10c588dad2693b45bd54ec3647a11aa560b5505dace0de16b339b71ecf50e7c7b5f1e1a5e09a0ffad34b475fb311afa2c4efeaa19dafb9f47ffa80353932368bb320e93f402da863d0076a16db819c0e7313ed387cd8fa4221c9e46726a0c03ce4f60cdc64404ce8691f770323ace8c20233b058e537de80fe6a17f3280f1e867d11f3c2a99ee79ac591b3f33b61c477ca0c899ca378dc8c732c19cad70fb3e37bb9a48ef499103ec4dbdfad025faadf5681d079ac8e2fde277b1bad72374b03526e2717545af31bb0c909c21dd2706c87364e511b2b7894cdf52473953a164b1952c15d75218f0b4c9f4628eaad5c264926030616aa61613d129f4ffef10862f6ec6f84c1f2abebc197d6f88acedf8b103df4efa268e8df9313a5682b6611712dedf8bb661171257eec595193f2453095afa3c786afc215c593dd7f7d73c9088be37c2d89c958c40771869d9c9f0f8!
 0651faee26d40ff7e13b522a1cd100fa2f5c4654f92f4878b1471dabed5eaa131625b24579293e07c433216b879d914e3d5224dd4d6e91b9f53ebc7d9f9bbe063277a793058d64f13e37239de4ee837a2e382272c5ee835eb61f27cbbee5156b077adff79e14ecb0bb04b36c8d5d1c38c1d8f759723db07806dc8b229349ca8ccd01f14c989ad290946e425e611afcad7e8c5c29c1c4dd7d58ffe954842f4fe3f992cdf8feab7ebc3dbe0bd1fe7aa8332fe007671c58b1622f9afb5c786f66178e9f76404bd88bcea00bbf992985b462109bb6ac4173eb204ab2d7c0f5cb413cafad417d3080fe0b7938dc540dccbdcf2fd4d1d3bf5caa1316258201baa7336dd765020749ef8976312a38bca20f1b6b8131f3fe602b999e5fc78df942bb77084664ed9863406e9193032d7abd3146ba4f887bedae5eb28731ef615d3603ee58ec0f55d48ec3540955ab852401aa560bc386499ab50beb5c28d9f9383c3ff5a0422a414777189b3f01f4f54f0019c0e090d0f5679aa1aa559898aa81aaaa7024ba00ad1492c985e854091a5ef52025a51c5f79d985420be0797510a53980e34c1f2ab01935dd01009590a486b9e7c31a5daa03162db245f99ae1e9f4fcba6b226fd83ebd1a640fe96c6a177d58cf090613bc27c9dc22326b9b9dee6d4277b9c8ed7bdc6c779005cf08bd7d8f9b03!
 2748778ba80d9c9e013167384eb28f34e7d4d15b143b0a583fbf545c4bc901!
 77994cd2
b3aa761a69f75463347a745e0e30724274550f763d9d07c77fbaf0fcca12f87f3d82f58fa6886cfec9640c9e9fc023bd89f8feb003b8a302dd773890717f05de883443fec82e9cbdd28cf7b45de8b8e8c28a3bf66268c68f6fffe57ab84e0fa25cdb04c7701f2ab45454bce6873af52c523e13c0c52bbb301a3d0a0047b4b13391a53a615162b62849b2c57a55ce54b8715b1dcd395c3007848c39fd24e97489713b7ed658bccf4d6f1199b5c3ce8206b2ec9097032df3756f93604257933eee0763b27f4317cdd964f173eed85c105e0eae45e780d137ef9a02acbf50b55a4cab404a52fd8239e06b3fa9070084a7c2287f12f0bf3a82bc6ca0a33b0cac034abfeec148b814b59a034005a2a71d88aa256838d30c984a50ab6bd75bcdf0ac2b8567d883d2ab9be0e9ee40850438ce06109dca4354ad862c97a2f447cd000055abfdf9721cb024912cd6afc8990acdd936163472c1d1c0bd4d999bc59d1b989b2bcc90d663edf43592b9457691038aecf4169105cf38196a236d0d5e51fd19b342635dc0d84730f61906459578e0889be95b74265a94c2e5605ad2dea09c6993554dbd2c99ac4919e93f00b40a9cbf580dc96485b1d707a8983854037c59dc333232828cd51968fe5907bacf3f0ec083e9a9524072216375395253fd28dd598891a111643c90014c0348047015c08!
 a393d3d3d8dc4c4c46bdec9f3ef7e385e2ebcd2edcbcb00ba6fee7a807082f23dd962a573ab88dc46b122335711e628dcbea78ef3c48860fc7e41bcc447fa520c9362eb8849ce93de9edeab9ce417968367c9bbc352a675b5a449433041ce7aa01a2a1c0887a7311a8d4232592127352035b51ac55b3ca8fa7ae9ec7d136f4f20654dcaac9e153dc213e109a4a4a6c07fca8fc2cb85a8ba528ff07815a26a0da001d05438d7d5a0c3d28cd2dd25085f0e23352d75b699407740cbdb90f7b9847b127eb61c472c49648bf505a31ef0350a26a4e79372b68dee6d64c11e27d947da8e79196925bd2d3e7292eceaec1221d36775de135e91d56b9d0cb690bb0fdad9db446e7fcea9d7034efa1a459d603cafdd41961d14eb10b38cd0a5abb3eb6d46b8a4bd82659f0f902cd6572493b42d636d0ae4e40ac0e482fa4e3954d5818cb40ae466f7a1cab4198f9faa86aa5640921a909228012600b042921c50b52ac0e402500e680ec054015515a3c3b43e4a4073203a5d01a01e72721554e8cf99aac6e0733518797404191919b339c27fcaefdcf1d48e7d8bc5b1e861f01a0748d63dd0d4e1f0681900176af2cb91bac603e79e0a48920755599b513305d4efac414a8a0bd5b062621aa8c8b642d51a5091590568f5a8cc2e173a4780b56ea900e0404d7e05124d0ed46cab4046aa0bf!
 59fd39d955d8e912b350847adaf57fdaafab90c7306f00e44821c020af30bb!
 fe43be95
b340b7eab1322b225b20126c7695996cc9b3252204be580c983547329e4a40e54273d8e8a8b7e402b4474ca0535ba1baa5a0b49d277b94dd500eae79c6aaa82aa3341925c90a572a8260fa2e3a5503517a6d5729c1faa81aae12d558d16a86f358c3a8f3bfbcbbf5a6e31daf0bfe247614ee10b09f7241cff6db02d5ad2b77043fa96bacb593bc4cace408b98d72b3da4ad515f0d6e14abbfd6867646dac8b2434e0e78c8ddfbc44a51d97e3b074e88cf4327c9ca236e865ac5383f70822cde277242fa161bd373785eda60331bcf6727bf376f749824bd27bc2f2ff6fd7f276784366e612aa4fa9fc849557f969aea817975291293fc30271502a600aa4c797020800a531e1ce8438569331c9a98d539d4002a90877aad03c0e350b50e54e271d46a7ea86a2126c63d181d2fc548b81ed0e00b8faacf44df3a327b7ea8aeb6eebb557f53f5a261fb5ff1a370a2f0f584d284877f17d80c49d0af3b01ac0470170019c0bd00d602f8b824c99fc8cab77ebfa0915af17eb7a8ec1a45d5666fea2583fa6af18cbeae3fa9cfef2f914e4fafbe93242abcbae3629fe1c0611fbb5c646e91fd5d677ea416c0fd00cc00ee01900c40e2205f9bad18237abb4dee919b0ddc0ce03e00eb013c04e011008f02f873737ad6570b76d6f514ef77930e1ddc25d2d7268a99f87304b37b896d03e4!
 e49c7de0888fc5fba8e5eeb0b5cbe68d4f0328009007205b7fe68603fb0f7cc9d7ea9b3714fa5a7d64137feb754103f81d3af83b210a5309c0dd988bfe7d00d601b000f894ee84270014a56f28f8c6f63d367fb08593d66322b2ee960151e5e9b57e7ba76084af8d6448443ed241961d7447da1b149f796dd637007c01c053009e04f059fd199fcecdceddea76b9ff2716fcc039e144b7c7ddb414a01fe484d8bf0d3bd62926fd5a01c192bbf52b11c04a98242937a7f8c1d40736fe6986b9fa01496abed79a54925cabf921990aa16a7e54aa85bfae8abac6a2a323c1f3fd81b7cebf79fa1200eacfd2f4eb2a801900335996aca48a43158de565e5f71b95a45119064e07907739efe984bd092d00de03f0fe721d102bf1f582c18ef8cb70821473250258a5ffbd22c67977eaf7c43af683e46a5751d783e1dde1bf2ad95932574fbf0d600d80b300d6e162cafa94dce8787412c261efe3064e302df2c10b35607c663827417fa00ae05dcc81357287843947ac8cd186336ee804f35a7352707f70ef1b056ffc4549eedcfec7c484985bf49dedc3e6cccda8b6551f898e47df5b24ae5b2246125d01c18664882c6e06900e60034452cb06900be031005b016c03f0395996bf5879a8f2879ce4c4ec6cd290b89324cee3ce7f8618296408671b0cfb50c91d587828cd00f0204442!
 cd32af35e7db8ed8fed177d2172149c53872aa4f99834151fdf4f6896d38a7!
 cbf90ac4
a8f451bd6da38b7d38c4d9c7b5db3d7c3618e14bd60efadb035c0f2009736c480390d1dbd8bbcdde60ff21154eceee112a71da382fd0271c6277d83d003602f8630886adc0c2d1bf756c901b28673958b4dd43bb55e179affed23e7dc3b33dc8774221560158939599b5de76d4f6d7f4f0b5de1e1151655299a72363c659a481b9c84f52b51db5d974f01f03f01108761949395e6ea203da28c90dcc779f634d41135f1b18e3d53a7d35d8003f1b4163e547acec0cfbdaa8c6d8d7ead99322faca50806490e78b8b8a8b21ba4d2a44e4af073e7e18ffdd8adcc0d5db9bf8ceee105976922c1b23cb5a49ab42fa0cf0d79188ee9401fd3ca012312a45fde4e885e03cf0be93be49e5a8f2f792247d0ac0c7217248126e4cfb9b071e00ccc7f81592f4f690a108d9abf75db7be13d41b9fbd0d89ffdc580334226d9c0b1415de6fea1aea7ebc71c3c602009b2072c63d10238b6911e06f9e038a9be8f3b68abe6bed981fd960dc02a8e18cdec185bd12d269df15e89a8d785d6dddbf6565673d09315cfe0944a64f8618ea620baa85401b45dbcd117380c9d6939c0eb592f6da03542ecd253a430cdb699cf430be9f99ff3bc3b67b48f6f0bf2b0f56da64597e144026c49ce3630052303feab705bc51dc98ccb5cab39c240f1caa242f15d3ed39c04823e9ed131468d71358bb7e92f!
 41ad0ba7485669d34919553f0148087016441144a6900fe08628eb112f3297f23f0374d122092ceaaae419eb237f9c84185ecb49124eb4ed4b1ab93b49fd4c15def7f85c6e633c4778164845e009fd481df0760b50e7cd57580df72f0c603ef04b06a6343e4e0f663ec1ce8b4454985911e2ba9d4d1d76a251ddb693d2236498c79bef13f42b3cc88d3c587dd5f842891574364f758e0d79b3cdd32e0b162ccfe5601b89becbdc20b07482a649f8d9c51d8db62230364dd717dd122eedcbf013a26470421863523c12dd4cf3f5432db15ec87b3d670a6f8659e2b53c90843011b491b6d476d6423d9de135a10b45124d903eca9bcc42771edb0f6a1041e2b46a65d01601527dbbfccc1dd57c908d929ce0b385bf41da138f0ee73bc4ad257e61a7802c602caf5cbd8df1b49e0d8f60ca5aff83459365d79cc394192ed834a6cc4a7eb02fc87b2101fc4ef59b4172d0c1524f178c1ea5084ff629cf3b3f730acccf0c5b293bc75ffe070bb65770bd32393fc51651bf7161ce56257a0fe207f905b24ff071b0b5b74c8e8db100000000049454e44ae426082</data>
+        <data format="PNG" length="4887">89504e470d0a1a0a0000000d4948445200000040000000400806000000aa6971de000012de49444154789ced5b7f545bf775ffe03c3b8f16721e1d4ec56a27a84d1cdb5352e192d630d21acf5d5c70320ed47562ea3a81ba8d4dbdd683fec8246ff1113e9b076cf5266d738796b04acb4a847b0e96c80e1d728a0f720f8ed4d5363807fb483eb6877cb08f60848a57fc92cffef8be0742c10ed0da4ecf7acf79e7ea3ee97dbfef73effdde7bbf3f04fc3fa78cdbdd816c75e4cab06f52357b890c79bd0af541596acc55353b644986aaa990d1785585fd822cc9615553df50d1f85f389b3171bbdfedb69262e566c562f3e76fe08d9a6ffbc86192a739378d0be60f92c97eb268ab7352b1f23f648bade46ee35830c916db06c5e2f8efcabd1e926432a9839c9a9b276f727f6028c1640b995fe238ae586d85771bd7fb92c9c22cd9627b25dc4632a28331c0eb1666220d6ce2267c7c3677b4f046fe7a3623df21df6d9c739262e16a53a1e302dbc8c488406df0a40e627838a1f3e42d65e3b9e1b476fafaa32c7d96a7644bfd8abb8d7716291696980a1d6f738ae4886eb9e19b58363a4f3e721379882c3dc2b86cb1adbedbb80108f08ad5f63693a9969cdb82c397040f9f1ebe258f5e4acc7a3ebd9df0e96116557c0094a!
 058992f5b6c710e91bca45bc8e0860718961b146c40e7ec17acafff26b261f9e1346eb41f244deb795e7ec8917b77d06fa0245b6c6f56ee16d19a24a3d134ae5bdc907b7a052a7fd0e00373ca3d21214f7b92d1cea5d9edefd9efa362b11dbb2bf8658bed25df26d27734cd32436916ec2599247d5d03e438e9eba2ce6f21a75a5ccf260343b3db373cc954e8a062e573771a7cbe62754cee79d12fb0ea1e30705ae7baec0f46c911b2b53dbc206e78ca7b3d4778486acca8f936295b6cd714ab43b9630a502c7ca5746b2b93bd645f28cd52c618ef155ee16ceb23a3a4b38d3a9f879ce44cecd03dcbd7253efbbb29324aafb8ef7487e9d9402a16db5f2e16cf3d0bf9b1a9d0619ad0baffe5b1871ba4738920767ed98cd0c938563e9e8de0c9183efd500e42a7e35879261bcd1782d0b4cf22140de15bda4a345f0a419b2a9e91a369dfeb72de474791f3b14cc42e8f2267652662e74751fc994c442ec5f1b9a26c84cec6b1b2281ba15371548dacc2a11b1d387fe91b167599f60f183fa12d5611f322c5e26850ac64c1662793bda45f1fb3ceb63e32423a5a84851c2d3d3372449707d3e4f4ef23622e302b0644d33c4b9f4bf4181e70844c8648d37a07150b9f590ca60579807c7ff06fd477ed0f4c2435b84ff4c3f550318263319c1f7e0cbd1783b07fc88c8eb707f1c25!
 39f86fdc7417c533563ff850054ed49f45f09a22ea9cbea93e88e0650afad9!
 afefefc4
408d5952b11bf3689ec8f2e452c368a1c732606cf8f62ed2399889c8923ef5161f9cf1665c3fbe341d42696e3c05010ea8d9db83862873672e2b5c528615ea458a928161b152ba9581c54ace49a4d4de4883e36a748675b98c910d9ea15166a72f79143e49e17fd1cee26f7bce8e1703b59b3b749977d3af70bab1b15639a071875c4749dd04b7288b41dec214364cd3e3f152b4717836bdeeb01b2c5b64596e463aaa642961a61cce70b1ecd43c7ea5ab44841347e67231aff3184d8c562c85901a813e5003a005421477661742c0e156b20cbd550352f64a91aaad60159aa42b13582daedeb108f4f222f2f13b1d828cce61c0c9e1bc5da3539089d8aa3f8f13c044fc4b071bd19ae9723089d5d07f38a1062578a71f4b81dd0f0a8fad6c1b38b51c4fb9262e5b70ccba77a82a9902cdbe561d84bfa3a85159d6d613d7509ebd90e3431ea252b778bdfa5f28176c187bb532c9e5657848dd9a59e753ced03e42059bf9f1cf092f9254d54aca46c71542d14d7fc6340aef68c24bdb45ed5ec902419aad60d497a091353768c8e4de0e7d7cee3c2c575b8ae4650f7957588fc5c446dd7ab2e7c2feb5b38783580ab2355e81a7223e3dd9de81a722373d94e5c540390a52ab4bfe9c5b6eb8f21963b33f6973f9c89c8cfe35857902db28d3ef6ab7fb916cd4311bc24e7e170228433!
 43973196ec828c97fad591032717aa84799162e12be93120dd130ab638990ca558aacd23c6af3e86cb7679d873982cdadaca521759b9cbc36488dcbe578f05fb45acd8bed7c73e3759f36d9f78501ffbbe4e111f9c6ed1a6e3701fa34767bdcf82eb81f97bc0fd5a8524c956c3f27379c2c48406f90109c5152b11381640ec4a1546332358f5993cc42f4fe2ebdbd6c1f54600d7ae6fc3d82f9aa14ebd801ffcd485a54b77e2476fbaf1ced436b87a5cd032762278c18d5f4d55435e3288b5a5cbd1716c1055eb97c3dd3388af6bcbd17c21843343c56878d90eccbccf1bead5e33f5da812e645c203744d5b1d37f5040e91bef61e91155cc28261632d3065de3fdc4de66f68e29a0d82fbb6088f28d832e3014515ad8c76eaf54682f4b48bf8e07487c948ea7bd816ed014be6fb4315f6eb90ec22facb80aad961c890e469b9fcafdca8daba11ded7bca893ab103c19c7ba4781c89951c00c0c9e17bcf1780754b501a3138d5055152d996e40ab862cb931365185836f789193538bea1fba516e05bc6f0ca2ba04701d8fa00eebd0782204c00e596e9ce91f8d630b55c0bc49b1f01b86a6f33734bdc7f286dc7398a2968f90ad6d3db3a2b7e109be4eb2a8425494becd8287dbc8b21d1ef61d214b9f15bc6c8787d1a3a4e7a868b3d53b20e60c474455685adf447f456a16b0fd!
 c942712d24067c4892e4e754ad1b2b3f62c7d5b1d931c08809d797f663db33!
 c570fdd8
8daf2fab422011c3aa27724434ff643606cf8de273e14cb82eb880257538b1c405f383753875bd03ca7ddb70f25207ded1b6a13beac6d2253b31a806f0bdadabe0fec9206ab5b5700d4550a7e5a12e14803af11cb23f17c2c52bdb7075cc0e00fbb5911389852a615e64b2304bb1d86e285672cde6269ad6cf1d0312ddfa384f92ad6ebd824b9b3556eef2d05f21b246e961b2669f8fd1ced97cc02b3c21ecd5f3fea594e8dfd247532159f9bc273516c417836b413b438a853f5161df64ca55902901f1eb0d98b5c32335626341333afeb501f1781c79521e026763282f352378328e8dd63c547fd78b73b16a002e0075005c30afac8322770052d57465284b1d6894aa608717aed5d5f022886a6c844b15959feb353bb67fbe11aad681ae13e7a06aaa473d7b70c76294306f922db6af2a56b11253ea9a3b1bf836cf44fb81d30333730592b6433dec719145154e11032a9cf45790a5cfb63211241d2d3ef1ac312b34d6058c7d04639f6150f4b167bf87f9257aff16962f06d3c23cc0ea50544dbd2c4b8d59e67c17a0d5e1dc45fbacb901a062745f23f015f14c2c1683d96446873f8893e73602f06272a21a90dd30e7d6222f2f80eaade5889d8fc1fcb01998049009e00680a5337c727212999999ef7927efbf07e07ab5fcca497fb11938797bd7038412f87dc562a36793b!
 0dc9a0d6915e17ab26c4713679161c1f4fd82744ab7f4a5144fe28c674def1ce914ee0fdf60925f5c0c9e05ef0ecb565baeacc9e721412978d80e152ec4e393b83a3606596a8492d588bc3c3b2a4bbc68f8d3eae9e746af8d226779ce349f26ddc2a3f151e4e4e520702c80f2cbe568b8d28cf8f5068ca98d80064053e179a8115d960e546faf42fc721c792bf3a69b099d0c69c596e2a732eecbf8cfc5286241a4586c2f18f5408f4b7842fe06522974d0b7992cddd14a9e261d877c4c7693bea37e3249f6f5f60993e959c1d7ee1351fd602b873bc9ed7b9d1cf09265cfb7eaf5402b7b5ca24e30faeb3b22d6133892e2113af5f5f65de33817b457b0e8f301b2c5f6ba2cc99bcd2b72a064d701921beadbb5505511d58b0a236890d661e3313b54b51eb27c103999322001402364b919aad600486e00b580e602a43aa8aac80e939a9e253417c626eb003443c96e800abd9f093b069f6f44ec8918cc66f3748c081c0bb46e797acbaec5e29a372985cc552cb6f3a64261a9709bc8ef03ede4f6bd223f3b0e9303ed64d9b30ef65524595a61639f4bc8e12364e58e2686dd64e5f3067732ec26cb76a4f036b272572bfbdcc2b38a0e4f679f53f5fb6ccf712a25260c914c72d2dfe99fb717fc5a2744144b7235a496e38a229bd69a73a0c8b580e4459ea91a4a5610f6ac8da8b!
 b1800b4728c4db8a18ed54255ed90657d975bb203689e6e4f961aa0ea9e20c!
 b6e28722
d54c98bb1ebd550353726d55a9c3bdf0855c35baa3a56aabed572b5f548eb99daafd55a8c3602af07505e52fe42c67d19477e1d6cf3a6fc12aece2f69ba5cb045acec443bc5bc5e7880be1a7c986484b4b5f43019246bf6b532da4e6edf25568a6a763b193d2aee27bac8fafd1e26ba459e8f1ed53de008995fe260fe7a9e93573b4c46ff0cf1fbb3b24392f4b5fb5e9deffbff46ce08ad29611ee4e6d794ac863fcccbf3c2945b8dccac004c59e580144283540c1742a8938ae1420475d23ab83431ab73a921d4a118cd5a10c046a85a10766c845d0b4055cb317add8babd7ab118b37031afcf1abeab3636fed9f3e3fd474b0e9af1bfebce1bb861c783d80f2d1f23733aa331eff4d60332843bfee01b00cc087002800ee07b002c027645979b46083ed07a52e6a95bb3da2b23b2cc6a5b32d4c5e9a592deed1f70c3deda23668f586f59d2411d99b8e887d863d2ffa196e238b2a9cbff46c481e04f0200013808f00c8062073883f9bae18137abb6d9ed8ed066e02f0008055001e03f069004f00f8bc29bfe06ba55b9bfa2b777b48970e6e98f4778b6226fd1cc1f45e62f700999c91f7ecf7b37217b5a22d8e1ec5b4e61900a5008a0114ea7daedeb37bcf97fd5dfe59a9d0dfe527dbf86baf0b1ac097e8e0ef81284c65001fc68cf51f00f010000b804fe94a78124045feea!
 d26f96ed7004863b396e3b242ceb393a20aabd608a27509f2b8c08cb277bc99abd9e44df61fa4d2b0abe09e08b009e06f005007fa4f7f199a2c2a24d1eb7e77f52c10f9c164af4783d6d0b01fa7e4a48fd6cc8a94a91f46b2984977c58bf32012c8324cb45eb2b1fc97b78cd1f984df68765b9e3fec6acaa6cbb16802c9543d502b0a9e5fffb8d31f7c8d8d558f4dc99d05be7ce1ebf04807a5f9a7edd00300560aac0529055b7afee706d4ded834625695486a1e321145f2e7e266367c65100ef007877b10a48a5f4a533c33bd22f430972ca9509e05efdf3d214e5dda33f93aad8f7a31be18af023b1edb13fabda5a35534f5f03b01cc02900ab7131e7e3394563d7c7c62114f62e6ea104699e1dcfd58071cf504e86dea10ae09798016bc40e19338a5896c20d65dc5209a615a6acf8eef8ce5069e88fab8a66f63f4647c5dc22722a82758faf83fd2fecfbc7ae8fbd334f5c77848c20ba14c21bb221a2b809403e80d51041ad10401180cf02d804603380a71445f952fdbefa9799e4e8f46cd2a0b49324ad475aff0922532810ca363cec03454b30772a3503780422a0169856983638f63bfededfe94f9064d23872aa4f99a35151fd8423621baed5ddfa3a4456faa8deb631c43e18e439cd15655e3e373cce576c4106fafab90a401666bc612500f3806b60b3b3c5f932a7!
 383ebd47984ce3c67901ddf24e97d30b600d80df87f0b0a598dbfa77ce1b94!
 162a052e
569479e9b44df19c4f7f69bfbee1d913e5db89113600585e602d58e538e0f80ebdfc59b85f5834399e9cc51323c659a48119cb27a93a0e381c3af88f01b80fc2bb8ca09c4eb7510141ca4a0b37f806d958dac69f4513bcd164ccfb0d8ba51f9c16b3b80bfe6eaa29f27bf9f449117d652844f212cf55565456420c9b3c08cbdf0c7c7a1affcd92d2c2dcb236bebd7d84ace9246b12644d17699b22fd06f89b504257ca807e1e3099302a45fde4e8507416787fa77f9c07f8b7b22c7f0ac027206248166eedf6b70f3c00980ef1ab24e9eb2713e364581fbb1e7d27289c1ebd0d4abf6fac011a9636ce058a0aef574d2d4d3f5ab37a4d2980b51031e3231099459a07f8dba780ca36fa7d5d62ecda82b32d1b4d5b003594111e9c5b2bc3badbf785faa62dde74b0e9df0a0a0bbe00912e3f0e11e9b321525d6a41351768a368bb3d64ea67b6ad9393896ed279708f98f80ccd0665c8adc6490fe3fba9d9bf3364a7976484bfa8df5bef5014e50900568839c7c700e460b6d5ef0a78a3b8914c0793cf3149eed9574f0e57d2e3ddc3e461d217112ed0a307b01efd24e97b40ebd4373cada4d182f5a54f03781c400144a1b412c0ef41cc319661b6cbdf0afc6da30c88a0736f7888c79c6d7e61d55e0749b2a9bd89e110e9ecd4c1ddecbf4223b33dc43f44729c3e009fd4813f00205!
 7077eef4d80df71f04687f700b8774d4b626fd921f60ef43ac64832d16f23a79ae8efb291ae32daf68b4d12639e6ffc4768da33d278e58b9e2f4194c8b910d13d15f8cd264f770c782a19b3bf7b017c981cb8c2a13d0245447842f8a883ec279b8ee88b1669e7fe0dd02931220a91d68c0037d738ff40d1f45070be58b09cac7c95a76b5432c9e19083a4838e030ef230d9d33f3c2768a3487286d85f3fcc2fe0bd69ed03093c958c48bb14c0bd4cf67d8583db6f9049b2579c17683daaef08a581f79ce60d92fe1af7c0933016506e5ec6fed650061365e664a4f2385933597fa87594247b0693a9169f6c0af1ef6a46f8087ecbac3d6fe24869168f94e626c6f9cfc6393f673fe324bf5bd3c93bf70787bb4ddb8f323f99e40febbbb9b3f400e7bb02f53bfa1ddd21fa3fec4292e14aa8e1250000000049454e44ae426082</data>
     </image>
 </images>
 <connections>

Modified: pcbsd/trunk/NetworkManager/networkman.ui.h
===================================================================
--- pcbsd/trunk/NetworkManager/networkman.ui.h	2007-02-28 19:40:20 UTC (rev 115)
+++ pcbsd/trunk/NetworkManager/networkman.ui.h	2007-03-01 19:28:55 UTC (rev 116)
@@ -1045,7 +1045,7 @@
 
 void NetworkMan::slotTimerRefresh()
 {
-    QTimer::singleShot( 3000, this, SLOT(refreshDevices()) );
+    QTimer::singleShot( 1000, this, SLOT(refreshDevices()) );
 }
 
 

Modified: pcbsd/trunk/NetworkTray/NetworkTray.cpp
===================================================================
--- pcbsd/trunk/NetworkTray/NetworkTray.cpp	2007-02-28 19:40:20 UTC (rev 115)
+++ pcbsd/trunk/NetworkTray/NetworkTray.cpp	2007-03-01 19:28:55 UTC (rev 116)
@@ -17,7 +17,7 @@
 #include "NetworkTray.h"
 
 /* Update interval in ms */
-#define  UPDATE_MSEC 2500
+#define  UPDATE_MSEC 3000
 
 // Public Variables
 QString DeviceName;
@@ -30,6 +30,7 @@
 QString DeviceWirelessSpeed = "";
 QString DeviceStatus;
 QString DeviceIdent;
+QString DeviceNetmask;
 QString username;
 
 
@@ -52,6 +53,7 @@
     DeviceMAC = getMacForIdent( DeviceName );
     DeviceStatus = getStatusForIdent( DeviceName );
     DeviceIdent = getNameForIdent( DeviceName );
+    DeviceNetmask = getNetmaskForIdent( DeviceName );
 
 //QMessageBox::information( this, "Application name",  "IP: " );
 
@@ -175,7 +177,7 @@
 
 QString NetworkTray::getIpForIdent( QString ident )
 {
-	QString command = "ifconfig " +ident + " | grep \"inet \"";
+	QString command = "nice ifconfig " +ident + " | grep \"inet \"";
 	QString inputLine = getLineFromCommandOutput(command);
 	QString ip= "";
 	
@@ -210,7 +212,7 @@
 
 QString NetworkTray::getSSIDForIdent( QString ident )
 {
-    	QString command = "ifconfig " +ident + " | grep \"ssid\"";
+    	QString command = "nice ifconfig " +ident + " | grep \"ssid\"";
 	QString inputLine = getLineFromCommandOutput(command);
 	QString SSID = "";
 	
@@ -229,7 +231,7 @@
 
 QString NetworkTray::getStatusForIdent( QString ident )
 {
-    	QString command = "ifconfig " +ident + " | grep \"status\"";
+    	QString command = "nice ifconfig " +ident + " | grep \"status\"";
 	QString inputLine = getLineFromCommandOutput(command);
 	QString status = "";
 	
@@ -252,7 +254,7 @@
     int num;
     QString RealIP, tmp;
     
-	QString command = "ifconfig " +ident + " | grep \"netmask\"";
+	QString command = "nice ifconfig " +ident + " | grep \"netmask\"";
 	QString inputLine = getLineFromCommandOutput(command);
 	QString net= "";
 	
@@ -357,6 +359,7 @@
        {
             if ( DeviceStatus == "active" || DeviceStatus == "" ) {
    		tooltipStr += "<br>" + tr("IP:") + " " + DeviceIP;
+		tooltipStr += "<br>" + tr("Netmask:") + " " + DeviceNetmask;
 		tooltipStr += "<br>" + tr("MAC:") + " " + DeviceMAC;
    		tooltipStr += "<br>" + tr("Status:") + " " + DeviceStatus;
 	    } else {
@@ -369,6 +372,7 @@
 	// If this is a wireless device, give different output
             if ( DeviceStatus == "associated" ) {
 		tooltipStr += "<br>" + tr("IP:") + " " + DeviceIP;
+		tooltipStr += "<br>" + tr("Netmask:") + " " + DeviceNetmask;
       		tooltipStr += "<br>" + tr("SSID:") + " " + DeviceSSID;
       		tooltipStr += "<br>" + tr("Connection Strength:") + " " + DeviceSignalStrength + "%";
       		tooltipStr += "<br>" + tr("Connection Speed:") + " " + DeviceWirelessSpeed;
@@ -452,7 +456,17 @@
      displayPassivePopup = 1;
   }
 
+  tmp = getNetmaskForIdent( DeviceName );
+  if ( DeviceNetmask != tmp )
+  {
+     NotifyText+="Netmask changed to: " + tmp + "<br>";
+     // Save the IP as the new IP now
+     DeviceNetmask = tmp;
+     updateTooltip = 1;
+     displayPassivePopup = 0;
+  }
 
+
    if ( DeviceType == "Wireless" && DeviceStatus == "associated" )
    {
         // Now check the SSID Address for changes

Modified: pcbsd/trunk/ethernetconfig/src/ethernetconfigwidget.cpp
===================================================================
--- pcbsd/trunk/ethernetconfig/src/ethernetconfigwidget.cpp	2007-02-28 19:40:20 UTC (rev 115)
+++ pcbsd/trunk/ethernetconfig/src/ethernetconfigwidget.cpp	2007-03-01 19:28:55 UTC (rev 116)
@@ -127,12 +127,20 @@
 	   return;
                }
 
+        if ( checkMAC->isChecked() ) {
           saveValue( "/etc/rc.conf", "ifconfig_" + DeviceName, "ifconfig_" + DeviceName + "=\"inet " + lineIP->text() + " netmask " + lineNetmask->text() + "\"", -1);
+        } else {
+          saveValue( "/etc/rc.conf", "ifconfig_" + DeviceName, "ifconfig_" + DeviceName + "=\"inet " + lineIP->text() + " netmask " + lineNetmask->text() + " ether " + lineMAC->text() +"\"", -1);
+        }
 	  
 
     } else {
+         if ( checkMAC->isChecked() ) {
 	// Set the device to DHCP mode
         saveValue( "/etc/rc.conf", "ifconfig_" + DeviceName + "=", "ifconfig_" + DeviceName + "=\"DHCP\"", -1);
+        } else {
+	saveValue( "/etc/rc.conf", "ifconfig_" + DeviceName + "=", "ifconfig_" + DeviceName + "=\"DHCP ether " + lineMAC->text() + "\"", -1);
+        }
     }
 
 
@@ -280,14 +288,27 @@
    tmp = getValue( "/etc/rc.conf", "ifconfig_" + DeviceName + "=", 1 );
 
 
-   if ( tmp == "OFF" ) 
+   if ( tmp.find("OFF") != -1 ) 
    {
 	checkDisableNetwork->setChecked(TRUE);
 	tabMainWidget->setEnabled(FALSE);
-   } else if ( tmp == "DHCP" )
+   } else if ( tmp.find("DHCP") != -1 )
    {
       checkDHCP->setChecked(TRUE);
       slotIPCheckbox();
+
+      // Look for the mac address change
+	if ( tmp.find("ether") != -1 ) {
+		tmp2 = tmp;
+		tmp2 = tmp2.remove(0, tmp.find("ether") + 6 );
+		//if ( tmp.find(" ") != -1 ) {
+		//  tmp2.truncate(tmp.find(" ") );
+		//}
+		lineMAC->setText(tmp2);
+		checkMAC->setChecked(FALSE);
+		groupMAC->setEnabled(TRUE);
+	} 
+
    } else {
       	if ( tmp.find("inet") == 0)
 	{
@@ -301,13 +322,28 @@
 		// Look for the netmask
 		if ( tmp.find("netmask") != -1 ) {
 			tmp2 = tmp;
+			tmp2.simplifyWhiteSpace();
 			tmp2 = tmp2.remove(0, tmp.find("netmask") + 8 );
-			//tmp2 = tmp2.remove(0, tmp.find(" ") );
+  			if ( tmp.find("ether") != -1 ) {
+			tmp2.truncate(tmp.find("ether") );
+			}
 			lineNetmask->setText(tmp2);
 		} else {
 		   lineNetmask->setText("255.255.255.0");
 		}
 
+		// Look for the mac address change
+		if ( tmp.find("ether") != -1 ) {
+			tmp2 = tmp;
+			tmp2 = tmp2.remove(0, tmp.find("ether") + 6 );
+			//if ( tmp.find(" ") != -1 ) {
+			//  tmp2.truncate(tmp.find(" ") );
+			//}
+			lineMAC->setText(tmp2);
+			checkMAC->setChecked(FALSE);
+			groupMAC->setEnabled(TRUE);
+		} 
+
 	}
 
 
@@ -413,6 +449,14 @@
 
 }
 
+void ethernetconfigWidget::slotMacClicked()
+{
+   if ( checkMAC->isChecked() ) {
+	groupMAC->setEnabled(FALSE);
+   } else {
+	groupMAC->setEnabled(TRUE);
+   }
+}
 
 
 
@@ -424,5 +468,7 @@
 
 
 
+
+
 #include "ethernetconfigwidget.moc"
 

Modified: pcbsd/trunk/ethernetconfig/src/ethernetconfigwidget.h
===================================================================
--- pcbsd/trunk/ethernetconfig/src/ethernetconfigwidget.h	2007-02-28 19:40:20 UTC (rev 115)
+++ pcbsd/trunk/ethernetconfig/src/ethernetconfigwidget.h	2007-03-01 19:28:55 UTC (rev 116)
@@ -49,6 +49,7 @@
     virtual void slotDisableCheck();
     virtual void slotOK();
     virtual void slotIPv6clicked();
+    virtual void slotMacClicked();
 
 protected:
 private:

Modified: pcbsd/trunk/ethernetconfig/src/ethernetconfigwidgetbase.ui
===================================================================
--- pcbsd/trunk/ethernetconfig/src/ethernetconfigwidgetbase.ui	2007-02-28 19:40:20 UTC (rev 115)
+++ pcbsd/trunk/ethernetconfig/src/ethernetconfigwidgetbase.ui	2007-03-01 19:28:55 UTC (rev 116)
@@ -8,8 +8,8 @@
         <rect>
             <x>0</x>
             <y>0</y>
-            <width>276</width>
-            <height>341</height>
+            <width>285</width>
+            <height>333</height>
         </rect>
     </property>
     <property name="caption">
@@ -59,40 +59,6 @@
                     <property name="name">
                         <cstring>unnamed</cstring>
                     </property>
-                    <spacer row="1" column="0">
-                        <property name="name">
-                            <cstring>spacer3</cstring>
-                        </property>
-                        <property name="orientation">
-                            <enum>Vertical</enum>
-                        </property>
-                        <property name="sizeType">
-                            <enum>Fixed</enum>
-                        </property>
-                        <property name="sizeHint">
-                            <size>
-                                <width>21</width>
-                                <height>16</height>
-                            </size>
-                        </property>
-                    </spacer>
-                    <spacer row="4" column="0">
-                        <property name="name">
-                            <cstring>spacer4</cstring>
-                        </property>
-                        <property name="orientation">
-                            <enum>Vertical</enum>
-                        </property>
-                        <property name="sizeType">
-                            <enum>Expanding</enum>
-                        </property>
-                        <property name="sizeHint">
-                            <size>
-                                <width>21</width>
-                                <height>60</height>
-                            </size>
-                        </property>
-                    </spacer>
                     <widget class="QCheckBox" row="2" column="0">
                         <property name="name">
                             <cstring>checkDHCP</cstring>
@@ -195,6 +161,40 @@
                             </spacer>
                         </grid>
                     </widget>
+                    <spacer row="4" column="0">
+                        <property name="name">
+                            <cstring>spacer6</cstring>
+                        </property>
+                        <property name="orientation">
+                            <enum>Vertical</enum>
+                        </property>
+                        <property name="sizeType">
+                            <enum>Expanding</enum>
+                        </property>
+                        <property name="sizeHint">
+                            <size>
+                                <width>220</width>
+                                <height>20</height>
+                            </size>
+                        </property>
+                    </spacer>
+                    <spacer row="1" column="0">
+                        <property name="name">
+                            <cstring>spacer3</cstring>
+                        </property>
+                        <property name="orientation">
+                            <enum>Vertical</enum>
+                        </property>
+                        <property name="sizeType">
+                            <enum>Fixed</enum>
+                        </property>
+                        <property name="sizeHint">
+                            <size>
+                                <width>210</width>
+                                <height>16</height>
+                            </size>
+                        </property>
+                    </spacer>
                 </grid>
             </widget>
             <widget class="QWidget">
@@ -202,6 +202,71 @@
                     <cstring>TabPage</cstring>
                 </property>
                 <attribute name="title">
+                    <string>Advanced</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QCheckBox" row="0" column="0">
+                        <property name="name">
+                            <cstring>checkMAC</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Use hardware defau&amp;lt MAC address</string>
+                        </property>
+                        <property name="accel">
+                            <string>Alt+L</string>
+                        </property>
+                        <property name="checked">
+                            <bool>true</bool>
+                        </property>
+                    </widget>
+                    <spacer row="2" column="0">
+                        <property name="name">
+                            <cstring>spacer11</cstring>
+                        </property>
+                        <property name="orientation">
+                            <enum>Vertical</enum>
+                        </property>
+                        <property name="sizeType">
+                            <enum>Expanding</enum>
+                        </property>
+                        <property name="sizeHint">
+                            <size>
+                                <width>210</width>
+                                <height>51</height>
+                            </size>
+                        </property>
+                    </spacer>
+                    <widget class="QGroupBox" row="1" column="0">
+                        <property name="name">
+                            <cstring>groupMAC</cstring>
+                        </property>
+                        <property name="enabled">
+                            <bool>false</bool>
+                        </property>
+                        <property name="title">
+                            <string>Custom MAC address</string>
+                        </property>
+                        <grid>
+                            <property name="name">
+                                <cstring>unnamed</cstring>
+                            </property>
+                            <widget class="QLineEdit" row="0" column="0">
+                                <property name="name">
+                                    <cstring>lineMAC</cstring>
+                                </property>
+                            </widget>
+                        </grid>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>TabPage</cstring>
+                </property>
+                <attribute name="title">
                     <string>IPv&amp;6</string>
                 </attribute>
                 <grid>
@@ -308,7 +373,7 @@
 </widget>
 <images>
     <image name="image0">
-        <data format="PNG" length="5482">89504e470d0a1a0a0000000d4948445200000040000000400806000000aa6971de0000153149444154789ce59b61681dd995e77f1a24a88216bc020b548b0455f00c7ea20d914843f4320dab4a02d912f361e5e90fb1328158b30b63cd7e899dc0aedc815d3b0b89e42c1bec593258593a23f9c38ca540235560322e2dede83974474f4dbb2599d643f5b0c4ab87d4a81e9679555882b31f6ee949b225b7b73399ec3817c4d1ad5bf55edd73fef7fccf39f7be2611e18fb9fdc91ffa05fed0edd5524084c48bb1dcfcc94d097e19c8f8df8c4b3817cad88fc64e84f9aba50003fcb28fbbe7e2ad7a3838782b1eec9dfcc8aba580109cac83d7ecd17baa97a259c43ded42f3c98fbc5a0a30530434bbf8651f2776f0d77d5cdc131f79b514b00efdd97e7ccd67f0cd41bcc4c33ded32a7cd9df8c8aba580ce1401b8f8418a843f26042c2f2ee3641d7ccdc7cdb9f8cd3eee6917afd93bf19917b8877f1dade93b4dc21e68cd50f9abca0102caa912ca2f46c01f54014ddf6912b2907902c969c86c01a7815049ad0a6481327006f472da2f819b05af0cdddf55fda8196e9726193e7399a92753b85917bfe4d39fed677c6b9c21868e7f87cf1b0a377da7496886f676489a21938104300cf5925a15922c681beae5b574125a299!
 d4c09c801ab105b6a7271472a2d35a9c452f72787fb65483a94528e8cdf83d9ee25c26a8dee53ddf8653579bfec935bcf61fe47b3e9b8791cf101f9fb4d72256c92fc074de2ec3489b3d224376992fea049c66992c1b049266992c1a849667e0c17df861bdf81816fc3d8b7c0fd3318f933e83e0597faa0bb19867bc17e0243dd607e0ae7ce82b1016e3a79d7d2d0cb5a2a334a9632904eda4925593559c75293c73ad42f416c8357f6c89fc9e36f1c4cdec93af8cdfec986dc4780b3d2243d39d00007f051160588017d17e216d0e30cae0e5eaca1e91aece8b8ade0ef6824ada0ed64705a130a914162c410e9b8468cb7a5431bb0a5e1b445f8a14ecd8c611de2ce1a041a895d8355a85931d1c32a494782bd9163f86c377ea081ad61ac1bb89d0e857005d774f1439f73e600931fdc66b07d98c24681fca9fcc1e4cb3eb9208779e1780420228808a34f91abd317a4ef4ffbc4b22c69ef68978b3f1c10912559900939dc966426fd4fc9a5a77755f7697af9e9fc33fd8523fdab1557e665542e3dea93bbd22b17d77ae58e8cc8854fba65e2694ece2f5b32fa5893def79105b9234b8fd3cf7bacc4c2b3fded7991c77591f7446453e4ee3fde155913115f441e894cbc3321fbf37cf6af8180fe952699cd0a937f37c9ed7fb80dc0d5de11b4bfc8d065770111601013a11f2b4!
 3744c22428c2332c0c06ec862ec33ad5f8775703a23bc40236e583e49d7ba4!
 240ad236
1e0c905aed8e34c8663749b3d4caf4ea63e2121eca8a195a06a45380f0718b62e53dc28e2cff998ed26835f1b244c42b47b1ac6b78c17fb80380b93bf1ea3dbe8a6b7b797abdf186125bb924e1ec08078191d03d667d163e0c138fa5608bfba86be1ac02f8631c280d9780c8d88a99d6b24048c47c3d428c22ef4e84e3af9182fd0e8b31d583d58cb8e151f7180aeedc20ef0da6dbe79ef2bd4b49f31fdeb9f31addde6fe6f3cbc8c47f137f7e9b3f2f8259f9e6c0fb55a8debffe33a43234398b689dffa923ec0cfd589a9a1631252c024cf32b374e150c4a3e7e7b7e11fa65576d5ccb132eceb86eff5e245e01809de16f4b52979b96d92623c4b4dbf8ebf0e516702ab90a49657088849ac84e8618da42361205108185cec61f1d4a27278966291c3ec315cbbca65eb0acbd565ba56de66ea373ed73fc831f6e331f2a7f2709a1723c0b5007c744c004cf27078f238eac6fdd4f20469da095ea4e3186e3a79072f04a7cd4911d08f1fe8389daeb2fce924b5bca32c6e01250dc74aa0ac1050dc29e058ae6283fdc9a7f1406c0165f53c25e8ca76319b64e86957ef643fb1f1cb2723a0a100af0ce01013021050001c96b94f0f2e457ce8ce806941ae1bba7be16c2fbcd1075f1b60dc74c997dac97f3fe6ba33c5d0bf7f9b5c35617a719ac44cf0420f5aa0b8334b62c7788147!
 723ac15fd548ac04afec9158315e09622bc14b9781b7ead1d39ac72b798df8601f01fb5499582a07200bcbe565fa51cfd30cd1a90827eb7cb602b06019af81009b3cb048170ea0d3c339383b0e3f0be0c745f8ef05f85101fe9b0fdf9e62e8e62c03ffe1126e66888c66926c68f88b19f2965af3aee9c2ba4f4f6b0fac429f9da0ad6a0dcb1df880044ac9219e573ec0cd1e6ff9fd20c9b514e57565bbb856ce31b99223df9ba7abbb8bd90f675f420125e8c23d84001fc813130110110010b29cca2200cbbb053060b9a4ae07a7036cdbc63e6d03097ec9c7e984fb8bd330f01596cffe1be2d76a78fb962f7924590e2c5ed2483a12ba7fedd2bdee12fcb6067b10fc9d4374ef79cb6b69df2bfb389643500e18ce0e73edfbd718fbaf6344e14b22c0b1802308500fe9184011030de2714c74fcf826261a533bd7b05b342677ae507bb2422d1330fc5783e4be6e73e3bb6398b689fbba8bbf0e7d561f005d7ba0978e5a5eadfd38b56c82f630c33057b14bbde4826eae8c5ea13be985bde72dbf2f9dac0365b0b336c61b06ce571da882611a2ff401072cf0a049fcb3db442418982ce3d385d3e0f9c2ee38f916073ff670f498d9181cddc1dbf1705a13bc28216fc4f85be0b6e9b03b8cd902d7d6af907426643e88b87c718e2081497f009e6470ec043f006c0d02703a12bcb2!
 4674aa46d7ff76c855734c5627d15ed3d09b75c65fbb4ee6cde373849144b1!
 40988498
1d264139c03e6d13ae87984f4cc81dcf028d88a8f7b18aba8e447c4722bc6d99af4f884845a47e4b442a72f7f12d11599399c737a42e4b726bf392acc98cdcdabca4e2c4ed5b322fb764646d409636fb44be88c8eb887c927e417d2995e9f73d4e23c68ac8d2bb4b32f29f4764e2ed09b9f89f2ecaccf519697f1b695f46dadf45da3f42daa7914c11c9fc3db2b4b920770be9fbfecf1b221591f9e2bcac6d2e887872622478c407f4e034d6faf2ae4f578b42002d109190d70789d1401f22069cd6212234fa5b87493070da62bc2d0fa72d26dc0d700c077fddc3b193946554a64b47881f4d816ee26f4d12eb21b35b93d8ad2693eb3759ce14985b9d23d94b147cf760ae3c47b277b0e68ff8805df04a1e4ed6210c4248fa081f16c85b79264bb7550afd593ec0cd02bb1e06b65aab2d8ab7750cd82d60a4be41f58bca57eca2aea7f280f775cc161b3ff2703a5dfc007abee072f3fbdd843fcf31f4f01ca1b6c8b9c52f1334ff803fff20cf0a97e9bfd7c30ff86bfef2fff4d3dbde4b9cc4389683deacd3dbd10bcdcfaffd249d9c93557182699bf08d2eccbe3c2470a5770c7fe365e28012d0721801b3d0428a803c51ca0eb33b63c42d1e53d135a2960293d1951421217d6d0973a18f6bee23c0557c6f83579ea3f8758d9b5a3b4956797f2c52de57debf6625f010c26c8df!
 bb5fb5cf9c215ec3e9b912f8d70bf7a5fa5a7cf589e92baec973cc842b81e422744610426c49152e2672a000b0abbfe2104f4b3bc3b9b5afcc0d24eab9b86b92e5ee4e1180ec46a7c2ed4e83355e467b6d8f85b1e4e1aebf75931dabef72f1f17fb2bfedfe7f9b1affd355f69ebc26b3f47bffe65fcb7a6d0ce3c6f792c95c2bb5955fe323b4d0895f7670b744357f583cf544009f2871050dc9da5aba5ff900f08a005e5f50d57c1db006fcb031da2dd90d84cf0d63dfa4c1402dad40e4d9c46788995e097bc94ef69447efbb940d4911ce1f9285b63b25425c8ae1056cb24ddcf5b9e5548f60ee2807dcb475b11b441bc13bfd00734bce1c836224f6f1de280ba487d3fdf3fc8efebb22077b6afcab6cccbadcd11a9c85d59aaabf1d1471764412664f4d1c523f9fafcf68cfabced3b225297bb9b7744645b662a1322b22d772a13b22d6b32f1e8464356644d6ead3d233fb92175d996994777a42ef586d4de4116361744de97068b88222ef5fdefcd9fc8020734f83e2252916d59534586a7ea65ebe9a7ec5fbfb33d2adb3222139b23b226771b945779ba260b725eae3eba20a372412a4fd5fd9594ead69e914bf58523d4b7b03dff7272f379a98d23a38551914d91ed4afabe9b4ad61fd7451ebd040d2616f8f1010bf4b4b814635ff98018757d17ce1943183b3906db2ea!
 935ded60731989fda2cdecb31c830c6af72989fb633fbcb59fcff759f2bf78!
 708f515a
eac0e11e901d75687a935075c5919a2dabcc2f0e239021619faa09f95bd4506ef1f92c92283f70ee462b2c8b93925a782497adaf200b8598742b9a0d67e08469b0111e8ad2ff6018d48b0e77e93147bd7088931e922fe5e0ffaebddc4df1a43c720da0d305aec834acf6e48ade53a5e08c3e618633f1a63f0d4207eb34fbe96672a992249126efee23af99fdb64c850eba81d72781075c4aab2d35e7dbeca7bb82abc0bb428a9a1d6bc0614bfb146580bf9f22fbecce8d9512e672f13ed4518a641b41561b419c43b317a4d87cecfaa076481d8c3445580f4078bf0f10a3a06cbb18fd16237bc3dbb60b4987821f4997d14429f9e4c0fd73fbe8e56d6b8f29b2be49a7318af1998ed26949fcffafa52ef5feba81d1bdb9fe4ed133b45acad829f7c8a80fd5ce03804144a85131170340ed05dc25d95d5ed6f99c44474e90e53d118915e6072eb9a6285dd903e33666edd236f3a14aa05ce9f3a8f5f55418757f6e8dbebc334da693f63b2b21130fcba4d50cd61bd6eb3b2d1859685cc460623db8eb9d18e71e6a834539939ab247b1ada2aaaf8b20aaee552d82ac05e5a0fb0d238609f050cc502f96cfe4405349c417705b9fbf8c601097c1d91eff6a6843023dbb220139b57a522f38dd8fdc6a38bb22477442a33b230b920a33f1895991fcec8f96f9c9799eb3332fac35199f8!
 c184c84733471cde916aee216fdde86fca1147b7df9f7fb65f517d7e8a2c6d2fc9ddf7d35ce0911cb94ffc977082945590731c02d0fbf1b77c9cb6e428ef7782b7ee83d9aff27a54650754ec0e305d9a266cb7f1b7a6e86aeda110f9d00a7e38458fd1cd6c380546c46c38458f91a71815a00d8a5b057adaf214b70efaf9b6bcb2781b14b60ae4cd7c03015ec9c3b19ca391605b8a04eb6400349ce0e5b049fa5ebb417febb01af9774daae4f5a302c59d59ec5693e9ad69dc369728862e3dcfd8fa304ea743126af02b83c246815c738edb1fdee6fc17cfb3b2b7c274ed36c61be0fea98bf7709ac88a093fae523e15430ae7f6669b24576eec00b182da235c4dd7fc2a6043663d03a7b5469f55755ff54195a5b796e82a75c11b40908e87a84313bff271bee6bcd809fa25705afb1a0808df1a806f771311d1d3da4f215ac46d73f1428f2e3d4fb41be27426788147de54db50f924cffdda7d32a732cc6dccd1f3690fe1bd30adf17944564cede3aa6281d503e435b2bc6322bcc36bbefaa446ed41956aad4af54195ea1325d9533e070b82d5006c5456682a24bc542e9058e04773982d8a05cc0b37f03bf218692ed06f0ce1851e8ee9c04eca02818693d6ed07de1820381330f2d608ce9b0e57ffe22ad11b11c91335c9d84a083fae12a514c8e9f48b5378bec8db3f279bd3!
 e70f49d752bbc1b665c36a9a1506292b944e9cff333ec088097655adcf8f3c!
 9cd63ccb
71a1e1f59d34d6a715c2dd10ec047f55f58d7fabe39ecf533d13607c759acb7bdfc4ffd26df2ffc526793d22f83020b192837cfe300278b1e5933dd08283fe7172ae3c879375084ac1f348b05e4201ae055e04764b0fa0b2bda9ad294c5da3b85350165fd7703b5d96770a982d66baa3e350887c4cddc60b3d6cbd0b6f03f2d96eaa1b21c11703c252b511fcecf3fb610468bf83e5f7655fb60f4a605b36cb0f978f2061b6747255b8e104bbe69a64be6f81daae5242448481c16c344ebf3144b41b12b6ac30b7ee31dc3946b81b107005afac71edf438611c801e93c430b6f736d58f038aa756a09460bf9ec3aedad43a62928735620b92d21089d54774ff369c9d442f2744718d642f21493759923d75f223493871276a5fde78f306c3a786d5ce50b68be5b2924139a07daf1dfdacfee29a606e0db9b339aa78b3b1ab2b52974a83b76f3cbaa47686d3fec82717e4eed389068f4f3c527184fb5e4eac4f10eb5d55c31b5d1ef95c3c7ff7d15da94b5deeaca9ac6fe2930959abafc98d8f6ec85a7d4d468ba332bf3d2f23ef8f485deaaa26b82d2245156b2c7db4245217b9337de7c438a0f1cfc07b9a888c4a3d2d74d6b755aabab67943442a22db33227249ee562e894845b6b767a422e7e5d627e745a42295ed79a9c84559d89c91eeb576b13c3579eb5d64a13e2f0bdbf34!
 752dbc329ed6165cc7f5e599917a9882cbcbf20b229b2545c12d956b25eac9fa880c612980c9b6430330afa20c4d3a0f7c1fa3474bab0ee41671e767c68752098820e079e786004b018c0a932d434c8007b9ae2e175a01358d4a04363b65ae39b49adc1dfcff23caba09dd6d0d6338dbe79d6547b84964b61a3c0b933e7f04a1e6ed6a5582de25a2e5ed963f0cc20c16f0386be3044b15ca427dba3b2c02c4cfdd314e7de3a77ec12682860f09e2e936fcec3ee22b438104d81e1a493aea5c145083b35e5923f0ce18d441d1b40d5f2f822f05ba01788343050e35a021faaebf62f34aa3b35b5b69fd958fd7f59f3c7c98bda4506ed41f2d97c4309c572117bd5c6387ffcf980c62931379bc0ce396805766e8291c0e2cfa03b860709b4d7604753e30fd4de1d3be9241f909ee6d2205b833003266a5fdf40457659605d63e8f521de1ebd4efcb7f2dc0b35fda449925c7abfcd4144f74ce4d790c133f78590efc8c343e8c9f6507858209fcd33b93ac92083c7cdffc0079c2f68229211a967945ccb886c22b29911a96b22ef1f1a3fb17f48ee7f4e3d23f2f4e07aafd72d7c9513d7e4eff2b7f6ce5ae378ccbc3f2ff24895c3b6dfd93ef1fb0ec501890a457594b413d8d0d4c1a632903d347e527f3db574a41d7c8e0e6ca4e35b9a1aff3d9d4e2c3417702c07bfe493b71412f!
 21d793c4e3e29da50c0f8c71ac5bd84f155885a126603a01b96b7801c44350!
 d5ad29b7
3c0a7cff43734e5f03650cb070ec6ed74bc2d796158fabb3677cf65f6e12c4e8783ff50d507fc928fb377722ef0d2f0d27c44fb2992790fe99d46ba3f42ceffa326b7d6904b054d663635b95ad464615b9389354db64593f9cd8c5a0e9574593c6e974b1f59bf17f88b0813ef4c48fda3baccbc3b23b22c0d796bfcd667c701ff127fdcfcfdacfdfdbfca7845ee4cdf917ab12e33d3330d65547e5af96c1ff02fd1e4e2f39eff9fb3f9f8b81d6ea338e2953c9c0ee7853ee05ffd69f1c3cdd973d46f85f6d46f851c5225242fb337f80a340f0fa75359dcb153f9190878a514e0ec394caf4ee32429021285883f9a5f8cf8f80c9c1e60fcd37172adea784d4ecfe1ed9d8c80cffd7b81ff1f5bf093400a9902f95a9ec94f2771488fcaef81f69ac6e5ef5d7e3efc7e95140010fc3290425460e0ec80fac5c8997e15a97e81a3596206384dd32ba780fd36feb7e3e2eea91f4cb9cdaea2485c3c3c5c4df5cf9d3ff7ea2ae065db2be5043f4ffbbf3cdf31b02b2fae0a0000000049454e44ae426082</data>
+        <data format="PNG" length="5568">89504e470d0a1a0a0000000d4948445200000040000000400806000000aa6971de0000158749444154789ce59b7f685b5996e73f596c781a6290a00c7e430cd662836414287b2a505277c146330333f6f43f4fec1f236df71f3133b071ed4077320d3371cd3f49b174db99a107bb979ab16ba9c57a7ff4446a286c0f74ad55436aac1449590eb12c8b3858c11ef4845de8093be83d62c3d93feeb362a7e24aba7a7b7b367de1f1d57df7fdbae79ef33de7dc7b754644f86d2effe137fd01bfe9f27a09c0465847a6fe7e4aec4f6d99f9e98c38771c99f8f1c4a96afe7a092000f3e579928749cc5513030373c584c3d36f79bd0460c1706418b3cd64a87b889c9e23793e096da7dff27a0940f734a02d49663d43c24990ddc8922275ea2daf9700b6950664b52ca37f384ada4d933a9f22ab654fbde5f5124037e4ca399224c9ae6749b5a5c86c6448923cf596d74a00a59512f1489cac9625359022d39621713e81d9669e7acfd7d0c3ff1fe5cc0fce0887a0b581f3fd26b9728e142932e50c898184e284afd180dfa800cefce08c1001ff97e09e07ff36701ea828d41e0311a00cbc09beb2572f423202661906de5375fb2c4c15a7187df32a99cf33242209e68bf30c478699d99d618491177fc3370d85cffce08cd0065d5!
 de0b681df0f2e1008a88fd41e831b01ed91fa78ad0c0c80b6aa3ae75b07c2c006387de03bc27570c2c02ab821d08a0af1502b83dbab8472a2fd13588a56597f5c21762ec67c59753e57ce11dd8ee2fb73df99177644445a47348f8cd791e85de4e253e462099915646813b92548b28acc0992ac234b825cde431605b9748475af7dc7c3aabacfd87a86b382189bde731f22b3a2c9d0434d61c9aff0815f2e3e45a20564b2a9be27da44a279647c0f19c823037564e036727d0709e7909e0232b9302e5217995b9813d914595c5814d912999d9995e3fd3c7eb43420be7e4606c3a0010690458d288003f80ec069079fe327e903d3d1d07c1aecfb487640765fc3ed006ddf8fd1e1b2600770030ed83e520187f4ae0f3a815d0da3d3266bf968e80e6c83d3dd808a861b6cc00634fa1cecd51a6eaf4bf051986be707c85634086a04b60324bb0d16ac3ba4f424192b4b421f217d6f8a54cf28f9477962e762e4ca39e291b8d2804a14dfa59768c0b420d7b397e4e2b72f4a4f4f8f749deb92cb3f3244a42acb322bc7cb9acc79bf14ae3d5d54d5a7dee9a74bcfd5974fd4af5787644da6e5cad6455996a85cde8ccaa28ccba5870332276149967a64faa926d1bbc8a62ccada9ef7bc3d05cbcfd7eb4bead9b7d5b9c55f2c8a54452427223b22b31fbd82060caf9f91f9b090fe308!
 df94fca6d4c46c771be0bfdc17ec0060238d8f85e88163e746c2c0227b0428!
 0600b0b4
e8eacef266c83d16d6356349cd6c8bbb00e6ed8c15ea9d1e87531bebcc4587086b435415c8f33b33185db07acbb58bd0db422d44236f1fb06a3a1ab141e15c87d9a43efd2497d2785d5b0d03fd3e17bbc50035a71801386f4a7ea25d16894c94be3e47bef789d07088053c24700b6e715aecee0db77e1931bf8b66df8f92801db66de99200064f66fa06133638f02153880415fdcebbc8359d1308209d880441fb00e46d8394180a9600af6c1ff86c9f067bf07fe0fc97efa2159bfc99d7f5960a16b81c2bfdcc1080d912be6188c0cd26834b8f9773719b932821ed4c974644e27f3e31c900b4b6b242df2e8c428314f3fc314c830f8bf4cf8a7accaaeda78215a1707f0ff308a698311703177c1e87449efc2d5ce3405671e7c37c96e83ddedc206b8dec837c22eac3ab82117fb7e03b7d7c568280d48ad0cb2726e058ae084c0778465707a61b4769daba1314a8f4bf4afbf47e6f31c37ef8599f8db0962e762d0fd120d488501e6f1a103a01383e39d27a12e3c4a2d4f413dec62da3e8c40caebbc41da8244a7e169c030d98a0fa33be58dbceb8dbc81b60ac91050d430422e94950614f6f318a1241481a3ce7bf1801302ca9008195084fe483ff3ae9f788ffaa681c30172e5dc2faf0115f204895122473f7125848d05f8ef39f00740d354a7350dfc01668a2e339f15a04d!
 a3a141574f80891f875978e2c20060c1989ea1b03f8fd971132a60071b681b1a8dbe86b2fd5e4705352197c6fd1a6e08925f5e62ac6f86c4bd410ae756be32f247f1c095230df8b712fdf7de67ea5f1748af8799fee934fd5dfda0bf58035a6c78519035b92527cb92bc52a92b18ffd1b84cbe3d29d1b7a3127d2b2ad73eba2ccbcd59b9be65c8a6dc12d95a1491a65c79785196242a971f2af64f3e08cb2d098b51e891d966975cbceb6ff9f9355914d913b9d51c90f02f909e2ad2b380f46c29ecda44ba3e46aaf53559cc2b6f74fdbdeb127d3b2a57be7f45f9aaecdca95ee05932b40afd2470b000a890036238d800d85400b028795800a0749087009456d5f9425f81603048b02f08b8648b598c6e5858f9108cdfa774fe7770de6890ded070fb5cd2eb26ee79303de2338b1a6eafcbc0ff1e62607b88953b156883957f8c637fa6d49fe391a1574f97b3c443712aeb15c67ac7b8f1373798f8d104b665331c193ed5045a02488400322d0e081207506c4f81005de0cca0a39373a6d0d1c9ecdfa0bf5d27bd3f0687351afe0a63df1f25fc4741d2ef4da3077592179264b7c1081900f41f82afa891e84b78b68f67fb8e67d32eda7d3f63da24c1475162b53863d7c788330487cf6cfe78784c11121103ca100c07e102c4ff380e8f21a007982fcfbf0207ac9e91dc7969f9!
 ef23db3ff2f3f9831962ed0639c724ee73987760d89720b39f26d1e192b65d!
 86020ed9
5d4876fa681c8ca2b7fbb9b1fd2e6eb78bff9ecdd5cb9f5271219d37e04b3f46d0255b01821a54c008ba981b1af6b906fdff234eb41665aa36857656c3d7e663e6ec4dfcefbc3847b8d6501c60352cf4a04e65a342b02f88b56da11fea107c0907449f22cbcf71c0f311de527356449a22cd691169cae2deb488d4656e6f5244aa32bd7345eab224d33b9eedd5a7654d6ec9b54d43aa7b1745de422482c843ef05cd350fbdf7ed79116355a4fa8baa5cfbab6b32f7fe9c5cfe6f9765696a49bade7b66f35d0f91ae2ce22f21fe9f21d5bdcd1607c84f2645ea224b8525a9ef6d8a2cc82b7040110649b46cbd7490a3bf5d6900ed606311f3a57070c13782438378c708362ec31da3d880d1e960eea6313a1dac830ac30183ecb68911744997f1b803e873c8d919f0f593db4d83cf617e374d7f4798f4f614965e22bb9ac53d74c99655dc912d67710f9fd9fc090e388074314d3c12c7aa58e01a58f7f3c44231a68a532a857e1907a422c0419a004165abed7138f038e0204fc0e306552f28ae38409df750f9fd04a6e5436f0f326f9b18dd49b215885f4831f53703b83f0b33b2f2fb38810a89957eecb3ef337caf9f9a7695f867ff91f7b57749fcf3b7180a0ee1b80e46c8c0d7e663a87708dabe6afbaed7b944240545d0833afca98e7e31060d188b4e907b747a1cd01240ba0!
 8b41bc734601edaf1342086ed7987f9fd09685f2063df80f612697baca52146a74bd6ca90d48f34208959317183606e64297c47e3065db8111773d58410989e5f4f17351a2117ee831569b0602d30f1e60481688089b7275878bca0d2d3e7469ea23a9d29a62102d6b605dd605b36e8e0d80ef150fce5022004f983ec310d18a674e0c5fcc7467ab82345c686442045da3631020638aa3d6b69187a02d34269c0ae89113460038c3e076d5dc30827a00c86378286c7fe6ec885a2db8af026bef32ebfd7f9bbe47b12c47cfde4be9b410b7d75e409a9143e1549912be7d0bb75b014fbb30bbe804fcd289d525a5e2076ef8ce42f34b1a9a9aced609ec1f6e1961738cae632fb13243a1264ec3443011773d765a47302fbc062a67d0cb621d5adc1c155f4763f5737fe0b4e9fe365792eaca246ba086eafdd8afc2882d553fb4a84f79519a122b80740bb420d700fe17a789caba1abd84f6c027a007bd726d019c0d977f0b93ee87c8917186f22f274fa6484d73ccaf78fe7f79b72ab7e5d44d6647ae79a346559d69aaa7d7ceb926cca9c8c6f5d56d77bf9fa52dd9b3fa82b2fb3b8a370aeaae6196e556745a42eb35b932d6c4a5da6379fc38793eabead5b2750fb08d9dcdb14b92b2d2fa2dee7bdfff6d2a95ee0991bbc8b8834a52e9b2222b2fcf496e7a1eadeb3d4f95bf5711!
 1b926b33bd7a42ecb2d97577dba299b9294eb5b97645c2e49f5a9babeeab9b!
 acde770a
da95cde91eb5bae2fbd1aee7c15b519643c3f2eb22752af7adfbba3b0b9d714d9915305d0e200370439c76c71c0607b8282e37180833a7f0089c055d80f93eabc4176d7c4e8541ca03f0992fb2ccca83646e09330fa9320f3ff3c4fe17fae33766704c757636c63047c0d6e6c8c82afc1d8fa086e87c5e84a82865661e4de30565b85d49d634885d467cfb04285c4a70a339534839d3100529104f9725ed9be0581ce00d8e0eb78450e18bc73460ad13a16163afd383f1cc41719c0f9de84e280830a81f6e0b3999e030bda6f625a30aa4f30f1e30946df1825db9665a831c48c3b83ebba4cfdfc26b19f05f1bb7e1abd8d63840776af034517aba7f64bdbbc066c7eafcefaee3adffaf9b7183f3fced5c82fcf012d0d484600c74447cd00f95657a0b88e8f00252747a03dd8627b0e20d0ae635a60e806792b47bc2bce7bc5f7d06b3aef7efe2eb1b331026703e85d3a94358c50c2637d4eb07fa3b7f1c2d8fe34b677c39ec686c15c3789791a908828eff2220dc817f3a76a404b006611f025b10e545677b464e260d3ef8b93b127c05722bd7b43f9fd030b4377c86ea789e971161e2f30fac62899c76afa295d4e631c1ae8812ebaded4b9f3a8c0b50b41561e87e9792b48fe513f5a04fc8ffc04225de88fba08bc7912750ffd171472a8a9758543601592e124f9dd3c1c42a6!
 9c81901707e860efda6a166fdf2116899d6e03476430504716f726a555fe0891bf8caadfcd3911d994d99debd294b556ec3eb97559aab228529d93cdeca68cbf3f2e4b3f5992e49f2665696a49c67f342e7337e7441ecc9d20bc13b3b9c7d8ba55df91134477545f7abe5e55753e40aacdaa2cdef572812d39719de45e81042943bce3c51a806f98cc6e06a3d3c5dc35c1a734c0e986f47606f461d2ab695c5cd2e534a06277800f8b1fe2f40c92dbcdd0df3148dece4107e4ac0c838118f35646edecf0ea053b0f9d50d8cd33d819a3b0fbac1eeb8ca911ef84fc6e9e981e6b6940ba98261e8a9f8c043b3d4d089dae002d12bc619f9181b649863b4655cb1f9f81f351f8719ec2fe3c831dfdccecce90ec4c52711af4fb624c6c8f92e84e60590efe7f0db2b0b140ec6c8ca9cfa718fdf628f92779b2ae49e03c24ff208979ff43ec9083f5458dc7e7d4ec2fedd07510c41d78ace6fc22c00a6a8d70d5b3f955200cfe0d3f9cd75a75bc65b6dabd1ad5ef56d18b3a5c40ad2d065199970eb94f72c4ff30fef524982dc27087d1d200eb3f1bf05f07b0b119ec1866dece91ec4c625a26fdbe18f68145a2db255d4913d387c9ae6719728758a82de07fc34ff65196f89771ac4f2c9c908b5934b1430e8d2f6aca0bac7a2f5ee75996772cb667d53b7fcce66b4f1a34eed5a8356a!
 d4eed5a83d51c8a1e21c4250d9a840109515ea4a135e29177043306f67d1db!
 9517d02f
cd927b2346c0cb05860323989689a11bb0afbc40baa26178f3f623ef8cb0125ae1c6776f107f27cec49f4d50b950c17d0294d54c8ff545ad15f672de7bf111ab7f0ddb7f05dbbcfb8f612a942257cca9a9b80d2f2bac785ea1786aff4f72c070c0a172a0e6fa72b649bc638892933fc6fa2ee6b6091d601d581074c96ea4a10378db25951ca2d25322f82759469f24c8fd2793d85f0771dfb2a97c5ec10db9cff2f9e31ac0d78fbc7b08dafab3fa8b305bce128fa83941fa9ed384afe18067714008323604db0701880792647667e8f7e914f6f3caef6f6b24bb9394f6f3e8edba97e519e4ed1cba2f48da3209fafa311fc150244eed9145e5db15ac62ad15fc1cf9f7e31aa0fd0a237f844644ad0b04c3414aaba5139a305f7c8539c1fe4fcf48e9e22695039b60fb2036360102ccdb330c0746b00f2cdc768becb6c968f704d64105bb7d0c7343e346df0c9653c1efd3a83936136def51fba242e1dc3a145d826f85093e0ed2e87570ef377042e01647704306f6a75370218dafec623b0ddc4317d75b6471bd9d1faecba92b514738f9ce24a3e746d5ca50a49f52b944fff97e2aeb15826d41e87b493618ae22b776c695df6cadea8a88345b7e7b72eb8a5465a955bff6f0922ccb5ccb8fab6c4e64e87658cddb7face6f0c64bd7be919f5fdc527efdd6a64acc661fce4a5dea3!
 2f96052ea5297f1c2b8ac35d7e4da5df5fcc5fca28a510aeadbd71ea8c4eb56f6d6a97140eb87715b139171697a139dcdba4a553777269510ea7322724516ab5744a429f5fa9c342529d30f9322d2946a7d499a72599677e664a0dad55ab4e8f918d9943559ae2f9d486d9f4f698f84b1f44db1ba24521759bebb2cb227b2565001db5a614da4747a20d4fa315747a439ae3adb54b3bcb2755d44363d5c16d9bba670f3b2882c8ad42f89c84591428fc80e220f34911d4d64d32f227e912d0f0b5d227b3d32f7c02ffe07883f4d0bb502a27d846877116d06f1dfd5a42bdd255d852ee9faa84b064a0332901d90f1d2b85cfcf8a2cc6ecdcad0c290cc6ecdcaa5db97647167512eddbe24cb7bcb32bd30ad8490574290bbaa3bb77e76ba06b43820f5994fd2ef94e02007ed06d8331048c07e063a1a5e7061c17e033a2a70cf820baeda36a0a9b93ca2c01d0f6d0d0278db0adcd6f9e0cf356afb0d65dbcf2dacfe3236ff22bcac5d26154c118bc428940b0c4606156e0c42f2251c30574764af47447a44f60644242c5208abfa832e913d4d64cf1bd107da8beb0ffd227b8854bdf347ed25af7dcb2f935bd7853fe38523c24f106e23fc04218730e5d58f631ee1030f674ee2e5f4e5133b43966e2bb3984d9fbe43a4f52399d7d4c736bd8fdef43ab3e317114de4eef1f6d3eac!
 7f0e839cfb5471706843f78b1007ed5a3fe51bdb53d6629b7f44c081f9dce0!
 1c7e2005
785a23e14065d78a4a98d4deb40e458fb69f56d542c6f6bcf9ee343994fc4855d4db5ff9a76272eb42d100fc5c91573c44231b80fb1de1869d2a7ded312c0cd2f342aed2e331b40bbcb7c051880d22e1006bba641bb777118f8b7e7ea8f34e8061ea16c1e9eb507bdf64ef76bc3d25fb5a40e53ccdf9f27de1b27773f0721c815731887c6e937bdaa7a697944fb00f1df45a25964e02192fc8526b7aac895bc264b7b9a5c2f68b2d9d4647653a9fbd291f9543db3d8eb92eb0f7b7e2dea2f22cc7e342bf25064ee63b54ff008a767a65fce01ff2f0ea67e3db67f7434679a2ae829799b223c61343f68fefb10c0affb989d991579e0f9fd92b48431fdc1e91af08df70aff7b2cce3f38b2707681c461426d952741a63d43dc8a13f88bc0d74f88bc0ec5c424d197204d9a44d8c3de0426a7ff5fe0b5d200fba7b664b52cc9c324d9b62c06466b9de2b74203b26419393fc2cd2f6f12eb8c31559b221688611efeb668c0dfdbb2e05f60a831c4d497532d0de010b4b31a577f78f5ab5af09b66eeffdb473d5757b1ff43cf156e8ada23f47c96a8d60e5e2f0d385e66fe6146928749cc3693645b922ceaff8369d2a4b414193224928933afad005eb5bc5624f84dcaff016bea8b97b1b53adf0000000049454e44ae426082</data>
     </image>
 </images>
 <connections>
@@ -348,6 +413,12 @@
         <receiver>ethernetconfigwidgetbase</receiver>
         <slot>slotIPv6clicked()</slot>
     </connection>
+    <connection>
+        <sender>checkMAC</sender>
+        <signal>clicked()</signal>
+        <receiver>ethernetconfigwidgetbase</receiver>
+        <slot>slotMacClicked()</slot>
+    </connection>
 </connections>
 <slots>
     <slot>button_clicked()</slot>
@@ -357,6 +428,7 @@
     <slot>slotDisableCheck()</slot>
     <slot>slotOK()</slot>
     <slot>slotIPv6clicked()</slot>
+    <slot>slotMacClicked()</slot>
 </slots>
 <functions>
     <function returnType="bool">checkRange(QString IP)</function>

Modified: pcbsd/trunk/wificonfig/wificonfigwidgetbase.ui
===================================================================
--- pcbsd/trunk/wificonfig/wificonfigwidgetbase.ui	2007-02-28 19:40:20 UTC (rev 115)
+++ pcbsd/trunk/wificonfig/wificonfigwidgetbase.ui	2007-03-01 19:28:55 UTC (rev 116)
@@ -403,6 +403,71 @@
                     </widget>
                 </grid>
             </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>TabPage</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Advanced</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QGroupBox" row="1" column="0">
+                        <property name="name">
+                            <cstring>groupMAC</cstring>
+                        </property>
+                        <property name="enabled">
+                            <bool>false</bool>
+                        </property>
+                        <property name="title">
+                            <string>Custom MAC address</string>
+                        </property>
+                        <grid>
+                            <property name="name">
+                                <cstring>unnamed</cstring>
+                            </property>
+                            <widget class="QLineEdit" row="0" column="0">
+                                <property name="name">
+                                    <cstring>lineMAC</cstring>
+                                </property>
+                            </widget>
+                        </grid>
+                    </widget>
+                    <widget class="QCheckBox" row="0" column="0">
+                        <property name="name">
+                            <cstring>checkMAC</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Use hardware defau&amp;lt MAC address</string>
+                        </property>
+                        <property name="accel">
+                            <string>Alt+L</string>
+                        </property>
+                        <property name="checked">
+                            <bool>true</bool>
+                        </property>
+                    </widget>
+                    <spacer row="2" column="0">
+                        <property name="name">
+                            <cstring>spacer7</cstring>
+                        </property>
+                        <property name="orientation">
+                            <enum>Vertical</enum>
+                        </property>
+                        <property name="sizeType">
+                            <enum>Expanding</enum>
+                        </property>
+                        <property name="sizeHint">
+                            <size>
+                                <width>240</width>
+                                <height>151</height>
+                            </size>
+                        </property>
+                    </spacer>
+                </grid>
+            </widget>
         </widget>
         <widget class="QPushButton" row="2" column="3">
             <property name="name">
@@ -531,6 +596,12 @@
         <receiver>wificonfigwidgetbase</receiver>
         <slot>slotOK()</slot>
     </connection>
+    <connection>
+        <sender>checkMAC</sender>
+        <signal>clicked()</signal>
+        <receiver>wificonfigwidgetbase</receiver>
+        <slot>slotMACClicked()</slot>
+    </connection>
 </connections>
 <tabstops>
     <tabstop>tabMainWidget</tabstop>
@@ -586,6 +657,7 @@
     <slot access="private">slotWPAEChanged( int type, QString EAPIdent, QString CACert, QString ClientCert, QString PrivKeyFile, QString PrivKeyPass )</slot>
     <slot access="private">slotCheckDisabled()</slot>
     <slot access="private">slotOK()</slot>
+    <slot access="private">slotMACClicked()</slot>
 </slots>
 <functions>
     <function>setDevice( QString Device )</function>

Modified: pcbsd/trunk/wificonfig/wificonfigwidgetbase.ui.h
===================================================================
--- pcbsd/trunk/wificonfig/wificonfigwidgetbase.ui.h	2007-02-28 19:40:20 UTC (rev 115)
+++ pcbsd/trunk/wificonfig/wificonfigwidgetbase.ui.h	2007-03-01 19:28:55 UTC (rev 116)
@@ -53,8 +53,14 @@
 	   return;
                }
 	
-	ifConfigLine="inet " + lineIP->text() + " netmask " + lineNetmask->text();
+	if ( checkMAC->isChecked() ) { 
+	    ifConfigLine="inet " + lineIP->text() + " netmask " + lineNetmask->text();
+	} else {
+	    ifConfigLine="inet " + lineIP->text() + " netmask " + lineNetmask->text() + " ether " + lineMAC->text();
+	}
 	
+	
+	
     } else {
 	ifConfigLine="DHCP";
     }
@@ -220,6 +226,19 @@
    {
       checkDHCP->setChecked(TRUE);
       slotCheckDHCPBox();
+      
+            // Look for the mac address change
+	if ( tmp.find("ether") != -1 ) {
+		tmp2 = tmp;
+		tmp2 = tmp2.remove(0, tmp.find("ether") + 6 );
+		//if ( tmp.find(" ") != -1 ) {
+		//  tmp2.truncate(tmp.find(" ") );
+		//}
+		lineMAC->setText(tmp2);
+		checkMAC->setChecked(FALSE);
+		groupMAC->setEnabled(TRUE);
+	} 
+      
    } else {
 	        // Get the IP address first
 		tmp2 = tmp;
@@ -232,11 +251,25 @@
 		if ( tmp.find("netmask") != -1 ) {
 			tmp2 = tmp;
 			tmp2 = tmp2.remove(0, tmp.find("netmask") + 8 );
-			//tmp2 = tmp2.remove(0, tmp.find(" ") );
+			if ( tmp.find("ether") != -1 ) {
+			tmp2.truncate(tmp.find("ether") );
+			}
 			lineNetmask->setText(tmp2);
 		} else {
 		   lineNetmask->setText("255.255.255.0");
 		}
+		
+	 // Look for the mac address change
+	if ( tmp.find("ether") != -1 ) {
+		tmp2 = tmp;
+		tmp2 = tmp2.remove(0, tmp.find("ether") + 6 );
+		//if ( tmp.find(" ") != -1 ) {
+		//  tmp2.truncate(tmp.find(" ") );
+		//}
+		lineMAC->setText(tmp2);
+		checkMAC->setChecked(FALSE);
+		groupMAC->setEnabled(TRUE);
+	} 
    }
 
 
@@ -754,3 +787,13 @@
         slotApply();
         close();
 }
+
+
+void wificonfigWidgetBase::slotMACClicked()
+{
+   if ( checkMAC->isChecked() ) {
+	groupMAC->setEnabled(FALSE);
+   } else {
+	groupMAC->setEnabled(TRUE);
+   }
+}



More information about the Commits mailing list