No matter how good it is, no torrent client will allow you to choose the files inside a zip file inside the torrent.
Do you understand how torrrents or zip files work? From a technical perspective chosing files from a zip inside a torrent isn't really much harder than chosing files from the torrent itself. Just download the central directory (at the end of the file), read it and you know what parts of the zip file you need for the files you want to extract.
There will be some overhead because you have to download complete peices to verify them but the same applies to multi-file torrrents (there is nothing to ensure that file boundries and peice boundries line up)
Note: this is only possible for zip because it has a central directory in a known place and is not a solid archive, you can't pull off the same thing with a tarball.
Whether any torrent client actually implements this I do not know.
Commercial services where the primary service is free (facebook, twitter, etc) have to strike a balance.
Having lots of users is pretty pointless if very few of those users are seeing any adverts (because they access via third party clients) or directly paying anything. Conversely having a relatively high income per user is pretty pointless if you have very few users.
For your service startup issue I belive the fix is to rename the S symlink to a K symlink rather than removing it completely. Not sure where I learnt this though.
corporate help is fine, i'm sure plenty of corps have helped debian over the years.
corporate dominance OTOH worries me. I'd rather have the descisions about the distro I use argued over by a community than made to fit one corporations needs or wishes possiblly at the expensive of everyone else. Afaict fedora and ubuntu both have some community involvement in the descision making processes but one coroporation (canonical for ubuntu, redhat for fedora) has the ultimate power.
Which is a complier more likely to be able to optimise? polymorphism that is explicit in the language or polymorphism that is hacked together by creating vtables (which are basically structures full of function pointers) manually? Which is more likely to have mistakes made that associate the wrong vtable with an object?
C++ has it's problems but it's the only widely supported language that both provides OOP features and yet still allows the writing of tight code where needed.
Re:too bad GCC is not relevant anymore thanks to L
on
GCC Switches From C to C++
·
· Score: 4, Interesting
AIUI GCC is now GPLv3, the libraries it ships with are GPLv3 with exceptions that allow using them to build non-GPL programs. However they were paranoid about the idea that people would try and save gcc's internal state to disk and then run it through a propietry backend. So they crafted a complex exception that tries to forbid that while allowing most other combinations of gcc with propietry tools.
suffocation is not the same thing as lack of oxygen though the eventual means of death will be the same (no oxygen in the blood to keep the body running) what happens along the way wont.
Our breathing reflexes are driven by CO2,. The presense of lots of CO2 will cause a pressing urge to try and breathe no matter what is in the way or how painful the attempt is. Eventually as the CO2 builds up this urge will override even the urge not to breathe water.
Whereas with unrestricted breathing of pure nitrrogen/helium/argon etc you will just quitely pass out and die.
There isn't much unique about MP3's encoded from CD's.. sure they can probably distinguish between the encoder (and parameters) used to rip the track, but pretty much everyone that rips tracks off of CD's does so with one of the top 3 programs that only expose one or two encoding parameters and those from drop-down lists...
AIUI despite CDs being digital ripping audio CDs is far less of an exact science than reading files off data CDs. Also pirate release groups like to put stuff in the ID3 tags.
So while there will probablly be some MP3s that can't be identified beyond "perfect rip with tool X" there will be others that are pretty clearly pirate due to having flaws and/or tags that precisely match a version of the file going around on the pirate networks.
Now, every song sold through iTunes could have unique-to-the-purchaser information encoded into the MP3. Those files could certainly be detectable, but the only way for Amazon to be sure that you are a pirate is to be in cahoots with Apple.. to have the inside information necessary to determine that you arent the owner. Not likely..
No but if they see a thousand instances of the file with the same "unique" information on different peoples accounts they will know that most of them are pirate.
Heck, since when has there even been a flying car?
The problem with a term like "flying car" is it means different things to different people.
If we define it as a vehicle that can be flown arround arround and land anywhere with a moderate sized peice of flat open space that exists. It's called a helicopter. But it's so expensive and difficult to fly so only the super-rich (who can afford to pay commercial pilots) can afford to use it as a regular means of transportation.
If we define it as a vehicle that can do the above and be driven arround then normal roads when on the ground then that is technically extremely challenging due to size and weight compromises. I don't think any such thing has got past teathered testing.
If we define it as a vehicle that can fly arround and be driven on the roads but needs an airstrip to takeoff and land then that exists but hasn't yet been successfully commercialised.
AIUI flight plans only have to be filed if a plane is going to be flying under IFR or flying in controlled airspace and there are lots of small quiet airstrips out there.
I could be wrong but I'd expect to see a relatively small number of big routers (big enough to deal with full internet routing tables) at the network edge and then a larger number or switches to connect the content servers to the routers and then an even larger number of content servers.
I'd also expect to see collocated content servers in some cases. Particularly for a rare spike like the london olympics.
If you've caused them any pain it's miniscule, they've regrouped, patched a few systems, installed a couple of load balancers, whatever it is they do.
You need sufficiant bandwidth to receive all the traffic (legit and DDoS) and then sufficient hardware to return legitimate responses for the legimate traffic while dealing with the DDoS traffic. Depending on the details of the DDoS traffic it may be possible to filter it or it may have to be dealt with as if it was legitimate traffic. For a large scale DDoS attack you are unlikely to have these resources in-house so you will have to find a company (likely a content delivery network) to do it for you. Unless you are lucky enough to have someone who has the resources take pity on you then you will have to pay for these services.
And you can't just ignore a DDoS attack and wait for it to go away because your hosting provider is unlikely to let you.
The question is who will break first, the entity who has to pay for DDoS mitigation services or the entities performing the DDoS attacks. It's certainly not a forgone conclustion that the attacker(s) will break first.
though I don't see why it couldn't be offered as a paid service to offset our licence fee.
Trouble is in a lot of cases the BBC can't legally do that either because they bought UK only rights to the content in question from the content owners or for content they created themselves they have sold exclusive country specific rights to foreign broadcasters.
So any subscription based iPlayer for foreigners would end up with only a fraction of the content the UK iPlayer gets.
Also afaict the BBC gets traffic to most UK ISPs virtually free due to peering agreements whereas for foreigners they would have to pay transit fees. The prices for foreigners would have to be high enough to reflect this.
And why would anyone want to use PS/2 in a new design, anyway?
Some users of KVM switches or older computers may find it useful and I doubt there is any signficiant cost difference between a chip that can scan a keyboard and output over USB and one that can scan a keyboard and autodetects USB or PS2.
Also IIRC there is a design flaw in the USB keyboard specs which limits the number of keys that can register as down at the same time.
Besides, governments rise and fall, but bitcoins are forever.
Bitcoins only have value as long as people want them. If the system is disrupted to the point that people no longer find them a useful way to move money arround their value is likely to drop like a stone.
It is also important to note that we are still in the initial phase of bitcoin where "miners" (those providing security to the system) are paid through allocation of new bitcoins. These payments will gradually drop over time
If an attacker gets more mining hardware than the rest of the network put together they can outrun the "good" blockchain and thereby reverse transactions they have made. This allows them to create a lot of disruption and potentially collapse the bitcoin economy. Given current bitcoin network hashrate and current mining hardware costs I estimate putting together such a system would cost somewhere of the order of 10 million dollars.
Transaction fee income is supposed to replace reward allocations but whether it actually will or not remains to be seen. If it doesn't then the ammount of "good" miners could reduce making it easier for evil miners to buy enough computing resources to outrun the "good" blockchain.
what is the natural consequence of using floating point data types for fiscal transactions?
Using floating point data types to store fiscal data is not so bad as long as you aren't running too close to the limits of precision.
The problem comes if you use standard floating point operators to manipulate them. Those operators will almost certainly not apply financial rounding rules and so you may end up with answers that are slightly different from what a human accountant or a programmer following the rules for a human accountant would come up with.
Java DOES NOT have properties at the language level meaning that code using objects inevitablly ends up get/set infested making lines of code unnecessarily long and obscure. If you have ever programmed in a language that has proper support for them it's painful to switch to a language that doesn't.
I guess you never programmed in Java.
I have programmed in java usually because of libraries I wanted to use and wide support but I find it a horribly constricting language to work in.
Method pointers..... I guess you have no clue of how object oriented programing works.
Method pointers are by far the neatest soloution to event handling i've come across though admittedly inner classes aren't worlds away from method pointers just uglier (much like the getters and setters java coders use to make up for the lack of properties).
user defined types..... what the hell do you think classes are?
I said value types. Java classes always have an implicit pointer.
So if I want a big array of my custom data type I either have to seperately allocate every element creating a load of unnessacery work for the memory manager and an unnessacery pointer lookup on every access or use paralell arrays of primitives (which is what those who want high performance and are stuck with java do but it's a pretty twisted way to code).
parameter pass by reference.... are you really this dumb??? How the hell do you think Java passes data??
Java parameters are always passed by value. This along with the lack of user value types means that all your options for returning more than a single numeric value from a function suck.
You can create an object and return it. Unless the VM is doing REALLY clever optimisation* this means that for every invocation of the function an object will be created and most likely thrown away.
You can fill in values in an object provided by the parent (while the parameter itself is passed by value the implicit pointer mentioned about comes into play so the function can change the objects fields even though it can't change what object the caller is referring to). This isn't as bad as the first option but depending on how often the parent function is called it can still create loads of unneeded garbage.
You can use static variables or fields in the object the function belogs to (if it's an instance function) etc (YUCK).
operator overloading.... HINT: Java is not C.
Afaict Java is basically the subset of C++ that sun thought crappy programmers could come with and that they could successfully sandbox (with the technology of the early 1990s) with garbage collection (which was needed because manual memory management is hard to sandbox and hard for crappy programmers to cope with) added on.
you don't even have the ability to self educate yourself.
You sound like someone who completely lacks the experience to compare and contrast different programming languages.
* I firmly belive that if you have to implement escape analysis to make up for the lack of reference parameters your language is fundamentally broken.
a skill programmer would know that Java has evolved and that the language has many features that it didn't have in v1.0
A few new features have been added to the java language over the yers but many features that have been in other languages for years are still missing. For example
properties* method pointers** user defined value types parameter pass by reference operator overloading
* Specifically i'm reffering to the language feature that VB and Delphi have, not the conventions that Java has to make up for the lack of that language feature. ** You can achive a somewhat similar effect with interfaces and inner classes but it''s a lot messier.
Are you old enough to rememeber the great netscape rewrite in the late 1990s? Netscape 4.x was getting seriously outdated and netscape 6/mozilla was regarded as being slow. Contemporary versions of internet explorer (4-5) were regarded as being better. Sure the CSS support in IE was pretty poor but at the time noone cared because most of the the web at the time used table based layouts. Tabbed browsing hadn't been introduced in any mainstream browser yet.
However after the release of IE6 was released in 2001 IE stagnated. During over the next 5 years IE6 started to look gradually more and more outdated. As other browsers perfected their CSS support IEs remained broken.. As others introduced tabbed browsing to help users cope with the large numbers of websites that more modern computers could handle having open at once IE stayed at single page per window. As others introduced popup blocking measures to deal with intrusive advertisers and sites that exited purely to screw with users IE continued to let sites open whatever windows they wanted. Activex turned out to be a huge security mistake and requirements for controls to be signed and warning popups did not prove sufficient to put the security genie back in the bottle. MS gradually started to lose marketshare (though they remained the most common browser).
Finally faced with erroding marketshare MS started work on IE again and released IE7 in 2006 to try and catch up with the features offered by other browsers.
The problem is that optical media is generally pretty small, one large hard drive is equivilent to a few hundred dual layer DVDs.
I believe the only way to keep data safe for the long term is to both keep multiple copies and keep checking those copies for readability and lack of corruption. The less pieces of media it takes to store a copy of your collection the less effort checking and recopying it is.
Hardware is more expensive and choice is limited to the big brands.
Hardware is more expensive than in the US certainly and new stuff tends to be delayed a bit but it's certainly not "limited to the big brands". There is plenty of unbranded crap and stuff from smaller brands available if that is what you want.
If your network is slow, it's going to be slower to download a CD image that has packages you won't use on it than it is to just download the packages you need.
True, but you can do other things with the machine while it's downloading a CD image (assuming it has some sort of OS on already), not so much while it's installing an OS.
If you want to do multiple installs, it's easy to set up a local cache with apt-cacher.
sure if all the machines are at the same location and you are skilled enough to set up apt-cacher (it's not massively difficult to set up but it's not exactly newbie friendly either).
No matter how good it is, no torrent client will allow you to choose the files inside a zip file inside the torrent.
Do you understand how torrrents or zip files work? From a technical perspective chosing files from a zip inside a torrent isn't really much harder than chosing files from the torrent itself. Just download the central directory (at the end of the file), read it and you know what parts of the zip file you need for the files you want to extract.
There will be some overhead because you have to download complete peices to verify them but the same applies to multi-file torrrents (there is nothing to ensure that file boundries and peice boundries line up)
Note: this is only possible for zip because it has a central directory in a known place and is not a solid archive, you can't pull off the same thing with a tarball.
Whether any torrent client actually implements this I do not know.
Objective-C can be considerably faster than C++,
I'd like to see a source for that claim, the wikipedia article implies (but doesn't explicitly state) the opposite.
Commercial services where the primary service is free (facebook, twitter, etc) have to strike a balance.
Having lots of users is pretty pointless if very few of those users are seeing any adverts (because they access via third party clients) or directly paying anything. Conversely having a relatively high income per user is pretty pointless if you have very few users.
For your service startup issue I belive the fix is to rename the S symlink to a K symlink rather than removing it completely. Not sure where I learnt this though.
corporate help is fine, i'm sure plenty of corps have helped debian over the years.
corporate dominance OTOH worries me. I'd rather have the descisions about the distro I use argued over by a community than made to fit one corporations needs or wishes possiblly at the expensive of everyone else. Afaict fedora and ubuntu both have some community involvement in the descision making processes but one coroporation (canonical for ubuntu, redhat for fedora) has the ultimate power.
Which is a complier more likely to be able to optimise? polymorphism that is explicit in the language or polymorphism that is hacked together by creating vtables (which are basically structures full of function pointers) manually? Which is more likely to have mistakes made that associate the wrong vtable with an object?
C++ has it's problems but it's the only widely supported language that both provides OOP features and yet still allows the writing of tight code where needed.
AIUI GCC is now GPLv3, the libraries it ships with are GPLv3 with exceptions that allow using them to build non-GPL programs. However they were paranoid about the idea that people would try and save gcc's internal state to disk and then run it through a propietry backend. So they crafted a complex exception that tries to forbid that while allowing most other combinations of gcc with propietry tools.
suffocation is not the same thing as lack of oxygen though the eventual means of death will be the same (no oxygen in the blood to keep the body running) what happens along the way wont.
Our breathing reflexes are driven by CO2,. The presense of lots of CO2 will cause a pressing urge to try and breathe no matter what is in the way or how painful the attempt is. Eventually as the CO2 builds up this urge will override even the urge not to breathe water.
Whereas with unrestricted breathing of pure nitrrogen/helium/argon etc you will just quitely pass out and die.
There isn't much unique about MP3's encoded from CD's.. sure they can probably distinguish between the encoder (and parameters) used to rip the track, but pretty much everyone that rips tracks off of CD's does so with one of the top 3 programs that only expose one or two encoding parameters and those from drop-down lists...
AIUI despite CDs being digital ripping audio CDs is far less of an exact science than reading files off data CDs. Also pirate release groups like to put stuff in the ID3 tags.
So while there will probablly be some MP3s that can't be identified beyond "perfect rip with tool X" there will be others that are pretty clearly pirate due to having flaws and/or tags that precisely match a version of the file going around on the pirate networks.
Now, every song sold through iTunes could have unique-to-the-purchaser information encoded into the MP3. Those files could certainly be detectable, but the only way for Amazon to be sure that you are a pirate is to be in cahoots with Apple.. to have the inside information necessary to determine that you arent the owner. Not likely..
No but if they see a thousand instances of the file with the same "unique" information on different peoples accounts they will know that most of them are pirate.
Note: I don't really agree with the GP.
Heck, since when has there even been a flying car?
The problem with a term like "flying car" is it means different things to different people.
If we define it as a vehicle that can be flown arround arround and land anywhere with a moderate sized peice of flat open space that exists. It's called a helicopter. But it's so expensive and difficult to fly so only the super-rich (who can afford to pay commercial pilots) can afford to use it as a regular means of transportation.
If we define it as a vehicle that can do the above and be driven arround then normal roads when on the ground then that is technically extremely challenging due to size and weight compromises. I don't think any such thing has got past teathered testing.
If we define it as a vehicle that can fly arround and be driven on the roads but needs an airstrip to takeoff and land then that exists but hasn't yet been successfully commercialised.
Except planes have to file flight plans
AIUI flight plans only have to be filed if a plane is going to be flying under IFR or flying in controlled airspace and there are lots of small quiet airstrips out there.
I could be wrong but I'd expect to see a relatively small number of big routers (big enough to deal with full internet routing tables) at the network edge and then a larger number or switches to connect the content servers to the routers and then an even larger number of content servers.
I'd also expect to see collocated content servers in some cases. Particularly for a rare spike like the london olympics.
If you've caused them any pain it's miniscule, they've regrouped, patched a few systems, installed a couple of load balancers, whatever it is they do.
You need sufficiant bandwidth to receive all the traffic (legit and DDoS) and then sufficient hardware to return legitimate responses for the legimate traffic while dealing with the DDoS traffic. Depending on the details of the DDoS traffic it may be possible to filter it or it may have to be dealt with as if it was legitimate traffic. For a large scale DDoS attack you are unlikely to have these resources in-house so you will have to find a company (likely a content delivery network) to do it for you. Unless you are lucky enough to have someone who has the resources take pity on you then you will have to pay for these services.
And you can't just ignore a DDoS attack and wait for it to go away because your hosting provider is unlikely to let you.
The question is who will break first, the entity who has to pay for DDoS mitigation services or the entities performing the DDoS attacks. It's certainly not a forgone conclustion that the attacker(s) will break first.
http://research.lifeboat.com/spam2.htm
though I don't see why it couldn't be offered as a paid service to offset our licence fee.
Trouble is in a lot of cases the BBC can't legally do that either because they bought UK only rights to the content in question from the content owners or for content they created themselves they have sold exclusive country specific rights to foreign broadcasters.
So any subscription based iPlayer for foreigners would end up with only a fraction of the content the UK iPlayer gets.
Also afaict the BBC gets traffic to most UK ISPs virtually free due to peering agreements whereas for foreigners they would have to pay transit fees. The prices for foreigners would have to be high enough to reflect this.
And why would anyone want to use PS/2 in a new design, anyway?
Some users of KVM switches or older computers may find it useful and I doubt there is any signficiant cost difference between a chip that can scan a keyboard and output over USB and one that can scan a keyboard and autodetects USB or PS2.
Also IIRC there is a design flaw in the USB keyboard specs which limits the number of keys that can register as down at the same time.
Besides, governments rise and fall, but bitcoins are forever.
Bitcoins only have value as long as people want them. If the system is disrupted to the point that people no longer find them a useful way to move money arround their value is likely to drop like a stone.
It is also important to note that we are still in the initial phase of bitcoin where "miners" (those providing security to the system) are paid through allocation of new bitcoins. These payments will gradually drop over time
If an attacker gets more mining hardware than the rest of the network put together they can outrun the "good" blockchain and thereby reverse transactions they have made. This allows them to create a lot of disruption and potentially collapse the bitcoin economy. Given current bitcoin network hashrate and current mining hardware costs I estimate putting together such a system would cost somewhere of the order of 10 million dollars.
Transaction fee income is supposed to replace reward allocations but whether it actually will or not remains to be seen. If it doesn't then the ammount of "good" miners could reduce making it easier for evil miners to buy enough computing resources to outrun the "good" blockchain.
Right but that isn're really a problem for storage, more of a problem for processing.
what is the natural consequence of using floating point data types for fiscal transactions?
Using floating point data types to store fiscal data is not so bad as long as you aren't running too close to the limits of precision.
The problem comes if you use standard floating point operators to manipulate them. Those operators will almost certainly not apply financial rounding rules and so you may end up with answers that are slightly different from what a human accountant or a programmer following the rules for a human accountant would come up with.
Properties .... really??
Java DOES NOT have properties at the language level meaning that code using objects inevitablly ends up get/set infested making lines of code unnecessarily long and obscure. If you have ever programmed in a language that has proper support for them it's painful to switch to a language that doesn't.
I guess you never programmed in Java.
I have programmed in java usually because of libraries I wanted to use and wide support but I find it a horribly constricting language to work in.
Method pointers ..... I guess you have no clue of how object oriented programing works.
Method pointers are by far the neatest soloution to event handling i've come across though admittedly inner classes aren't worlds away from method pointers just uglier (much like the getters and setters java coders use to make up for the lack of properties).
user defined types ..... what the hell do you think classes are?
I said value types. Java classes always have an implicit pointer.
So if I want a big array of my custom data type I either have to seperately allocate every element creating a load of unnessacery work for the memory manager and an unnessacery pointer lookup on every access or use paralell arrays of primitives (which is what those who want high performance and are stuck with java do but it's a pretty twisted way to code).
parameter pass by reference .... are you really this dumb??? How the hell do you think Java passes data??
Java parameters are always passed by value. This along with the lack of user value types means that all your options for returning more than a single numeric value from a function suck.
You can create an object and return it. Unless the VM is doing REALLY clever optimisation* this means that for every invocation of the function an object will be created and most likely thrown away.
You can fill in values in an object provided by the parent (while the parameter itself is passed by value the implicit pointer mentioned about comes into play so the function can change the objects fields even though it can't change what object the caller is referring to). This isn't as bad as the first option but depending on how often the parent function is called it can still create loads of unneeded garbage.
You can use static variables or fields in the object the function belogs to (if it's an instance function) etc (YUCK).
operator overloading .... HINT: Java is not C.
Afaict Java is basically the subset of C++ that sun thought crappy programmers could come with and that they could successfully sandbox (with the technology of the early 1990s) with garbage collection (which was needed because manual memory management is hard to sandbox and hard for crappy programmers to cope with) added on.
you don't even have the ability to self educate yourself.
You sound like someone who completely lacks the experience to compare and contrast different programming languages.
* I firmly belive that if you have to implement escape analysis to make up for the lack of reference parameters your language is fundamentally broken.
a skill programmer would know that Java has evolved and that the language has many features that it didn't have in v1.0
A few new features have been added to the java language over the yers but many features that have been in other languages for years are still missing. For example
properties*
method pointers**
user defined value types
parameter pass by reference
operator overloading
* Specifically i'm reffering to the language feature that VB and Delphi have, not the conventions that Java has to make up for the lack of that language feature.
** You can achive a somewhat similar effect with interfaces and inner classes but it''s a lot messier.
Are you old enough to rememeber the great netscape rewrite in the late 1990s? Netscape 4.x was getting seriously outdated and netscape 6/mozilla was regarded as being slow. Contemporary versions of internet explorer (4-5) were regarded as being better. Sure the CSS support in IE was pretty poor but at the time noone cared because most of the the web at the time used table based layouts. Tabbed browsing hadn't been introduced in any mainstream browser yet.
However after the release of IE6 was released in 2001 IE stagnated. During over the next 5 years IE6 started to look gradually more and more outdated. As other browsers perfected their CSS support IEs remained broken.. As others introduced tabbed browsing to help users cope with the large numbers of websites that more modern computers could handle having open at once IE stayed at single page per window. As others introduced popup blocking measures to deal with intrusive advertisers and sites that exited purely to screw with users IE continued to let sites open whatever windows they wanted. Activex turned out to be a huge security mistake and requirements for controls to be signed and warning popups did not prove sufficient to put the security genie back in the bottle. MS gradually started to lose marketshare (though they remained the most common browser).
Finally faced with erroding marketshare MS started work on IE again and released IE7 in 2006 to try and catch up with the features offered by other browsers.
Note that there is no "they" or "them" about this, the change was made by one person and could still be reverted and/or start a flamewar.
The problem is that optical media is generally pretty small, one large hard drive is equivilent to a few hundred dual layer DVDs.
I believe the only way to keep data safe for the long term is to both keep multiple copies and keep checking those copies for readability and lack of corruption. The less pieces of media it takes to store a copy of your collection the less effort checking and recopying it is.
Hardware is more expensive and choice is limited to the big brands.
Hardware is more expensive than in the US certainly and new stuff tends to be delayed a bit but it's certainly not "limited to the big brands". There is plenty of unbranded crap and stuff from smaller brands available if that is what you want.
If your network is slow, it's going to be slower to download a CD image that has packages you won't use on it than it is to just download the packages you need.
True, but you can do other things with the machine while it's downloading a CD image (assuming it has some sort of OS on already), not so much while it's installing an OS.
If you want to do multiple installs, it's easy to set up a local cache with apt-cacher.
sure if all the machines are at the same location and you are skilled enough to set up apt-cacher (it's not massively difficult to set up but it's not exactly newbie friendly either).