Cricktor
Legendary
Offline
Activity: 1372
Merit: 3487
|
 |
August 17, 2025, 04:22:51 PM |
|
Fulcrum is synced. 165 GB database.
Seems to be correct, here's mine: root@umbrel:/home/umbrel/umbrel/app-data/fulcrum# du -h data/ 4.0K data/fulcrum-logs 4.0K data/fulcrum-app-logs 178M data/fulcrum/undo 23G data/fulcrum/txhash2txnum 72M data/fulcrum/blkinfo 12M data/fulcrum/rpa 85G data/fulcrum/scripthash_history 16G data/fulcrum/utxoset 14M data/fulcrum/meta 6.6G data/fulcrum/scripthash_unspent 166G data/fulcrum 166G data/
Just so everyone knows. They will have to copy and paste the command "wallet.relayfee = (lambda: 0)" into the console every time they run Electrum and connect to a server to make below 1 sat/vByte transactions. That's how it is at least for now.
That's OK for me. My own Fulcrum Electrum server talks to my Core node that has 0.1sat/vB as lower limit. Unfortunately my node doesn't seem to get any transactions below 1sat/vB from its peers, which seem all to be still on default 1sat/vB limit. Therefore I don't expect that my node will succeed to broadcast a sub 1sat/vB transaction to any supporting mining pool. Meeh! I'm OK to sign the transaction with Electrum and then copy/paste the raw hex transaction to mempool.space's broadcast box.
|
|
|
|
LoyceV (OP)
Legendary
Offline
Activity: 3920
Merit: 20973
Thick-Skinned Gang Leader and Golden Feather 2021
|
 |
August 17, 2025, 04:36:34 PM |
|
I just wrote the smallest Electrum plugin ever that just runs this command at start. This is convenient! You just violated the MIT license by distributing your software under that license without including the license itself:The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
¡uʍop ǝpᴉsdn pɐǝɥ ɹnoʎ ɥʇᴉʍ ʎuunɟ ʞool no⅄
|
|
|
TryNinja
Legendary
Offline
Activity: 3444
Merit: 9644
@ List of no-KYC websites: https://bitlist.co
|
 |
August 17, 2025, 06:05:42 PM |
|
I just wrote the smallest Electrum plugin ever that just runs this command at start. This is convenient! You just violated the MIT license by distributing your software under that license without including the license itself:The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. Are you saying I need to add the actual text: Copyright 2025 TryNinja
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. In a file, inside the zip?  They can come and sue me.
|
|
|
|
|
|
.. Duel.com | █████████████████████████ █████████████████████████ ████░░▀███████████▀░░████ ████▄░░░▀███████▀░░░▄████ ██████▄░░░▀███▀░░░▄██████ ████████▄░▄█▀░░░▄████████ ██████████▀░░░▄██████████ █████▀▀█▀░░░▄█▀░▀█▀▀█████ █████▄░░░░▄███▄░░░░▄█████ █████▀░░░░▀███▀░░░░▀█████ ████▄░▄██▄▄███▄▄██▄░▄████ █████████████████████████ █████████████████████████ | █████████████████████████ █████████████████████████ ████████████▌░░▀▀▀███████ ████████████░░░░░░░░░████ ████▀▀▀░░▐█▌░▄██▄▄░░▐████ ████▌░░░░██░░██████░█████ █████░░░▐█▌░░░██▀▀░▐█████ █████▌░░██░░░░░░░░░██████ ██████░▐██▄▄▄░░░░░▐██████ ██████▌░░▀▀▀▀███▄▄███████ ███████░░▄▄▄█████████████ █████████████████████████ █████████████████████████ | █████████████████████████ █████████████████████████ ████████▀▀░░░░░▀▀████████ ██████▀▄███▄░▄███▄▀██████ █████░▐████▀░▀████▌░█████ ████░░░▀▀▀░░░░░▀▀▀░░░████ ████░▄██▄░░░░░░░▄██▄░████ ████░████▄░░░░░▄████░████ █████░▀▀█▀▄▄▄▄▄▀█▀▀░█████ ██████▄░░▐█████▌░░▄██████ ████████▄▄░▀▀▀░▄▄████████ █████████████████████████ █████████████████████████ | THE FIRST CASINO THAT GIVES A F. ....Play Now.... .... |
|
|
|
LoyceV (OP)
Legendary
Offline
Activity: 3920
Merit: 20973
Thick-Skinned Gang Leader and Golden Feather 2021
|
 |
August 18, 2025, 09:40:35 AM Last edit: August 20, 2025, 01:16:06 PM by LoyceV |
|
Server is running: electrum.loyce.club:50002
I still need to change the minimum relay fee. Done. I still need a better domain name.
I'm surprised to see 190 clients connected already, just minutes after I created the SSL certificate.
Question: How do I connect my Bitcoin Core to nodes that accept 0.1 sat/vbyte transaction so they can be broadcasted? Google assumes I want to connect miner if I search how to do this, so that's not helpful.
|
¡uʍop ǝpᴉsdn pɐǝɥ ɹnoʎ ɥʇᴉʍ ʎuunɟ ʞool no⅄
|
|
|
Pmalek
Legendary
Offline
Activity: 3374
Merit: 8944
|
 |
August 18, 2025, 12:40:06 PM |
|
Question: How do I connect my Bitcoin Core to nodes that accept 0.1 sat/vbyte transaction so they can be broadcasted? Google assumes I want to connect miner if I search how to do this, so that's not helpful.
It's not exactly what you asked for but it can help and allows you to connect to a few nodes that have been reported as relaying 0.1 sat/vByte transactions. You will find a list with a some nodes here > https://github.com/theDavidCoen/sub1sat-node-listYou can then connect to them manually with the command: bitcoin-cli addnode <ip>:<port> add You can also update your bitcoin configuration file to add info of those nodes permanently. The command for that is:
|
|
|
|
Cricktor
Legendary
Offline
Activity: 1372
Merit: 3487
|
 |
August 18, 2025, 06:42:22 PM |
|
I still need to change the minimum relay fee. Done.
Apologies if this may sound like a very stupid question, but I can't exclude if I've overseen something for my Fulcrum Electrum server config. Can you describe briefly what you've changed? I've only configured my Bitcoin Core node to accept and relay sub 1sat/vB transactions to which my Fulcrum talks. I can't remember having seen any config option for Fulcrum regarding this.
|
|
|
|
LoyceV (OP)
Legendary
Offline
Activity: 3920
Merit: 20973
Thick-Skinned Gang Leader and Golden Feather 2021
|
 |
August 18, 2025, 07:08:14 PM Last edit: August 19, 2025, 12:34:07 PM by LoyceV |
|
Apologies if this may sound like a very stupid question, but I can't exclude if I've overseen something for my Fulcrum Electrum server config. Can you describe briefly what you've changed? The fact that you ask this makes me think I may be the stupid one here. All I did was change the minimum in Bitcoin Core: bitcoind -maxuploadtarget=400000 -dbcache=16384 -rpcuser=user -rpcpassword=pass -rpcport=number -minrelaytxfee=0.000001 I must admit I haven't tested a broadcast yet, I don't need to send anything and don't like wasting sats on fees (even at low rates). I've only configured my Bitcoin Core node to accept and relay sub 1sat/vB transactions to which my Fulcrum talks. I can't remember having seen any config option for Fulcrum regarding this. That's what I did 
|
¡uʍop ǝpᴉsdn pɐǝɥ ɹnoʎ ɥʇᴉʍ ʎuunɟ ʞool no⅄
|
|
|
Cricktor
Legendary
Offline
Activity: 1372
Merit: 3487
|
 |
August 18, 2025, 07:33:35 PM |
|
I have the following in my bitcoin.conf file: # Fee rate (in BTC/kB) used to define cost of relay, used for mempool limiting and BIP 125 replacement. incrementalrelayfee=0.000001
# Fee rates (in BTC/kB) smaller than this are considered zero fee for transaction creation mintxfee=0.000001
# Fee rates (in BTC/kB) smaller than this are considered zero fee for relaying, mining and transaction creation. minrelaytxfee=0.000001
(Source of comments to the options from https://jlopp.github.io/bitcoin-core-config-generator/) Can't say to be confident if all three are actually needed. I thought, why not pick anything that's remotely about fees.  Eager to learn more...
|
|
|
|
|
|
LoyceV (OP)
Legendary
Offline
Activity: 3920
Merit: 20973
Thick-Skinned Gang Leader and Golden Feather 2021
|
 |
August 19, 2025, 12:52:35 PM Last edit: August 19, 2025, 03:16:13 PM by LoyceV Merited by Cricktor (2), vapourminer (1) |
|
Someone sent dust to my Bitcoin Core wallet, so that's a good moment to test low-fee transactions. In Bitcoin Core, I needed to add this to be able to set a transaction fee lower than 1 sat/vbyte: # Fee rates (in BTC/kB) smaller than this are considered zero fee for transaction creation I sent the dust from Bitcoin Core to Electrum (connected to my own node). With default settings, the transaction didn't show up on mempool.space until I used their own Broadcast Transaction (note that my own local node used the default settings up until a few minutes ago). My transaction paid 0.32 sat/vbyte (35 sats, $0.04) and is now waiting for confirmation in Electrum. Electrum told me this input is "frozen". I'm not sure if that's the new default for unconfirmed transactions, but I haven't tried to spend unconfirmed inputs for a while. After unfreezing, I could send a transaction to myself. This pays 0.20 sat/vbyte (22 sats, $0.03). After broadcasting this transaction on Electrum, and without manually adding low-fee nodes to Fulcrum's Bitcoin Core, this transaction showed up on mempool.space! This means it reaches other low-fee nodes on it's own. I like it  Update: my first low-fee transaction is confirmed, the second (with lower fee) is much further down the line.
|
¡uʍop ǝpᴉsdn pɐǝɥ ɹnoʎ ɥʇᴉʍ ʎuunɟ ʞool no⅄
|
|
|
nc50lc
Legendary
Offline
Activity: 3024
Merit: 8248
Self-proclaimed Genius
|
Electrum told me this input is "frozen". I'm not sure if that's the new default for unconfirmed transactions, but I haven't tried to spend unconfirmed inputs for a while.
That was Electrum's precaution to prevent unconfirmed dust outputs to be spent with your other UTXO in case it has a chain of unconfirmed parents or very low fee. Here's the relevant commit for reference: github.com/spesmilo/electrum/commit/27cd0780010462075151efecfacc1f72012efb97Since v4.1.0
|
|
|
|
LoyceV (OP)
Legendary
Offline
Activity: 3920
Merit: 20973
Thick-Skinned Gang Leader and Golden Feather 2021
|
 |
August 20, 2025, 06:37:15 AM Last edit: August 20, 2025, 01:23:44 PM by LoyceV |
|
That was Electrum's precaution to prevent unconfirmed dust outputs to be spent with your other UTXO in case it has a chain of unconfirmed parents or very low fee. That makes sense  At least I could overwrite it. Electrum should do the same for any small input that isn't worth the fee it takes to send it at that moment. I still see transactions with dust inputs that add more to the total transaction fee than their value. So without those inputs, the transaction would be smaller and the user would spend less.My server now uses the correct domain name: Server is running: electrum.loyce.club:50002
|
¡uʍop ǝpᴉsdn pɐǝɥ ɹnoʎ ɥʇᴉʍ ʎuunɟ ʞool no⅄
|
|
|
khaled0111
Legendary
Offline
Activity: 3136
Merit: 3313
|
 |
August 23, 2025, 06:59:26 PM |
|
I have a question, and I apologize if it sounds stupid or if it has already been answered and I missed it. But as far as I know, a satoshi is the base unit in Bitcoin, so outputs and absolute fees must be integers (no decimals), right?
Let’s say I set the fee rate to 0.1 sat/vB and the transaction size is 141 vbytes. Then the absolute fee will be 14.1 sats. What happens to the 0.1 sat (and 0.9 in change)?
Will 1 sat (0.1 from the fee and 0.9 from change) be lost, or will Electrum round the number up to the next integer?
|
|
|
|
|
|
| . betpanda.io | │ |
ANONYMOUS & INSTANT .......ONLINE CASINO....... | │ | ▄███████████████████████▄ █████████████████████████ █████████████████████████ ████████▀▀▀▀▀▀███████████ ████▀▀▀█░▀▀░░░░░░▄███████ ████░▄▄█▄▄▀█▄░░░█▄░▄█████ ████▀██▀░▄█▀░░░█▀░░██████ ██████░░▄▀░░░░▐░░░▐█▄████ ██████▄▄█░▀▀░░░█▄▄▄██████ █████████████████████████ █████████████████████████ █████████████████████████ ▀███████████████████████▀ | ▄███████████████████████▄ █████████████████████████ ██████████▀░░░▀██████████ █████████░░░░░░░█████████ ████████░░░░░░░░░████████ ████████░░░░░░░░░████████ █████████▄░░░░░▄█████████ ███████▀▀▀█▄▄▄█▀▀▀███████ ██████░░░░▄░▄░▄░░░░██████ ██████░░░░█▀█▀█░░░░██████ ██████░░░░░░░░░░░░░██████ █████████████████████████ ▀███████████████████████▀ | ▄███████████████████████▄ █████████████████████████ ██████████▀▀▀▀▀▀█████████ ███████▀▀░░░░░░░░░███████ ██████▀░░░░░░░░░░░░▀█████ ██████░░░░░░░░░░░░░░▀████ ██████▄░░░░░░▄▄░░░░░░████ ████▀▀▀▀▀░░░█░░█░░░░░████ ████░▀░▀░░░░░▀▀░░░░░█████ ████░▀░▀▄░░░░░░▄▄▄▄██████ █████░▀░█████████████████ █████████████████████████ ▀███████████████████████▀ | .
SLOT GAMES ....SPORTS.... LIVE CASINO | │ | ▄░░▄█▄░░▄ ▀█▀░▄▀▄░▀█▀ ▄▄▄▄▄▄▄▄▄▄▄ █████████████ █░░░░░░░░░░░█ █████████████ ▄▀▄██▀▄▄▄▄▄███▄▀▄ ▄▀▄██▄███▄█▄██▄▀▄ ▄▀▄█▐▐▌███▐▐▌█▄▀▄ ▄▀▄██▀█████▀██▄▀▄ ▄▀▄█████▀▄████▄▀▄ ▀▄▀▄▀█████▀▄▀▄▀ ▀▀▀▄█▀█▄▀▄▀▀ | Regional Sponsor of the Argentina National Team |
|
|
|
LoyceV (OP)
Legendary
Offline
Activity: 3920
Merit: 20973
Thick-Skinned Gang Leader and Golden Feather 2021
|
I have a question, and I apologize if it sounds stupid or if it has already been answered and I missed it. But as far as I know, a satoshi is the base unit in Bitcoin, so outputs and absolute fees must be integers (no decimals), right? Yes. In fact, on a protocol level, there are only satoshis. Let’s say I set the fee rate to 0.1 sat/vB and the transaction size is 141 vbytes. Then the absolute fee will be 14.1 sats. What happens to the 0.1 sat (and 0.9 in change)? Fees will be whole sats. So 14 sats fee makes it 0.099 sat/vbyte, which means nodes still reject the transaction. At 15 sats, it will be 0.106 sat/vbyte and can be broadcasted. Will 1 sat (0.1 from the fee and 0.9 from change) be lost, or will Electrum round the number up to the next integer? It's rounded. Or more accurately: the amount in sats/vbyte gets calculated from the transaction size and total fee. The fee in sat/vbyte can have as many decimals as you want, the actual fee is an integer and the amount in sat/vbyte that Electrum shows you is the rounded value.
|
¡uʍop ǝpᴉsdn pɐǝɥ ɹnoʎ ɥʇᴉʍ ʎuunɟ ʞool no⅄
|
|
|
pooya87
Legendary
Offline
Activity: 4060
Merit: 12204
|
 |
August 24, 2025, 03:36:31 AM Merited by khaled0111 (1) |
|
At this point it may be so much cleaner to start reporting fees using sat/kvb instead of sat/vb and that is also the way they are computed by bitcoin core as well. This way we avoid having fractions. So after the minimum changed from 1000 to 100 [1] and we could pay less fees, the 14 sats fee for a 141 vbyte tx mentioned above has a fee rate of 99 sat/kvb which will be nonstandard for being smaller than 100 sat/kvb. [1] https://github.com/glozow/bitcoin/blob/7b4a1350dfd6b3892a9c314eeff28b22ef0c1a73/src/policy/policy.h#L66
|
|
|
|
TheButterZone
Legendary
Offline
Activity: 3122
Merit: 1038
RIP Mommy
|
 |
August 24, 2025, 05:33:22 AM |
|
Just so everyone knows. They will have to copy and paste the command "wallet.relayfee = (lambda: 0)" into the console every time they run Electrum and connect to a server to make below 1 sat/vByte transactions. That's how it is at least for now.
I just wrote the smallest Electrum plugin ever that just runs this command at start. https://files.ninjastic.space/relayfeezero-0.0.1.zipTools -> Plugins -> Add -> Select the zip and install. How to verify I'm not stealing your coins: Just open the ZIP and read the qt.py file. It is a 7 lines very small code which anyone can read and understand.  I thought the installation procedure for Electrum on OSX was to first extract the zip, then copy the resulting folder to Electrum's plugins folder (/Applications/Electrum.app/Contents/MacOS/electrum/plugins according to the Electrum console output of electrum.plugins.__path__) along with the rest of the plugins' respective folders... but when I restart Electrum & open Tools>Plugins, despite being in that top-level plugins folder, yours doesn't appear in the list & there's no add option. (v4.5.8 & I cannot safely upgrade to a higher version of Electrum without buying a new computer)
|
Saying that you don't trust someone because of their behavior is completely valid.
|
|
|
TryNinja
Legendary
Offline
Activity: 3444
Merit: 9644
@ List of no-KYC websites: https://bitlist.co
|
 |
August 24, 2025, 06:04:19 AM |
|
I thought the installation procedure for Electrum on OSX was to first extract the zip, then copy the resulting folder to Electrum's plugins folder (/Applications/Electrum.app/Contents/MacOS/electrum/plugins according to the Electrum console output of electrum.plugins.__path__) along with the rest of the plugins' respective folders... but when I restart Electrum & open Tools>Plugins, despite being in that top-level plugins folder, yours doesn't appear in the list & there's no add option. (v4.5.8 & I cannot safely upgrade to a higher version of Electrum without buying a new computer)
Electrum v4.6.0 added better support for third party plugins: * Third-party plugins: - Electrum supports the installation of plugins distributed by third-parties as ZIP files. While it has long been possible to install third-party plugins when running Electrum from python sources, the same is now possible when using desktop binaries (Windows, MacOS, Linux). Third-party plugins are installed as ZIP files in the user's electrum data directory. - In order to prevent plugin installation by malware, third-party plugins can only be enabled if the user enters a plugin authorization password (distinct from the wallet password). Setting up that plugin authorization password requires administrator permissions on the local machine; a password-derived public key must be written in the system. Plugins probably works a lot differently before 4.6.0, no idea if it's possible to do the same or how to do it. 
|
|
|
|
|
|
.. Duel.com | █████████████████████████ █████████████████████████ ████░░▀███████████▀░░████ ████▄░░░▀███████▀░░░▄████ ██████▄░░░▀███▀░░░▄██████ ████████▄░▄█▀░░░▄████████ ██████████▀░░░▄██████████ █████▀▀█▀░░░▄█▀░▀█▀▀█████ █████▄░░░░▄███▄░░░░▄█████ █████▀░░░░▀███▀░░░░▀█████ ████▄░▄██▄▄███▄▄██▄░▄████ █████████████████████████ █████████████████████████ | █████████████████████████ █████████████████████████ ████████████▌░░▀▀▀███████ ████████████░░░░░░░░░████ ████▀▀▀░░▐█▌░▄██▄▄░░▐████ ████▌░░░░██░░██████░█████ █████░░░▐█▌░░░██▀▀░▐█████ █████▌░░██░░░░░░░░░██████ ██████░▐██▄▄▄░░░░░▐██████ ██████▌░░▀▀▀▀███▄▄███████ ███████░░▄▄▄█████████████ █████████████████████████ █████████████████████████ | █████████████████████████ █████████████████████████ ████████▀▀░░░░░▀▀████████ ██████▀▄███▄░▄███▄▀██████ █████░▐████▀░▀████▌░█████ ████░░░▀▀▀░░░░░▀▀▀░░░████ ████░▄██▄░░░░░░░▄██▄░████ ████░████▄░░░░░▄████░████ █████░▀▀█▀▄▄▄▄▄▀█▀▀░█████ ██████▄░░▐█████▌░░▄██████ ████████▄▄░▀▀▀░▄▄████████ █████████████████████████ █████████████████████████ | THE FIRST CASINO THAT GIVES A F. ....Play Now.... .... |
|
|
|
LoyceV (OP)
Legendary
Offline
Activity: 3920
Merit: 20973
Thick-Skinned Gang Leader and Golden Feather 2021
|
 |
August 24, 2025, 07:21:28 AM |
|
I cannot safely upgrade to a higher version of Electrum without buying a new computer Although I'm very curious why this is (even on an offline computer I'd expect Electrum's AppImage to work), this should also work for the older Electrum version: In that case the old method should still work. You can set wallet.relayfee = (lambda: 0) in the Qt console, and then the GUI lets you do whatever you want. Create even zero-fee txs.
|
¡uʍop ǝpᴉsdn pɐǝɥ ɹnoʎ ɥʇᴉʍ ʎuunɟ ʞool no⅄
|
|
|
TheButterZone
Legendary
Offline
Activity: 3122
Merit: 1038
RIP Mommy
|
 |
August 24, 2025, 07:34:47 AM |
|
I cannot safely upgrade to a higher version of Electrum without buying a new computer Although I'm very curious why this is (even on an offline computer I'd expect Electrum's AppImage to work), this should also work for the older Electrum version: In that case the old method should still work. You can set wallet.relayfee = (lambda: 0) in the Qt console, and then the GUI lets you do whatever you want. Create even zero-fee txs. Yeah, THAT method worked for the older Electrum version, I mentioned my upgrade woes specifically because of the plugin adding being an issue. Latest release: Electrum-4.6.1 macOS (11 and higher)
|
Saying that you don't trust someone because of their behavior is completely valid.
|
|
|
NeuroticFish
Legendary
Offline
Activity: 4284
Merit: 7009
Looking for campaign manager? Contact icopress!
|
 |
August 25, 2025, 07:12:48 PM |
|
First of all: thank you for this topic, it was very clear and very helpful. I am short with time (and lazy too), so I've installed TryNinja's plugin ( thank you!) into my Electrum. I've added into bitcoin.conf the lines from @Cricktor post and I've added the only clearnet node from @Pmalek post (I'd feel better if the list would be bigger). I've restarted by bitcoind and my Fulcrum and I've made a tx with 0.3 sat/vbyte as fee. It's already confirmed too.All the info is there, and it works! A small suggestion would be to maybe centralize all this into the first post so the ones even lazier than me (who also have local ElectrumX) can use it.
|
░░░░▄▄████████████▄ ░▄████████████████▀ ▄████████████████▀▄█▄ ▄███████▀▀░░▄███▀▄████▄ ▄██████▀░░░▄███▀░▀██████▄ ██████▀░░▄████▄░░░▀██████ ██████░░▀▀▀▀░▄▄▄▄░░██████ ██████▄░░░▀████▀░░▄██████ ▀██████▄░▄███▀░░░▄██████▀ ▀████▀▄████░░▄▄███████▀ ▀█▀▄████████████████▀ ▄████████████████▀░ ▀████████████▀▀░░░░ | | CCECASH | | | | ANN THREAD TUTORIAL |
|
|
|
|