yashsingh1/xdaforums huggingface dataset:
[HTC One X] Supaiku:
If anyone wants to have a go with google translate, here is a thread explaining the pictures which have been found on Taobao talking about S-OFF.

But beware: I'm not sure about the legitimacy of the seller on Taobao, and if this method really can be used for the One X, or if it is a generic method for HTC phones (other than the One X).

I don't know so much about phones and development, but I do know Chinese so... :)

http://bbs.app43.com/thread-18623-1-1.html
[HTC One X] ytwytw:
When u submit the token, HTC knows your phone bootloader has been unlocked so they can void your warranty ...

Probably its the same as Sony Ericsson is doing now...

some model the bootloader is not unlockable... (Verizon brings all the hate?!) for certain providers

I don't know just saying :P and I still put my hope on Goldcard method...
[HTC One X] richardtrip:
+1

10 char
[HTC One X] pdagenius:
Round and round in circles we go... ;-)
[HTC One X] Kickasskev:
Yeah he has a sarcastice comment about most things, even on my posts
[HTC One X] kholk:
I've examined the code and you're right, we don't need that.

I correct my previous statement:

That code won't be in my kernel, because we already have what we need into the current kernels.
[HTC One X] GabrielSousa:
how can we see the hidden blocks ?
[HTC One X] kruppin:
It won't work.. Every change we make to /system is undone on reboot. We know we can use qemu=1 to get temp-root, but since /system is reset on reboot it can't be permanent. It's just plain wierd it actually works on the S4 variant.. :p We will probably need s-off or another bootloader exploit to gain perm-root. :/
[HTC One X] ViDtje:
Wouldn't a temp-root method already be nice to have? :)
[HTC One X] blubbers:
Just hardcode it into the kernel, i've posted example code for efi.c a long time ago

But, there is some kind of mechanism that even prevents read access to certain blocks, you don't get a read error, but always the same data over and over again
[HTC One X] GabrielSousa:
can you share the hidden blocks ?
[HTC One X] rbotz:
http://xdaforums.com/showthread.php?p=25788378&highlight=efi+c#post25788378
[HTC One X] kruppin:
Well, the phone doesn't work at all with qemu set, so it's only to get a root shell and ultimately su. But like said many times now, it won't work with our device. Since this is HTC's only tegra 3, we need a exploit specifically for this phone. And other tegra 3 devices hacks probably won't work either since hboot is here. It could work if we're very lucky. And I guess HTC have made nvflash apx mode inaccessible, or it won't help us with everything being signed. And this is why everyone whos not a dev (or atleast have an somewhat understanding of things) should stay away and let them work. :p But I guess the devs actually working on something is some other place.
[HTC One X] blubbers:
Like i said, even when i create the maps for the unmapped blocks, i get repetive data which is wrong because read access to it is redirected to the beginning of the mmc.

I've already shared the interessting data (cid/imei partition), but it is read only.
[HTC One X] Chura:
oops, removed text (EDIT)
[HTC One X] xmoo:
And again someone who got a S-OFF device from HTC for reviewing...

*Frustration*
[HTC One X] KevinB88:
I hope he is helping us
[HTC One X] Evil-Dragon:
I don't understand why HTC supply reviewers with S-OFF devices. It's taunting the rest of the population that actually want it. When you think of it, it's not fair to review a device that's S-OFF, it allows ability to abuse the software and make the phone better/faster for the review. The whole review could be potentially flawed from the word 'go'.

Those with S-OFF phones can only help us in limited ways, just so you know.
[HTC One X] cityuk:
why with the stupid comments like this? rather childish. you clearly haven't read the thread?

your saying to modify an exploit that is for a completely different device? different chipset made by a different company? do you honestly think its that easy to change a few lines of code and if by magic s-off? oh dear...
[HTC One X] P1n3apqlExpr3ss:
I know several reviewers in NZ, yes their units are/were s-off but they were running the standard SEA RUU. I assume those in Europe get s-off standard EU RUU phones, no big deal imo

Hardly a call for optimised software, you're better off complaining about review units being cherry picked considering the amount of gap and flickering issues users, but not reviewers have seen
[HTC One X] tids2k:
sent my phone for repairs, security unlocked lets see what htc has to say about it :-) , i wish i get a left over debug file in my phone :D

when it comes back.
[HTC One X] MVA58:
IMHO, get S-OFF on our device by using a special device that connects to a microUSB connector.

This may be a simple plug with resistor or something more tech with some crypto key or a microprocessor. I am more inclined to the first option - it should be a regular plug with a resistor which determines when device (bootloader) start.

Once the device goes into a special mode, then the plug is removed and device connected to your computer. After that, everything is done through the fastboot.
[HTC One X] Cney:
I love my HOX. It's a kind of love hate relationship. But I have to say that from a Rom and kernel addict kinda way, I miss my HD2. Like when you have a girlfriend you love. Because she is sweet and caring. And would do anything for you. But sometimes you sit next to her thinking of your ex. She was a *****. But what a freak in the bed! Hotdamn!
[HTC One X] MarylandCookie:
Im not even going to get into a childish discussion with you and even if you had some knowledge about past S-Off's you would know that they all started with temp-roots. So i dont know where you got the "magic" idea that changing a script would give S-Off? The idea i had was that If it gave temp root then we can collect together ideas, exploit(s) that work and dont work (regardless of device) and then work towards S-OFF. Dont make assumptions!

P.S

And just for the record, please dont judge/insult my intelligence as you dont know me and nor do you know what i have done for the community. I'm sorry but with these kind of comments im out!
[HTC One X] exocetdj:
Well done!!!! :rolleyes:
[HTC One X] Cney:
I have to say that he is making some sense. I mean have you tried to go into bootloader hooked to your pc or your charger? On my charger it will keep searching for an ad card. While on my pc it would not. I know that according to the fairly new smartphone rules (which not many manufacturers abbide to fully, but HTC does its best) the data leads have to be short circuited (with a resistor) in a charger to accept ac charging at 1000mA one a device. there is no resistor on a USB device so it will only accept 500mA. I had an aftermarket cheap ass charger for my ex... I mean HD2 which was rated at 1000mA but only gave 500mA. After some soldering mods 1000mA was possible.

To cut a long story short.

I think that experimenting with some sort of special cable incorperating a resistor would be a way to go.
[HTC One X] bozza1001:
Is it Werth updating my phone to the latest software as I am waiting for a s-off exploit.

Also has any other HTC user. (And by any other HTC user I don't just mean hox I mean all HTC devices) had problems and things breaking like cid when they have used HTC dev bootloader unlock ? Reason I am asking is there is a lot of HTC models on the drop down list with at the very bottom all other supported models, what if our device is not yet fully supported as our phone is the first to have quad core and I don't know if am right as I'm a newbe but isn't the bootloader a lot to do with the chip set?
[HTC One X] Sentinel196:
Yet another page of absolute rubbish.....

Reported.
[HTC One X] jonas2295:
Why is it called discussion thread then?

Nevermind but yes you are right.
[HTC One X] Chezbel:
It would be best if the discussion was left to the people with some knowledge and/or experience.

Sent from my HTC One X
[HTC One X] Quercus1:
yes, its enough of hobby-knowledge and blabla
[HTC One X] KevinB88:
do you know some people who can help us? I haven't seen many around as long as this thread exists :(
[HTC One X] Htc_One_X:
I know this thread thus far has been a shambles, I would like to thank those who are sticking around and researching. Soon enough your efforts will be rewarded.
[HTC One X] yakooza83:
I have now a long conversation with HTC Support about S-OFF..

the only way is large amount of inquire by htcdev.com/contact..
[HTC One X] Chura:
OP, Can you please update the first post with the status, somethings have changed. and i think clarifying other chipset methods WONT work here.

I have nothing to do with this reverse engineering and i got it :)
[HTC One X] NikMel:
Is this HTC certificate and can we use this somehow?????

Is this a certificate that we can use?

Can we use this certificate for anything?

I picked it out of our system.

:confused::confused:
[HTC One X] Htc_One_X:
This is the content of the HTC.cer file: -----BEGIN CERTIFICATE-----

MIIDKTCCApKgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBzzELMAkGA1UEBhMCWkEx

FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYD

VQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBT

ZXJ2aWNlcyBEaXZpc2lvbjEjMCEGA1UEAxMaVGhhd3RlIFBlcnNvbmFsIFByZW1p

dW0gQ0ExKjAoBgkqhkiG9w0BCQEWG3BlcnNvbmFsLXByZW1pdW1AdGhhd3RlLmNv

bTAeFw05NjAxMDEwMDAwMDBaFw0yMDEyMzEyMzU5NTlaMIHPMQswCQYDVQQGEwJa

QTEVMBMGA1UECBMMV2VzdGVybiBDYXBlMRIwEAYDVQQHEwlDYXBlIFRvd24xGjAY

BgNVBAoTEVRoYXd0ZSBDb25zdWx0aW5nMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9u

IFNlcnZpY2VzIERpdmlzaW9uMSMwIQYDVQQDExpUaGF3dGUgUGVyc29uYWwgUHJl

bWl1bSBDQTEqMCgGCSqGSIb3DQEJARYbcGVyc29uYWwtcHJlbWl1bUB0aGF3dGUu

Y29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJZtn4B0TPuYwu8KHvE0Vs

Bd/eJxZRNkERbGw77f4QfRKe5ZtCmv5gMcNmt3M6SK5O0DI3lIi1DbbZ8/JE2dWI

Et12TfIa/G8jHnrx2JhFTgcQ7xZC0EN1bUre4qrJMf8fAHB8Zs8QJQi6+u4A6UYD

ZicRFTuqW/KY3TZCstqIdQIDAQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqG

SIb3DQEBBAUAA4GBAGk2ifc0KjNyL2071CKyuG+axTZmDhs8obF1Wub9NdP4qPIH

b4Vnjt4rueIXsDqg8A6iAJrf8xQVbrvIhVqYgPn/vnQdPfP+MCXRNzRn+qVxeTBh

KXLA4CxM+1bkOqhv5TJZUtt1KFBZDPgLGeSs2a+WjS9Q2wfD6h+rM+D1KzGJ

-----END CERTIFICATE-----
[HTC One X] DarkMio:
And this is, what is in it:

0�)0��*�0

*�H�÷

�0�Ï10	UZA10UWestern Cape10U	Cape Town10U

Thawte Consulting1(0&UCertification Services Division1#0!UThawte Personal Premium CA1*0(	*�H�÷

personal-premium@thawte.com0

960101000000Z

201231235959Z0�Ï10	UZA10UWestern Cape10U	Cape Town10U

Thawte Consulting1(0&UCertification Services Division1#0!UThawte Personal Premium CA1*0(	*�H�÷

personal-premium@thawte.com0��0

*�H�÷

����0�����ÉfÙøDÏ¹�.ð¡ïElßÞ'Q6All;íþ}�å�B�þ`1Ãf·s:H®NÐ27��µ

¶ÙóòDÙÕ�ÝvMòüo#zñØ�ENïBÐCumJÞâªÉ1ÿ�p|fÏ%ºúî�éFf';ª[ò�Ý6B²Ú�u�£00Uÿ0ÿ0

*�H�÷

����i6�÷4*3r/m;Ô"²¸o�Å6f<¡±uZæý5Óø¨òo�g�Þ+¹â°:*ð¢��ßón»È�Z��ùÿ¾t=óþ0%Ñ74gú¥qy0a)rÀà,LûVä:¨oå2YRÛu(PYøä¬Ù¯��/PÛÃê«3àõ+1�

This is Base64-translation:

http://home.paulschou.net/tools/xlate/

http://www.thawte.com/ - This is a SSL-Certificator. Maybe you should get some hax0rs. That's not my cup of tea.

Maybe someone with korean-language files can retry it - or there is more coding behind it.

Editedit: There is more behind it. If this was the blanktext from the cert, then there are some Letters that shouldn't be there. Spaces and / ...

Editeditedit: From where do you have it? This look like a real private-certificate. Can somebody confirm this?

Editeditedit:

;( Only the publickeys.
[HTC One X] NikMel:
I can not find this on my phone but I found it in system.img from vodafone org rom.

This is a public cert (my guess)
[HTC One X] DarkMio:
Yep. After I've seen, where it came from... Damn. Was superexcited.

The last 3 points, mentioned from windows, are the main fact.

Damn public-keys.

Back to the alternate-connection and exploit-theory.
[HTC One X] artvik:
I was able to open it and it contains public key, signature, fingerprints- SHA1 MD5.

I saved it as a PDF and tried to post a dropbox link here but i cant since i got less then 8 posts.

If anyone would like to look on it i could PM the link.
[HTC One X] DarkMio:
Send me the PM. :)
[HTC One X] Fightspit:
This is your 1st post since April 2008 :D
[HTC One X] artvik:
I cant believe it myself lol
[HTC One X] Fightspit:
by the way, you can post a link by putting space like this:

h t t p : / / w w w . ......you don't need to put a space between all each letters.
[HTC One X] artvik:
Good idea. Thanks.

So heres the link

h t t p s://w w w.dropbox.com/s/pn8dity53nn8r99/HTC%20Certificate.pdf
[HTC One X] DarkMio:
Just for the records and usability.
[HTC One X] steve36:
so if thishas the public keys is it the same the keys they pulled from the ps3 and if so does it mean the hox is now public domain
[HTC One X] Laurentius26:
If it would be the key, we still have the problem that the bootloader will say 'relocked' if you want to revert to a locked status for warrantee if I'm not mistaking.

I think that's the most important.
[HTC One X] mattman83:
Public key is useless. Only the private key can be used to sign a file, public key is what they use to check that things are legit. It's done with 2 different keys so that the private key is held by HTC only (ie - can't be pulled out of data on a phone).

M.
[HTC One X] Evil-Dragon:
And we only need thousands of years of CPU time to figure out the private key. What would be the legality status of setting up a BOINC/Distributed computing project to figure out the key?

Legal or not?
[HTC One X] Rekoil:
I would say: irrelevant :P
[HTC One X] Sybregunne:
To clarify some misunderstanding the at&t exploit was already explored afew pages back it was combined with the taco root exploit, entered manually line by line, and paul from modaco created his version for the international version. It works only on s-off devices. So there.

On china xda, taobao and potentialy other chinese forums there were claims of s-off, some members here from hongkong and one in china tried to go to the site to help, turns out it is mostly for old htc devices, needs a white card, and uses htcdev unlock.

There are lots of effort to get into apx/nvflash mode including the adb rebbot oem-34 or something like that to go to a fastboot mode that looks different but acts same as the regular fastboot.

And probably some that i missed... So yes reading the whole thread prevents repetitive questions/suggestions and arguements.

Lastly op is busy to update the fp, so if someone can create a potential update to fp please do so and attach the suggested fp as a txt file with extension .c or something else (xda limitation)

-peace-

:eek:
[HTC One X] Sybregunne:
Irrelevant or not evil dragon has been working with disassembly to hopefully analyze the code for exploits. What have you contributed? Stop with the bashing. Trolls and troll cops are the same IMO.

:eek:
[HTC One X] Drefsab:
You can forget brute forcing the private signing key, for a 32 character (256 bit) AES key it was calculated it would take 770734 years with every single person in the world brute forcing for 1 key. That of course assumed that every possible key combination was tried.

Some people say but computing hardware changes it gets faster etc, ok so lets take a big leap and go for a 16 character key.

1) Assume your CPU/GPU can try one septillion keys every second (10^24), current hardware is not even capable of a small fraction of this but let's say it can anyway. That's 1,000,000,000,000,000,000,000,000 keys per second.

2) Now, assume you have 999,999 friends who are willing to help you, who also have the same impossibly fast CPU/GPU. So that's a million times faster, if you distribute the process over the internet.

3) 16 bytes is 128 bits, so there's 2^128 possible keys to try. That's 3.4 * 10^48 keys.

4) Do the math (you can use Google for this): 2^128 / 10^24 / 1000000 = 340282367 seconds.

340282367 / 86400 = 3938.45 days

3938.45 / 365 = 10.8 years for you and 999,999 friends to try every possible key.

Now keep in mind that we don't know the private key length it could be a lot more characters and be 512bit or more and be significantly more difficult to brute force.

Finding the private key in the case of the ps3 was not done by brute force but instead an exploit that exposed protected parts of the system where the key was found, which was a bit of a poor move by sony having it there to find in the first place but they thought their security was tight enough that it didn't matter.

Finding the private key on the HOX is highly unlikely in the extreme, its far more likely an exploit will be found that will allow APX mode or to trick the system to allow S-OFF.

Sources: google and past reading I did on breaking xbox 360 cpu keys.
[HTC One X] jonneymendoza:
HI all. i read in the wiki that some devices have S-OFF already? how can i check if mine has it?
[HTC One X] ViDtje:
By going into the bootloader. You can do that by turning fastboot off, turning the device off en powering it on while holding volume down + power button. Then you should see in the second line ship S-off.
[HTC One X] stiffmast3r:
quick question:

WHY is s-off not available for HOX?

did HTC some limitations on it?

whats the reason?
[HTC One X] treebill:
I read somewhere it was because htc has branded handsets tied to a carrier, and s off would allow you to de-brand a handset which would be breaking their contract or some law or something naff.
[HTC One X] mattman83:
Carriers prefer s-on for network security reasons. Htc do whatever it takes to have the carriers sell more htc phones. S-off for this phone definitely exists but they will not help you in any way.

M.
[HTC One X] stiffmast3r:
thats the reason? nah, cant believe that.. :rolleyes:

---------- Post added at 01:40 PM ---------- Previous post was at 01:39 PM ----------

there isnt a way to get s-off?

maybe im going to ask HTC if they provide me s-off LOL :D
[HTC One X] Fightspit:
HTC should allow SOFF on unbranded phone, because you are not tied to your carrier.
[HTC One X] Evil-Dragon:
Yeah, good luck with that.
[HTC One X] mattman83:
Man, 240 pages of discussion and we just plain old never thought of that. How stupid are we. I wasn't going to post like this before. But crap like this is why this thread is so long and filled with so much uselessness.

If you don't know what the deal with s-off is then ask in q&a, not an active dev thread. If you read something on the internet about s-off, chances are its not going to help.

The people working on this seriously are *not* stupid and aren't going to miss simple things.

M.
[HTC One X] Freezeil:
Hi,

I've read most of the last 40 pages or so, and decided I wanted to help out with the S-OFF effort.

I have a newly bought One X (for the last month or so), which is still unrooted and with the bootloaded still locked. The reason for this is simple: The One X is my first android (and haven't felt the need to jailbreak it like my ipod), and I don't want to void the warranty (as I bought it from abroad it will be difficult to say the least to have it replaced). My phone, btw, is S-ON.

So what can I do? I'm a programmer by day for the last 4 years, know python (which won't be of much use I guess) and C, and I'm very good with Linux (primarily Ubuntu, Gentoo and such).

Anyways, I can use my spare time (mostly at the weekends) to help out the cause that is getting my phone S-OFF'd and rooted without voiding the warranty, and am willing to help out by looking at code, writing code and trying to compile stuff (like that kernel module I saw a few pages back to see all the partitions), and otherwise do some creative stuff you want me to check out/do :)

Where can I start?

John.
[HTC One X] ximonx:
Can anybody upload their disassembled hboot so far? I want to know what enables the 'Securiy Reset' option in HBOOT, this looks like its looking for a white card - maybe we only need to figure out how to enable this option and use a white card?

The securiy reset option was found here http://xdaforums.com/showpost.php?p=26436594&postcount=2063
[HTC One X] PAGOT:
As you wrote you have free time I would suggest to create a new thread with updates and status in the first post AND UPDATING IT (in reference to this thread) as by the post quoted down, the OP wont do that and I doubt the moderators have fun always cleaning this from useless posts (Like mine here)

As you already are 40 pages down I believe in you.
[HTC One X] Evil-Dragon:
The work I have done on disassembling the hboot (0.43.0000) can be found here: http://xdaforums.com/showthread.php?p=26419086#post26419086

sub_ROM_5C24+130 loc_ROM_5D54 ; CODE XREF: sub_ROM_5C24+12C^
sub_ROM_5C24+130 LDR R2, =(aSecuriyReset - 0x5D5E) ; Load from Memory
sub_ROM_5C24+132 LDR R1, [R3] ; Load from Memory
sub_ROM_5C24+134 LDR R6, [R4,R5] ; Load from Memory
sub_ROM_5C24+136 ADD R2, PC ; "SECURIY RESET"
sub_ROM_5C24+138 MUL.W R5, R0, R1 ; Multiply
sub_ROM_5C24+138
sub_ROM_5C24+13A ; ---------------------------------------------------------------------------
sub_ROM_5C24+13A ADD.W R9, R1, #0x3C0000 ; Rd = Op1 + Op2
sub_ROM_5C24+13A
sub_ROM_5C24+13C ; ---------------------------------------------------------------------------
sub_ROM_5C24+13C
sub_ROM_5C24+13C loc_ROM_5D60 ; CODE XREF: sub_ROM_5C24+138^
sub_ROM_5C24+13C ADDS R0, R6, R5 ; Rd = Op1 + Op2
sub_ROM_5C24+13C
sub_ROM_5C24+13E
sub_ROM_5C24+13E loc_ROM_5D62 ; CODE XREF: sub_ROM_5C24+13A^
sub_ROM_5C24+13E STR R2, [R6,R5] ; Store to Memory
sub_ROM_5C24+140 LDR.W R2, [R4,R12] ; Load from Memory
sub_ROM_5C24+140
sub_ROM_5C24+142 ; ---------------------------------------------------------------------------
sub_ROM_5C24+142 MOVS R0, #0xC ; Rd = Op2
sub_ROM_5C24+142
sub_ROM_5C24+144
sub_ROM_5C24+144 loc_ROM_5D68 ; CODE XREF: sub_ROM_5C24+140^
sub_ROM_5C24+144 STR R2, [R0,#4] ; Store to Memory
sub_ROM_5C24+146 MOVW R2, #0xC618 ; Rd = Op2
sub_ROM_5C24+146
sub_ROM_5C24+148 ; ---------------------------------------------------------------------------
sub_ROM_5C24+148 STR R0, [R3,#0x20] ; Store to Memory
sub_ROM_5C24+148
sub_ROM_5C24+14A
sub_ROM_5C24+14A loc_ROM_5D6E ; CODE XREF: sub_ROM_5C24+146^
sub_ROM_5C24+14A B loc_ROM_5EBC ; Branch
sub_ROM_5C24+14A
sub_ROM_5C24+14C ; ---------------------------------------------------------------------------
sub_ROM_5C24+14C LDR R3, =0x21211C ; Load from Memory
sub_ROM_5C24+14E MOVS R5, #0xC ; Rd = Op2
sub_ROM_5C24+14E
sub_ROM_5C24+150
sub_ROM_5C24+150 loc_ROM_5D74 ; CODE XREF: sub_ROM_5C24:loc_ROM_5C3Ej
sub_ROM_5C24+150 LDR.W LR, =0xFFFFF8F4 ; jumptable 00005C3E case 23
sub_ROM_5C24+150
sub_ROM_5C24+152 ; ---------------------------------------------------------------------------
sub_ROM_5C24+152 B loc_ROM_602A ; Branch
sub_ROM_5C24+152
sub_ROM_5C24+154 ; ---------------------------------------------------------------------------

From previous reading, it will invoke a security reset if the security data/flag gets corrupted or cannot be read correctly. However it still needs a keycard (white card) to reset the security which is why the user mentioned couldn't unlock or reset the security. However if a modified hboot was able to be written to ignore the keycard check then potentially you could write a new security flag/reset security back to default (i.e. S-OFF) It's getting a new hboot to write without bricking that's the trick.
[HTC One X] stiffmast3r:
sarcasm? u know about?

poor poor guy... but, nvm, back to topic now ;)
[HTC One X] colin_404:
If this "active dev thread" was actually in the dev section, people might not be as quick to post in it.
[HTC One X] ximonx:
So if we have a white card and manage to replicate the steps to enable the 'SECURIY RESET' option do you think this would get us s-off?

Are white cards universal? if so then the white card emulating xtc clip would help here (i might get one off ebay to have a try with)
[HTC One X] Drefsab:
The whitecard needs a diag file to work in conjunction with it from what I know and we dont have the one x diag file.
[HTC One X] ErrorInLogic:
Please do yourself a favor and don't waste your money. The xtc clip is not going to get us any closer to s-off than we currently are.