text:
This European leg of the 57th & 9th World Tour has come to an end...
This European leg of the 57th & 9th World Tour has come to an end with two fantastic shows in Colmar, France and Uelzen, Germany. Thank you to my wonderful musicians, crew and very lovely audiences. The tour returns to Europe in September after more US dates beginning on August 29th at Tanglewood Music Center in Lenox, Massachussets. In the meantime, please enjoy this behind-the-scenes video from accomplished drummer/strange boy Josh Freese...
August 22, 2017 posted by 42jacste
The theatre was packed and the show was fantastic. Family ties were strong both on stage and with the audience. Thanks to Joe for sharing his thoughts on the local TV. Once again, thank you for everything you bring to us, your words, your music, your spirit, your kindness and energy. But please, try to bring The Last Ship back home where it belongs. All the best to everybody. Jacqueline
Newer comments 1 - 1 of 1 Older comments
Sting 57th & 9th Tour - August 30 at SPAC. Lawn Tickets Now Available...
Due to popular demand, lawn tickets are now available for Sting's 57th & 9th concert with special guests The Last Bandoleros as well as Joe Sumner on August 30th at Saratoga Performing Arts Center. Lawn tickets are priced at $29.50 plus fees. On the guitar-driven 57th & 9th Tour, Sting is joined by a 3-piece band including his longtime guitarist, Dominic Miller, plus Josh Freese (drums) and Rufus Miller (guitar) with backing vocals from Diego Navaira & Jerry Fuentes of The Last Bandoleros and Joe Sumner...
Benefit Concert at Iconic Bamburgh Castle on 20 October...
Sting will come home to the North East this October to perform at a unique concert event in support of the Dreamflight charity benefitting local children with life limiting conditions. To be staged at the region's most iconic rural landmark, Bamburgh Castle, on Friday 20th October, Sting will play an exclusive, one off, acoustic concert in the stunning surroundings of the King's Hall.


text:
Q: Past exam question: probabilistic method to prove a partition of a graph exists The following is a question from a past paper:
Let $G$ be a graph with an even number of vertices. Show that the vertices of $G$ can be partitioned into two parts $A$ and $B$ of equal size such that the number of edges between $A$ and $B$ is strictly larger than $\frac{|E|}{2}$.
Hint: Consider a random partition of the vertices into two parts of the same size.
I think I have shown that such a partition exists if the statement were for the number of edges between $A$ and $B$ is at least $\frac{|E|}{2}$. I have done this using expectations but I am unsure of how to proceed, or if this was even the correct approach in the first place!
Solution so far:
Take the graph G=(V,E) and for each vertex, randomly select whether it will lie in A with independent probability $p=\frac{1}{2}$. For each edge $e_i$ $\in$ $E$, define the random variable $X_i$ s.t. $X_i=1$ if $e_i$ connects A and B
and 0 otherwise. Then, $\mathbb{P}(X_i=1)=\frac{1}{2}$ and $\mathbb{E}(X_i)=\frac{1}{2}$
Then, using the linearity of expectation:
$\mathbb{E}(number\ of\ edges\ connecting\ A\ and\ B)=\frac{|E|}{2}$
Since the expected number of edges crossing the partition is $\frac{|E|}{2}$, there must be at least one choice of $A,B$ that has at least $\frac{|E|}{2}$ edges crossing.
Assume that all possible choices for $A,B$ have fewer than $\frac{|E|}{2}$ edges crossing the partition, then we get that:
$\mathbb{E}(number\ of\ edges\ connecting\ A\ and\ B)<\frac{|E|}{2}$
which is a contradiction.
I am unsure how to proceed to get to the required strict inequality and would appreciate any hints on that, and also, if this is the wrong approach or there is something wrong with my work so far, a different answer would be appreciated as there are no mark schemes!
Thank you in advance!

A: Your derivation is not correct, because if you randomly assign a vertex to one of $A$ and $B$, it is not guaranteed the $A$ and $B$ obtained are of equal size.
Suppose there are $2n$ vertices in the graph. There are totally $\binom{2n}{n}$ possible partitions, in which $A$ and $B$ are of equal size. We randomly sample one of such partitions.
Now consider an edge $e = (u, v)$ of $G$. There are two possibilities such that $e$ connects $A$ and $B$: $(1)$ $u \in A, v \in B\ $; $(2)$ $u \in B, v \in A$. For either case, there are $\binom{2n - 2}{n-1}$ corresponding partitions.
Let $X_e$ be a random variable such that $X_e = 1$ if $e$ connects $A$ and $B$ and $ = 0$ otherwise. We have
$$
\mathsf{E}(X_e) = \Pr(X_e = 1) = \frac{2\binom{2n-2}{n-1}}{\binom{2n}{n}} = \frac{n}{2n-1} > \frac{1}{2}
$$
Therefore, the expected total # of edges connecting $A$ and $B$ is more than $\frac{|E|}{2}$.

redpajama_set_name: RedPajamaStackExchange


You get a new cell phone and your 5 year old has to show you how to use it.
What would we do without the younger generation? Seriously, am I the only one that feels so technologically incapacitated when it comes to newer electronics? I heard the word "android" for so long on the radio that I thought there was a new Sci Fi movie coming out. I discovered later, while watching tv, that the "android" was a new type of cell phone. Go figure.
I myself was so thrilled when I purchased my iPhone. It's an antique now. I bought it two years ago. They don't even make the safety-cover-anti-scratch-screen-thinga-ma-jiggy protector for it anymore. Obsolete. I am sure that if I bought an electronic gizmo today by tomorrow there would be a new better, faster, smarter, piece of electronic hardware to replace it.
My iPhone was just so neat and compact and colourful. I just didn't know how to use it. Flip through starter manual. Got it. Sort of. My one stepson, The Wiz, sat me down and showed me all the neat-o things my iPhone could do. We downloaded apps. We played with the apps. We surfed the net. We checked out facebook. Amazing! All of this in one neat little electronic unit. Then I couldn't part with it. I wouldn't let the battery level drop below 95% because I couldn't live without it! It was like a newborn child to me. I had to carry it everywhere with me. I downloaded more and more apps. I played so many games every evening while making dinner, while washing dishes, before going to bed, at breakfast the next day. I believe I am missing about two months of my life….all in playing games. I just kept playing new games and marvelling at what my itty bitty machine could do. Absolutely fascinated! Riveted! This was definitely the adult version of Atari (lost about 6 months of my life playing that as a child).
So it was that about a month ago, I suddenly woke up from my electronic revery wondering where I was and what had happened. How did winter come and go without my even noticing? It was then that I decided to review my downloaded apps and came to the conclusion that I needed my life back. As such, I vanquished many of my game choices to the app graveyeard and found that I could still continue to function without my iPhone being holstered to my side.
However, I am not immune to the enticing commercials that show me how wonderfully exciting and enriching my life could be if I only owned _________ (fill in desired electronic gizmo of choice). The first thing I do after I have been sold on how much I need this new gizmo, is that I invite the kids over for sunday lunch. It really is a two-sided invitation: 1) I get to cook up a storm of wonderful foods that they will happily devour and 2) I get to have them explain to me, in simple kindergarten terms, what these new amazing portable adventure units can do.
After lunch, the three of them (The Wiz, The Debater, The Princess) gently guide me to a comfortable seat, in case I swoon from being overwhelmed by information. They start explaining and I get the deer-in-the-headlight look. After they slowly explain everything and show me examples,I just sit there in awe and amazement. It really seems like a miracle to me to see what new things have been created and what these gadgets can do. It also gives me something new to wish for…besides shoes.


Chef Jon Bonnell's brilliant treatment of game and mini tacos makes you glad you're dining in Texas. Prize offerings include elk mini tacos, flash-fried quail legs, and pecan-crusted redfish. Finish with a Dublin Dr Pepper float.


This entry was posted on Sunday, May 1st, 2011 at 1:30 pm	and is filed under Uncategorized. You can follow any responses to this entry through the RSS 2.0 feed. You can skip to the end and leave a response. Pinging is currently not allowed.
WordPress generated this page with 52 queries, in 0.746 seconds.


What do you know? The mystery of mind, message and meaning.
I thought about it: "really, what do I know?" I know: now.
In the Zen ritual stone that is resting in one of the Girvin offices (our old spaces, now being subleased) — the patterning of the expression is a 4-part reading of a sequences of messages that are floating in each of the cardinal points around the concept of the open square — a radical definitive for the detailing of Sino Japanese script. This radical, this character — a square box — is only about part of each ideogram. But in a kind of meditative Zen koan, this stone shows the character to the left, above, to the right, and below as each having a relationship to the central square character. At the Zen compound, Ryoan-ji, at one of the entry points, is the stone purification washing ritual — the tsukubai (蹲踞) in japanese, used for purifying the celebrant's hands before entering the sacred place. The center of the face of the stone is scribed with the kanji for mouth, kuchi (口). and — added to the four kanji surrounding the basin — they become 吾、唯、足、知.
Ryoan-ji stone image (matching the Girvin stone) photographed by Matias Stella.
The mysterious Zen answer to the question could be translated as: "I know only what I know." I know only what is known to me. I know only enough. I know what is only the known of my experience — in the right now. I know nothing more. Or less, than that. Even the design of this Zen garden stone is a puzzlement. It is a visual koan or Zen puzzle question, whose answer — to the Zen master — holds the clue to the level of awareness of the student in the Zendo.
What I might offer, to the brand wayfinder, is the nature of finding the heart and soul of brand enterprise in the nature of the human condition. What is known is really about what is enthralling or enchanting — what draws one into being engaged in the nature of the mystery and wonder of what's happening. What is knowing could be what is exciting enough to be recalled, shared, understood, celebrated.
Explore, to knowledge and knowing lies in the deep dive of language and context.
What's on your mind? I've pondered the link of mind to the meaning of — literally: mean (and meaning). Seeing this sign brought them together, in a way — minding your head. Minding meaning — and the link twixt the two. That idea of mind, meaning, the mental are all intertwined in the etymology of knowing. What can be "known," is one element in the layering of being. There's a question — do you know, or do you "be" in the character of knowledge and understanding.
Thinking about the tenets of the practice of the work of design strategy, innovation, branding and the commonality of community and communication, it does come to this — what is known, what is being in the sense of knowing, and what is the layered framing of understanding? I go back, as I often do, exploring the intricate layering of words and ideals.
Meaning is minding, from the Old English — mænan "to mean, tell, say, complain," from Western Germanic. *mainijanan (cf. Old Frisian mena, the Dutch — menen, German — meinen to think, suppose, be of the opinion"), from the ancient seed sounds of the Proto Indo European — *meino– "opinion, intent" (cf. Old Church Slavonic meniti "to think, have an opinion," Old Irish — mian "wish, desire," Welsh mwyn "enjoyment"), probably from the base *men– "think." Go mental.
If I inquire about knowing — to know — reaches back, thousands of years — Proto Indo European base of *gno– "to know" (gnostication) (cf. Old Persian xšnasatiy "he shall know;" Old Church Slavonic — znati, Russian — znat "to know;" Latin gnoscere; Greek: *gno-, as in gignoskein; and the crossing parallel of the Sanskrit: jna– "know").
Knowing and mind — and the implications of memory, the gathering of instincts, comprehensions and "holding" the thought and idea expands that notion — but studying — going back to the mists of etymological time. The Proto Indo European base of *men– "think, remember, have one's mind aroused" jumps to the Sanskrit: matih "thought," munih "sage, seer;" the Greek memona "I yearn," mania "madness," mantis "one who divines, prophet, seer;" the Latin foundation of mens "mind, understanding, reason," memini "I remember," mentio "remembrance;" Lithuanian — mintis "thought, idea," Old Church Slavonic: mineti "to believe, think," and the bridge to the Russian — pamjat "memory").
That idea of understanding is about standing before a sense of knowing — that standing is less to "standing under — and more to standing "between." That idea reflects the seeing "across to something," and sharing that ideal — to be able to speak of it: under + standan "to stand". If this is the meaning, the under is not the usual word meaning "beneath," but from Old English under, from the distant seed sounds of the Proto Indo European *nter- "between, among" (cf. Sanskrit antar "among, between," Latin inter "between, among," Verstehen — the German word of today's parlance goes back — "stand before" as well as the Old English — forestanding.
Presenting yesterday, to a group of executives in Appleton — we were framing the use of words in building out a messaging. And the intimations and delicacies of the thinking of "how to communicate" powerful ideas in a manner that the presentation actually "makes sense." Literally, that an audience can feel — sentire, the Latin for feeling; they can sense, hold and embrace the idea. Working internationally, this becomes all the more impactful.
During the "now" of messaging, the crossover of community and messaging becomes profound. There is the opening superficiality of understanding — the standing before the idea — and there is the deeper sentiment of how that idea is embraced.
One way or another, the current work must go back to a more soulful detailing of intention, the way in which people grasp and are held in the ideal. How they can be.
I go back. I go forward. And I look for the threading in between. I'd offer this sentiment in closure — think about the character of the soul of the brand, the heart of human enterprise in the storytelling enchantment and arousal of the brand connection to mind and memory. The link of mind, head, heart — they cohere in the soul of experience and recollection — it is there that people either get and hold that promise in the telling of new stories, or they spread another word of disconnection.
Stories spread like weeds, one way or another. Either they are channeled and contemplated, or like wildfire, they burn as they well.


the 12th century and to North America in 1806. Reflecting it's origin, spinach is still widely known in China as "the Persian Green" even today. Spinach has long been known to have health promoting properties. It is Rich in vitamin A, calcium, phosphorous, iron, folate and potassium as well as a number of the B vitamins and important phytochemicals. Spinach extracts are being used by doctors and scientists as functional foods to provide chemo and central nervous system protection as well as anticancer and anti-aging functions.
Iran exported $736 million worth of foodstuffs in 2014 and Spinach were among the main exports to Iraq, Afghanistan, Turkmenistan, Tajikistan and other Central Asian countries, Russia, Ukraine, Belarus, Pakistan, Saudi Arabia, Kuwait, United Arab Emirates, Qatar, Oman, Syria, Germany, Spain, the Netherlands, France, Canada, Venezuela, Japan, South Korea .


A Look at How We Build Better Wire and Cable.
ICE was born. We were the new guy on the block and we partnered with numerous factories in the USA to make our cable. We grew quickly and soon attempted to make many of the innovations we now offer, but ran into a brick wall. The US factories were rigid and primarily concerned with keeping their production lines running to service the big guys. A byproduct of their rigidity was product sameness and a complete lack of innovation. To build it right, we had to do it ourselves.
We took our designs to China and partnered with some of the most advanced wire and cable factories in the world. It took two or more US factories to build what one of ours could do. These factories featured state-of-the-art machinery, engineering, full UL compliance and were eager to learn. The attitude was refreshing. At each stage in the manufacturing process, we hand picked each of our key suppliers who could deliver on the innovations we build. This allowed us to have 100% control over the features and quality of the product you know today.
There are a lot of moving parts and timing is everything. The manufacturer has to partner with numerous outside companies to secure all of the raw materials, including vendors for copper, cardboard boxes, spools, packaging materials and many types of specialized compounds. For ICE, these vendors have special, custom-built materials that have to be made and shipped on time in order for things to flow. Extensive testing and quality control procedures are then required to ensure the final product will meet our specifications.
Once built, the cable has to go through a long trip from China to the United States and there are lots of steps involved before the product lands on our shores. After many years of driving the design, manufacturing and supply chain process, the act of building and shipping the industry's best wire is down to a science. The result is a product that's a cut-above what's being built in the United States.


Hiring Temps vs Full-TimersLanigan, Ryan, Malcolm & Doyle, P.C.
Hiring Temps vs Full-Timers sometimes makes sense for a business. But you have to make the decision wisely and comply with federal regulations classifying employees and differentiating them from temporary workers. If you don't, you may find yourself in court as many other companies have in the past few years, when they were sued by long-term temporaries working for them.
The major problems in these cases stemmed from employers using temporary workers for extended lengths of time. Temps were working side-by-side with regular employees yet not being provided the benefits (such as health care coverage, retirement programs and paid vacation time) offered to regular, full-time employees.
Of course, not all temporary workers fall into this situation. There are plenty of instances where companies hire temps for a defined period of time to appropriately and legally supplement their work force. For example, a business branching out into a new market might bring in an expert to get the new department running or a temp may handle work stacking up while you search for a regular, full-time placement.
One advantage to properly using temps is the impact on your bottom line: You can save money on labor, benefits and administrative expenses. Another plus is greater flexibility with your work force — for example, you can handle seasonal business more easily without incurring layoffs.
If you treat temps just like other regular employees you can put your company at risk for lawsuits based on misclassification.
You can protect your organization by limiting the tenure of temp employees. Also, choose your words carefully: Temps are "workers" — not "employees" — who have been "assigned" — not "hired." Also, review any temporary employment arrangements with a knowledgeable HR consultant or lawyer who is familiar with applicable federal and state laws.
Another equally important aspect of the decision-making process is your company strategy. Employee loyalty, project time frames, customer interaction, succession planning and other factors should play into the choice between a temporary worker and regular employee.
Is the position seasonal or does it have a defined time frame or an uncertain future? In these situations, a temporary worker probably better fits the bill.
How strategic and central is this job to your mission? The more important the role is to the core of your business, the more important it is to fill it with someone with loyalty to the company and a deep stake in its success. You're more likely to get this with a regular, full-time employee than with a temp.
What level of involvement does this role have with customers? If customer interaction is an ongoing and large part of the job, a regular employee can offer more continuity. If customer contact is sporadic, this factor may be less important to your decision.
Is the role a stepping stone to a higher-level position? If it is, filling it with a temp will stymie your succession planning and could be demoralizing to staffers who hope to step into that role or the one above it.
To determine whether temporary workers are a good fit for your company, examine your motivation for considering them. If you don't, you may inadvertently open your company to the risk of complaint that temps should be regular employees — and that is where the trouble can begin.


Approximately 3.6% human cancers worldwide derive from chronic alcohol drinking, including oral, liver, breast and other organs. Studies in vivo and in vitro have demonstrated that diluted ethanol increase RNA Pol III gene transcription and promotes cell proliferation and transformation, as well as tumour formation. However, it is unclear about the effect of red wines on the human cancer cells.
In present study, researchers investigated the roles of red wine in human cancer cell growth, colony formation and RNA Pol III gene transcription. Low concentration (12.5 mM to 25 mM) of ethanol enhances cell proliferation of breast and oesophageal cancer lines, whereas its higher concentration (100 mM to 200 mM) slightly decreases the rates. In contrast, red wines significantly repress cell proliferation of different human cancer lines from low dose to high dose. The results reveal that the red wine also inhibits colony formation of human breast cancer and oesophageal carcinoma cells. The effects of repression on different human cancer lines are in a dose-dependent manner. Further analysis indicates that ethanol increases RNA Pol III gene transcription, whereas the red wines significantly reduce transcription of the genes.
The research found that the effects of mature wine (brick red) on cancer cell phenotypes are much stronger than young wine (intense violet). Together, these new findings suggest that red wines may contain some bioactive components, which are able to inhibit human cancer cell growth and colony formation. Source: The influences of red wine in phenotypes of human cancer cells. Chen S, Yi Y, Xia T, Hong Z, Zhang Y, Shi G, He Z, Zhong S. Gene. 2018 Oct 23. pii: S0378- 1119(18)31086-2.


text:
echo
echo "Installing Ruby"

echo
echo "Installing rbenv to handle ruby versioning"
brew install rbenv

echo
echo "Adding rbenv initialization to .bash_profile..."
echo '# rbenv' >> ~/.bash_profile
echo '' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
echo '' >> ~/.bash_profile
source ~/.bash_profile

echo
echo "Installing ruby version 2.2.5"
rbenv install 2.2.5 --skip-existing

echo
echo "Installing ruby version 2.3.3"
rbenv install 2.3.3 --skip-existing

echo
echo "Setting global version of ruby to 2.3.3"
rbenv global 2.3.3
rbenv rehash

echo
echo "Installing bundler...."
gem install bundler
rbenv rehash

echo
echo "Setting up bundler global config"
bundle config --global gem.coc false
bundle config --global gem.mit false

redpajama_set_name: RedPajamaGithub


Summary. Here I demonstrate the study of visual phantoms from Rosenbach (1902) to the latest novel findings (e.g. Craik-O'Brien-Cornsweet phantoms). It is suggested that the visual phantom illusion involves high-order visual processing, involving perceptual transparency.
The visual phantom illusion refers to a phenomenon that an illusory grating appears to bridge the occluder that occludes a luminance-modified grating. When the luminance of the occluder is the lowest luminance of the grating, dark parts appear to be bridged or be continual. It is also characterized by the phenomenon that phantoms always appear in front of the occluder.
When the luminance of the occluder is the highest luminance of the grating, light parts appear to be bridged.
Rosenbach, O. (1902) Zur Lehre von den Urtheilstauschungen. Zeitschrift fur Psychologie, 29, 434-448.
Stationary phantoms are manifest when contrast of the inducing grating is low.
Stationary phantoms are explained in terms of perceptual transparency, in which the surrounding grating induces counterphase lightness induction in the occluder (McCourt, 1994) and generates unique transparency that gives the continuation and the fixed depth of phantoms. The figures show the appearance of stationary phantoms (the upper image) and the explanation in terms of perceptual transparency (the lower image).
Although it has long been thought that the visual phantom illusion is a phenomenon of visual completion of lightness, paradoxical phantoms shown below are not paradoxical in the context of perceptual transparency.
Fusing the two figures, you see two lines of white phantoms in front of the black background.
When the occluder is placed obliquely on a grating, completion occurs across alinged gratings as well as misalinged (vertical) ones for phantoms. On the other hand, for grating induction, completion occurs only across the latter.
White phantoms frequently give the perception of mist. I think the perception of mist chiefly depends on visual phantoms.
The perception of misty spirals is due to white phantoms.
The perception of mist seems to be due to white phantoms.
An example of Petter's effect, in which the thick vertical rectangle tends to be perceived in front of the thin horizontal rectangle.
For visual phantoms, the less the spatial frequency of the inducing grating or the shorter the width of the occluder, the more visible the phantoms (the left image). On the other hand, the more the spatial frequency of the inducing grating or the longer the width of the occluder, the less visible the phantoms (the left image). This characteristic resembles that of Petter's effect.
An illusory grating in phase with the inducing grating appears BEHIND the occluder. This phantom involves bistable transparency.
Color is also completed in photopic phantoms.
The illusory contours of photopic phantoms are more distinct when they have crossed disparity. For cross fuser, fuse the left and middle panel; for uncross fuser, fuse the middle and right panel.
Even if the height of the inducing grating of photopic phantoms is decreased, phantoms remain. We call them "neon" phantoms because it resembles neon color spreading.
Low-contrasted regions appear to form visual phantoms.
Gyoba, J., Sasaki, H., & Sakurai, K. (2000). Visual phantoms can be produced by second-order gratings. Investigative Ophthalmology & Visual Science, 41, S228 (Abstract no. 1198).
Fusing the two figures, you see a transparent square in front of the background. This means that regions of lower contrast tend to form phantoms.
Phantoms appear between a luminance-modified grating and a contrast-modified grating. This is called "chimera" phantoms.
Fusing the two figures, you see two lines of "mist" in front of the background. These are stereoscopic chimera phantoms.
Mach bands (there are four) might be completed through the occluder.
It appears that there are light and dark regions in the gray surround though they are actually of the same luminance (Craik-O'Brien-Cornsweet's effect). When an occluder is placed, photopic phantoms appear. This means that contrast polarity of photopic phantoms is not determined by the (physical) luminance of the grating but by the (perceived) lightness of the grating.
This phantom illusion also suggests that contrast polarity of photopic phantoms is not determined by the (physical) luminance of the grating but by the (perceived) lightness of the grating. I think that surface color, not film color, is completed.
It is known that stationary phantoms give counterphase lightness induction in the occluder, but phantoms show in-phase induction if the presentation time is shorter than about 150 ms.
It is known that grating induction (McCourt, 1982) gives counterphase lightness induction in the occluder, but it shows in-phase induction if the presentation time is shorter than about 150 ms.
When the presentation time is longer than about 150 ms, counterphase induction appears.
These findings suggest that in-phase induction appears immediately after presentation, followed by counterphase induction. It is speculated that for stationary phantoms, in-phase components are masked by counterphase ones because the latter give stronger induction than does the former.
In addition, simultaneous lightness contrast, White's effect, or Adelson-Logvinenko's effect appear immediately after presentation, suggesting that the mechanisms underlying those illusions are different from that of grating induction.


I hope my readers will forgive me if I admit that I chose to keep a discreet silence over the peaceful death of Itchy, the old sow at the Spitalfields City Farm last year, and instead to share my delight in beginning this new year by introducing these two beloved young squealers, Holmes & Watson.
When I went along to take these portraits of Holmes & Watson in the sty that serves as their approximation to 221B Baker St, I did not know which was which. But, as you can see from the photograph above, it soon became visibly apparent that the smaller darker one possessed the keener eye and more remarkable faculties in general, and that one was Holmes. Helen Galland, the pink-haired farm manager, who plays the role of Mrs Hudson, providing food and housekeeping for these two bachelors, revealed she spotted the disparity when they first arrived at their new lodgings three months ago. "They like play-fighting, pushing each other out of the way to discover who is the dominant – and seemingly it is the smallest one!" she told me with a grin of astonishment.
Little else is known of their early months, yet on this basis of these ominous words that I overheard from Holmes – whilst they were at the trough – we can only assume they are relieved to find themselves in Spitalfields, "It is my belief, Watson, founded upon my experience, that the lowest and vilest alleys in London do not present a more dreadful record of sin than does the smiling and beautiful countryside." Subsequently, I was surprised to hear Watson confess, "I naturally gravitated to London, that great cesspool into which all the loungers and idlers of the Empire are irresistibly drained. There I stayed for some time at a private hotel in the Strand, leading a comfortless, meaningless existence, and spending such money as I had, considerably more freely than I ought." Let us be thankful that Holmes & Watson have found a satisfactory home now at the City Farm.
I certainly enjoyed my brief opportunity to share the serenity of their existence whilst photographing the piglets in their pen, although I did become frustrated that they barely took their snouts out of the mud, until Helen helpfully explained that this is called,"the investigative instinct." When she conjured this phrase, I could not help recalling the unfortunate break-in and abduction of a ferret at the farm a year ago and I wondered if this event might have proved a factor in the decision to bring in Holmes & Watson. Yet at just six months old, it seemed premature to enquire about the crime-busting potential of these piglets. May it suffice to know that Holmes & Watson have ended up in clover.
Watson keeps his nose to the ground, surveying the muddy details of the case.
Bramble & Bentley, the twin goats, are Holmes & Watson's neighbours at the farm.
Oh literary pigs – how gorgeous! Very pleased to hear of their antipodean heritage as well.
Hahah! Thank you Gentle Author for cheering me up on this gloomy January morning. I visited the City Farm in June and just missed meeting the big personality that was 'Itchy'. I am hoping to visit again in the Spring when I hope to have a stall at one of the fairs. These farms are wonderful places and to be celebrated. I exhibited my work at Freightliners Farm in Islington which is a bit posher than Spitalfields but I think Spitalfields may have the edge now on interesting animals with the arrival of Holmes & Watson.
Brilliant! Your chortlesome captions are inspired.
Why would Holmes and Watson settle into new digs in Spitalfields? Elementary, my dear Gentle Author, they have a ready chronicler in you! I anticipate many a tale to come — the Case of the Missing Carrots, the Mystery of the Muddy Snout, etc.


I love my eyemask! It helps soothe headaches and I\'ve even used it to help me fall asleep at night. I normally heat it up for about 30 seconds and then lay it over my eyes or just on my forehead. Either way, the lavender helps me sleep pain-free!


:   Like the other poster said, whose resonsibility was it to get the CofO?
:     If it was yours, then you have no claim to any of the monies you paid, If it was the landlords responsibility, then you would have a claim to sue the landlord for the cost of the option plus any extra monies you put into the property.   And any extra rent or fees ABOVE what would be the normal market rent.
:  If the landlord broke the contract then your tenancy would have to be considered a rental, and the landlord would be responsible for paying for things a  normal landlord would anyway.
:  I hope that makes sense.
: : : :  NO,    if the option to buy is still valid, and has not expired and you have it in writing, and if your rent is current.
: : : :  YES,    if its verbal  or  you have not paid your rent on time, since  it is usualy written in the contract, that late payments will void the option to buy, and you would become a month to month tenant subject to a 30 day eviction notice.
: : at time of expiration. Do I have a leg to stand on?
: : : just to extend on what mac said, if ALL contingencies specified in the option are still valid, then the option is still valid. 'i changed my mind' or, 'i can get more for it now' is not enough of a reason.


text:
Palladium is a chemical element with the chemical symbol Pd and an atomic number of 46. It is a rare and lustrous silvery-white metal discovered in 1803 by William Hyde Wollaston. He named it after the asteroid Pallas, which was itself named after the epithet of the Greek goddess Athena, acquired by her when she slew Pallas. Palladium, platinum, rhodium, ruthenium, iridium and osmium form a group of elements referred to as the platinum group metals (PGMs). These have similar chemical properties, but palladium has the lowest melting point and is the least dense of them.
Over half of the supply of palladium and its congener platinum goes into catalytic converters, which convert up to 90% of harmful gases from auto exhaust (hydrocarbons, carbon monoxide, and nitrogen dioxide) into less-harmful substances (nitrogen, carbon dioxide and water vapor). Palladium is also used in electronics, dentistry, medicine, hydrogen purification, chemical applications, and groundwater treatment. Palladium plays a key role in the technology used for fuel cells, which combine hydrogen and oxygen to produce electricity, heat, and water.
Ore deposits of palladium and other PGMs are rare, and the most extensive deposits have been found in the norite belt of the Bushveld Igneous Complex covering the Transvaal Basin in South Africa, the Stillwater Complex in Montana, United States, the Thunder Bay District of Ontario, Canada, and the Norilsk Complex in Russia. Recycling is also a source of palladium, mostly from scrapped catalytic converters. The numerous applications and limited supply sources of palladium result in the metal attracting considerable investment interest.
Read more about Palladium: Characteristics, History, Occurrence, Applications, Precautions
Terms related to palladium:
Palladium(ii) Acetate
Palladium(ii) Chloride
Palladium As An Investment
Palladium Books
Palladium Hydride
Palladium (mythology)
Pdcl
Bruce Forsyth
Cold Fusion
Heck Reaction
Kevin Long (artist)
Platinum Print
Robotech (role-Playing Game)
Sonogashira Coupling
Suzuki Reaction

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: Excel counta function fixed reach I have a planning sheet in Microsoft Excel 2010 for my company. I have made a screenshot of the planning sheet which you can see below. In the column CAP the planner can see how much capacity that week is left for Kees. The calculation for cell IW7, for example, works with the formula =10-COUNTA(IX7:JB7)*2. The problem is that when the planner, for example, cuts cell IX7 and pastes this in IU7, the formula becomes =10-AANTALARG(IU7:JB7) *2 and a pop-up says there is a circular reference.1
How can the planner still cut and paste cells without Excel adjusting the referenced cells?
Or: How can I get a fixed reach of cells (f.e. IX7:JB7) even after cutting and pasting cells?

(Click image to enlarge)
1When a formula refers back to its own cell, either directly or indirectly, it is called a circular reference.

A: PasteSpecialValues rather than  Paste.

A: According to the suggested answer How do you force the focus of an Excel cell to remain the same?, with

10-COUNTA(INDIRECT(IX7), INDIRECT(JB7))*2

the refences stay the same when you cut and paste a cell.

A: Another way would be named Ranges - This can also have the side effect of making the formula easier to understand.
=10-COUNTA(IX7:JB7)*2

would become
=10-COUNTA(Week50Projects)*2

And use the Name Manager to set a fixed reference to the cells, defining it as $IX$7:$JB$7


Alternative Medicine has become popular in the past 10 years in the United States. The reason for the popularity is the use of traditional methods of healing as well as use of natural elements like the plant and herbal ingredients in the preparation of medicines. This is a unique way of preparation of medicines where the natural goodness and the qualities of the plants and preserved and used. It is therefore important that the medicines that are widely used goes through some kind of rigorous scrutiny before coming to the market. However, as of now the alternative health supplements need no scrutiny before being available in the market for the general public to use.
Alternative health supplements, also called the botanic as these are produced by processing plant parts, are prepared from natural ingredients like the flax seeds, canola oil etc. However, as a consumer you should be aware of a few things like the composition of the supplement, the name and the address of the manufacturer and the distributor and can even consult and seek guidance from the doctor and the pharmacist.
After the tremendous popularity of these types of medicines, the federal government has set up institutes for the learning and research of alternative medicine. Alternative medicine supplements which are an essential part of the total Complementary and Alternative Medicine (CAM) system should also need much attention, development and creation of training in that. The alternative medicine is getting attention and support for the academicians and the researchers of the mainstream medicine. Alternative health supplements are effective in lifestyle diseases like obesity, high blood sugar, high cholesterol etc. When used smartly after the requisite scrutiny, it is extremely helpful.


text:
.class Lcom/android/internal/os/ZygoteConnection;
.super Ljava/lang/Object;
.source "ZygoteConnection.java"

# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/android/internal/os/ZygoteConnection$Arguments;
    }
.end annotation

# static fields
.field private static final CONNECTION_TIMEOUT_MILLIS:I = 0x3e8

.field private static final MAX_ZYGOTE_ARGC:I = 0x400

.field private static final TAG:Ljava/lang/String; = "Zygote"

.field private static final intArray2d:[[I

.field private static sPeerWaitSocket:Landroid/net/LocalSocket;

# instance fields
.field private final mSocket:Landroid/net/LocalSocket;

.field private final mSocketOutStream:Ljava/io/DataOutputStream;

.field private final mSocketReader:Ljava/io/BufferedReader;

.field private final peer:Landroid/net/Credentials;

# direct methods
.method static constructor <clinit>()V
    .locals 2

    .prologue
    const/4 v0, 0x0

    .line 51
    filled-new-array {v0, v0}, [I

    move-result-object v0

    sget-object v1, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;

    invoke-static {v1, v0}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, [[I

    sput-object v0, Lcom/android/internal/os/ZygoteConnection;->intArray2d:[[I

    .line 87
    const/4 v0, 0x0

    sput-object v0, Lcom/android/internal/os/ZygoteConnection;->sPeerWaitSocket:Landroid/net/LocalSocket;

    return-void
.end method

.method constructor <init>(Landroid/net/LocalSocket;)V
    .locals 4
    .parameter "socket"
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

    .prologue
    .line 95
    invoke-direct/range {p0 .. p0}, Ljava/lang/Object;-><init>()V

    .line 96
    iput-object p1, p0, Lcom/android/internal/os/ZygoteConnection;->mSocket:Landroid/net/LocalSocket;

    .line 98
    new-instance v1, Ljava/io/DataOutputStream;

    invoke-virtual {p1}, Landroid/net/LocalSocket;->getOutputStream()Ljava/io/OutputStream;

    move-result-object v2

    invoke-direct {v1, v2}, Ljava/io/DataOutputStream;-><init>(Ljava/io/OutputStream;)V

    iput-object v1, p0, Lcom/android/internal/os/ZygoteConnection;->mSocketOutStream:Ljava/io/DataOutputStream;

    .line 101
    new-instance v1, Ljava/io/BufferedReader;

    new-instance v2, Ljava/io/InputStreamReader;

    invoke-virtual {p1}, Landroid/net/LocalSocket;->getInputStream()Ljava/io/InputStream;

    move-result-object v3

    invoke-direct {v2, v3}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;)V

    const/16 v3, 0x100

    invoke-direct {v1, v2, v3}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;I)V

    iput-object v1, p0, Lcom/android/internal/os/ZygoteConnection;->mSocketReader:Ljava/io/BufferedReader;

    .line 104
    iget-object v1, p0, Lcom/android/internal/os/ZygoteConnection;->mSocket:Landroid/net/LocalSocket;

    const/16 v2, 0x3e8

    invoke-virtual {v1, v2}, Landroid/net/LocalSocket;->setSoTimeout(I)V

    .line 107
    :try_start_0
    iget-object v1, p0, Lcom/android/internal/os/ZygoteConnection;->mSocket:Landroid/net/LocalSocket;

    invoke-virtual {v1}, Landroid/net/LocalSocket;->getPeerCredentials()Landroid/net/Credentials;

    move-result-object v1

    iput-object v1, p0, Lcom/android/internal/os/ZygoteConnection;->peer:Landroid/net/Credentials;
    :try_end_0
    .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0

    .line 112
    return-void

    .line 108
    :catch_0
    move-exception v0

    .line 109
    .local v0, ex:Ljava/io/IOException;
    const-string v1, "Zygote"

    const-string v2, "Cannot read peer credentials"

    invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I

    .line 110
    throw v0
.end method

.method private static applyCapabilitiesSecurityPolicy(Lcom/android/internal/os/ZygoteConnection$Arguments;Landroid/net/Credentials;)V
    .locals 11
    .parameter "args"
    .parameter "peer"
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lcom/android/internal/os/ZygoteSecurityException;
        }
    .end annotation

    .prologue
    const-wide/16 v9, -0x1

    const-wide/16 v7, 0x0

    .line 695
    iget-wide v3, p0, Lcom/android/internal/os/ZygoteConnection$Arguments;->permittedCapabilities:J

    cmp-long v3, v3, v7

    if-nez v3, :cond_1

    iget-wide v3, p0, Lcom/android/internal/os/ZygoteConnection$Arguments;->effectiveCapabilities:J

    cmp-long v3, v3, v7

    if-nez v3, :cond_1

    .line 735
    :cond_0
    return-void

    .line 701
    :cond_1
    invoke-virtual {p1}, Landroid/net/Credentials;->getUid()I

    move-result v3

    if-eqz v3, :cond_0

    .line 709
    :try_start_0
    invoke-virtual {p1}, Landroid/net/Credentials;->getPid()I

    move-result v3

    invoke-static {v3}, Lcom/android/internal/os/ZygoteInit;->capgetPermitted(I)J
    :try_end_0
    .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0

    move-result-wide v1

    .line 720
    .local v1, permittedCaps:J
    iget-wide v3, p0, Lcom/android/internal/os/ZygoteConnection$Arguments;->permittedCapabilities:J

    xor-long/2addr v3, v9

    iget-wide v5, p0, Lcom/android/internal/os/ZygoteConnection$Arguments;->effectiveCapabilities:J

    and-long/2addr v3, v5

    cmp-long v3, v3, v7

    if-eqz v3, :cond_2

    .line 721
    new-instance v3, Lcom/android/internal/os/ZygoteSecurityException;

    const-string v4, "Effective capabilities cannot be superset of  permitted capabilities"

    invoke-direct {v3, v4}, Lcom/android/internal/os/ZygoteSecurityException;-><init>(Ljava/lang/String;)V

    throw v3

    .line 710
    .end local v1           #permittedCaps:J
    :catch_0
    move-exception v0

    .line 711
    .local v0, ex:Ljava/io/IOException;
    new-instance v3, Lcom/android/internal/os/ZygoteSecurityException;

    const-string v4, "Error retrieving peer\'s capabilities."

    invoke-direct {v3, v4}, Lcom/android/internal/os/ZygoteSecurityException;-><init>(Ljava/lang/String;)V

    throw v3

    .line 731
    .end local v0           #ex:Ljava/io/IOException;
    .restart local v1       #permittedCaps:J
    :cond_2
    xor-long v3, v1, v9

    iget-wide v5, p0, Lcom/android/internal/os/ZygoteConnection$Arguments;->permittedCapabilities:J

    and-long/2addr v3, v5

    cmp-long v3, v3, v7

    if-eqz v3, :cond_0

    .line 732
    new-instance v3, Lcom/android/internal/os/ZygoteSecurityException;

    const-string v4, "Peer specified unpermitted capabilities"

    invoke-direct {v3, v4}, Lcom/android/internal/os/ZygoteSecurityException;-><init>(Ljava/lang/String;)V

    throw v3
.end method

.method public static applyDebuggerSystemProperty(Lcom/android/internal/os/ZygoteConnection$Arguments;)V
    .locals 2
    .parameter "args"

    .prologue
    .line 649
    const-string v0, "1"

    const-string/jumbo v1, "ro.debuggable"

    invoke-static {v1}, Landroid/os/SystemProperties;->get(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_0

    .line 650
    iget v0, p0, Lcom/android/internal/os/ZygoteConnection$Arguments;->debugFlags:I

    or-int/lit8 v0, v0, 0x1

    iput v0, p0, Lcom/android/internal/os/ZygoteConnection$Arguments;->debugFlags:I

    .line 652
    :cond_0
    return-void
.end method

.method private static applyInvokeWithSecurityPolicy(Lcom/android/internal/os/ZygoteConnection$Arguments;Landroid/net/Credentials;)V
    .locals 3
    .parameter "args"
    .parameter "peer"
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lcom/android/internal/os/ZygoteSecurityException;
        }
    .end annotation

    .prologue
    .line 752
    invoke-virtual {p1}, Landroid/net/Credentials;->getUid()I

    move-result v0

    .line 754
    .local v0, peerUid:I
    iget-object v1, p0, Lcom/android/internal/os/ZygoteConnection$Arguments;->invokeWith:Ljava/lang/String;

    if-eqz v1, :cond_0

    if-eqz v0, :cond_0

    .line 755
    new-instance v1, Lcom/android/internal/os/ZygoteSecurityException;

    const-string v2, "Peer is not permitted to specify an explicit invoke-with wrapper command"

    invoke-direct {v1, v2}, Lcom/android/internal/os/ZygoteSecurityException;-><init>(Ljava/lang/String;)V

    throw v1

    .line 758
    :cond_0
    return-void
.end method

.method public static applyInvokeWithSystemProperty(Lcom/android/internal/os/ZygoteConnection$Arguments;)V
    .locals 4
    .parameter "args"

    .prologue
    const/16 v3, 0x1f

    .line 766
    iget-object v1, p0, Lcom/android/internal/os/ZygoteConnection$Arguments;->invokeWith:Ljava/lang/String;

    if-nez v1, :cond_1

    iget-object v1, p0, Lcom/android/internal/os/ZygoteConnection$Arguments;->niceName:Ljava/lang/String;

    if-eqz v1, :cond_1

    .line 767
    iget-object v1, p0, Lcom/android/internal/os/ZygoteConnection$Arguments;->niceName:Ljava/lang/String;

    if-eqz v1, :cond_1

    .line 768
    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    const-string/jumbo v2, "wrap."

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    iget-object v2, p0, Lcom/android/internal/os/ZygoteConnection$Arguments;->niceName:Ljava/lang/String;

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    .line 769
    .local v0, property:Ljava/lang/String;
    invoke-virtual {v0}, Ljava/lang/String;->length()I

    move-result v1

    if-le v1, v3, :cond_0

    .line 770
    const/4 v1, 0x0

    invoke-virtual {v0, v1, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String;

    move-result-object v0

    .line 772
    :cond_0
    invoke-static {v0}, Landroid/os/SystemProperties;->get(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v1

    iput-object v1, p0, Lcom/android/internal/os/ZygoteConnection$Arguments;->invokeWith:Ljava/lang/String;

    .line 773
    iget-object v1, p0, Lcom/android/internal/os/ZygoteConnection$Arguments;->invokeWith:Ljava/lang/String;

    if-eqz v1, :cond_1

    iget-object v1, p0, Lcom/android/internal/os/ZygoteConnection$Arguments;->invokeWith:Ljava/lang/String;

    invoke-virtual {v1}, Ljava/lang/String;->length()I

    move-result v1

    if-nez v1, :cond_1

    .line 774
    const/4 v1, 0x0

    iput-object v1, p0, Lcom/android/internal/os/ZygoteConnection$Arguments;->invokeWith:Ljava/lang/String;

    .line 778
    .end local v0           #property:Ljava/lang/String;
    :cond_1
    return-void
.end method

.method private static applyRlimitSecurityPolicy(Lcom/android/internal/os/ZygoteConnection$Arguments;Landroid/net/Credentials;)V
    .locals 3
    .parameter "args"
    .parameter "peer"
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lcom/android/internal/os/ZygoteSecurityException;
        }
    .end annotation

    .prologue
    .line 670
    invoke-virtual {p1}, Landroid/net/Credentials;->getUid()I

    move-result v0

    .line 672
    .local v0, peerUid:I
    if-eqz v0, :cond_0

    const/16 v1, 0x3e8

    if-eq v0, v1, :cond_0

    .line 674
    iget-object v1, p0, Lcom/android/internal/os/ZygoteConnection$Arguments;->rlimits:Ljava/util/ArrayList;

    if-eqz v1, :cond_0

    .line 675
    new-instance v1, Lcom/android/internal/os/ZygoteSecurityException;

    const-string v2, "This UID may not specify rlimits."

    invoke-direct {v1, v2}, Lcom/android/internal/os/ZygoteSecurityException;-><init>(Ljava/lang/String;)V

    throw v1

    .line 679
    :cond_0
    return-void
.end method

.method private static applyUidSecurityPolicy(Lcom/android/internal/os/ZygoteConnection$Arguments;Landroid/net/Credentials;)V
    .locals 6
    .parameter "args"
    .parameter "peer"
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lcom/android/internal/os/ZygoteSecurityException;
        }
    .end annotation

    .prologue
    const/16 v5, 0x3e8

    const/4 v3, 0x1

    .line 597
    invoke-virtual {p1}, Landroid/net/Credentials;->getUid()I

    move-result v1

    .line 599
    .local v1, peerUid:I
    if-nez v1, :cond_3

    .line 628
    :cond_0
    iget-boolean v4, p0, Lcom/android/internal/os/ZygoteConnection$Arguments;->uidSpecified:Z

    if-nez v4, :cond_1

    .line 629
    invoke-virtual {p1}, Landroid/net/Credentials;->getUid()I

    move-result v4

    iput v4, p0, Lcom/android/internal/os/ZygoteConnection$Arguments;->uid:I

    .line 630
    iput-boolean v3, p0, Lcom/android/internal/os/ZygoteConnection$Arguments;->uidSpecified:Z

    .line 632
    :cond_1
    iget-boolean v4, p0, Lcom/android/internal/os/ZygoteConnection$Arguments;->gidSpecified:Z

    if-nez v4, :cond_2

    .line 633
    invoke-virtual {p1}, Landroid/net/Credentials;->getGid()I

    move-result v4

    iput v4, p0, Lcom/android/internal/os/ZygoteConnection$Arguments;->gid:I

    .line 634
    iput-boolean v3, p0, Lcom/android/internal/os/ZygoteConnection$Arguments;->gidSpecified:Z

    .line 636
    :cond_2
    return-void

    .line 601
    :cond_3
    if-ne v1, v5, :cond_5

    .line 603
    const-string/jumbo v4, "ro.factorytest"

    invoke-static {v4}, Landroid/os/SystemProperties;->get(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v0

    .line 609
    .local v0, factoryTest:Ljava/lang/String;
    const-string v4, "1"

    invoke-virtual {v0, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v4

    if-nez v4, :cond_4

    const-string v4, "2"

    invoke-virtual {v0, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v4

    if-nez v4, :cond_4

    move v2, v3

    .line 612
    .local v2, uidRestricted:Z
    :goto_0
    if-eqz v2, :cond_0

    iget-boolean v4, p0, Lcom/android/internal/os/ZygoteConnection$Arguments;->uidSpecified:Z

    if-eqz v4, :cond_0

    iget v4, p0, Lcom/android/internal/os/ZygoteConnection$Arguments;->uid:I

    if-ge v4, v5, :cond_0

    .line 614
    new-instance v3, Lcom/android/internal/os/ZygoteSecurityException;

    const-string v4, "System UID may not launch process with UID < 1000"

    invoke-direct {v3, v4}, Lcom/android/internal/os/ZygoteSecurityException;-><init>(Ljava/lang/String;)V

    throw v3

    .line 609
    .end local v2           #uidRestricted:Z
    :cond_4
    const/4 v2, 0x0

    goto :goto_0

    .line 620
    .end local v0           #factoryTest:Ljava/lang/String;
    :cond_5
    iget-boolean v4, p0, Lcom/android/internal/os/ZygoteConnection$Arguments;->uidSpecified:Z

    if-nez v4, :cond_6

    iget-boolean v4, p0, Lcom/android/internal/os/ZygoteConnection$Arguments;->gidSpecified:Z

    if-nez v4, :cond_6

    iget-object v4, p0, Lcom/android/internal/os/ZygoteConnection$Arguments;->gids:[I

    if-eqz v4, :cond_0

    .line 622
    :cond_6
    new-instance v3, Lcom/android/internal/os/ZygoteSecurityException;

    const-string v4, "App UIDs may not specify uid\'s or gid\'s"

    invoke-direct {v3, v4}, Lcom/android/internal/os/ZygoteSecurityException;-><init>(Ljava/lang/String;)V

    throw v3
.end method

.method private handleChildProc(Lcom/android/internal/os/ZygoteConnection$Arguments;[Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/PrintStream;)V
    .locals 13
    .parameter "parsedArgs"
    .parameter "descriptors"
    .parameter "pipeFd"
    .parameter "newStderr"
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lcom/android/internal/os/ZygoteInit$MethodAndArgsCaller;
        }
    .end annotation

    .prologue
    .line 803
    iget-boolean v9, p1, Lcom/android/internal/os/ZygoteConnection$Arguments;->peerWait:Z

    if-eqz v9, :cond_0

    .line 805
    :try_start_0
    iget-object v9, p0, Lcom/android/internal/os/ZygoteConnection;->mSocket:Landroid/net/LocalSocket;

    invoke-virtual {v9}, Landroid/net/LocalSocket;->getFileDescriptor()Ljava/io/FileDescriptor;

    move-result-object v9

    const/4 v10, 0x1

    invoke-static {v9, v10}, Lcom/android/internal/os/ZygoteInit;->setCloseOnExec(Ljava/io/FileDescriptor;Z)V

    .line 806
    iget-object v9, p0, Lcom/android/internal/os/ZygoteConnection;->mSocket:Landroid/net/LocalSocket;

    sput-object v9, Lcom/android/internal/os/ZygoteConnection;->sPeerWaitSocket:Landroid/net/LocalSocket;
    :try_end_0
    .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0

    .line 816
    :goto_0
    if-eqz p2, :cond_2

    .line 818
    const/4 v9, 0x0

    :try_start_1
    aget-object v9, p2, v9

    const/4 v10, 0x1

    aget-object v10, p2, v10

    const/4 v11, 0x2

    aget-object v11, p2, v11

    invoke-static {v9, v10, v11}, Lcom/android/internal/os/ZygoteInit;->reopenStdio(Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;)V

    .line 821
    move-object v1, p2

    .local v1, arr$:[Ljava/io/FileDescriptor;
    array-length v7, v1

    .local v7, len$:I
    const/4 v6, 0x0

    .local v6, i$:I
    :goto_1
    if-ge v6, v7, :cond_1

    aget-object v5, v1, v6

    .line 822
    .local v5, fd:Ljava/io/FileDescriptor;
    invoke-static {v5}, Llibcore/io/IoUtils;->closeQuietly(Ljava/io/FileDescriptor;)V
    :try_end_1
    .catch Ljava/io/IOException; {:try_start_1 .. :try_end_1} :catch_1

    .line 821
    add-int/lit8 v6, v6, 0x1

    goto :goto_1

    .line 807
    .end local v1           #arr$:[Ljava/io/FileDescriptor;
    .end local v5           #fd:Ljava/io/FileDescriptor;
    .end local v6           #i$:I
    .end local v7           #len$:I
    :catch_0
    move-exception v4

    .line 808
    .local v4, ex:Ljava/io/IOException;
    const-string v9, "Zygote"

    const-string v10, "Zygote Child: error setting peer wait socket to be close-on-exec"

    invoke-static {v9, v10, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I

    goto :goto_0

    .line 812
    .end local v4           #ex:Ljava/io/IOException;
    :cond_0
    invoke-virtual {p0}, Lcom/android/internal/os/ZygoteConnection;->closeSocket()V

    .line 813
    invoke-static {}, Lcom/android/internal/os/ZygoteInit;->closeServerSocket()V

    goto :goto_0

    .line 824
    .restart local v1       #arr$:[Ljava/io/FileDescriptor;
    .restart local v6       #i$:I
    .restart local v7       #len$:I
    :cond_1
    :try_start_2
    sget-object p4, Ljava/lang/System;->err:Ljava/io/PrintStream;
    :try_end_2
    .catch Ljava/io/IOException; {:try_start_2 .. :try_end_2} :catch_1

    .line 830
    .end local v1           #arr$:[Ljava/io/FileDescriptor;
    .end local v6           #i$:I
    .end local v7           #len$:I
    :cond_2
    :goto_2
    iget-object v9, p1, Lcom/android/internal/os/ZygoteConnection$Arguments;->niceName:Ljava/lang/String;

    if-eqz v9, :cond_3

    .line 831
    iget-object v9, p1, Lcom/android/internal/os/ZygoteConnection$Arguments;->niceName:Ljava/lang/String;

    invoke-static {v9}, Landroid/os/Process;->setArgV0(Ljava/lang/String;)V

    .line 834
    :cond_3
    iget-boolean v9, p1, Lcom/android/internal/os/ZygoteConnection$Arguments;->runtimeInit:Z

    if-eqz v9, :cond_5

    .line 835
    iget-object v9, p1, Lcom/android/internal/os/ZygoteConnection$Arguments;->invokeWith:Ljava/lang/String;

    if-eqz v9, :cond_4

    .line 836
    iget-object v9, p1, Lcom/android/internal/os/ZygoteConnection$Arguments;->invokeWith:Ljava/lang/String;

    iget-object v10, p1, Lcom/android/internal/os/ZygoteConnection$Arguments;->niceName:Ljava/lang/String;

    iget v11, p1, Lcom/android/internal/os/ZygoteConnection$Arguments;->targetSdkVersion:I

    iget-object v12, p1, Lcom/android/internal/os/ZygoteConnection$Arguments;->remainingArgs:[Ljava/lang/String;

    move-object/from16 v0, p3

    invoke-static {v9, v10, v11, v0, v12}, Lcom/android/internal/os/WrapperInit;->execApplication(Ljava/lang/String;Ljava/lang/String;ILjava/io/FileDescriptor;[Ljava/lang/String;)V

    .line 876
    :goto_3
    return-void

    .line 825
    :catch_1
    move-exception v4

    .line 826
    .restart local v4       #ex:Ljava/io/IOException;
    const-string v9, "Zygote"

    const-string v10, "Error reopening stdio"

    invoke-static {v9, v10, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I

    goto :goto_2

    .line 840
    .end local v4           #ex:Ljava/io/IOException;
    :cond_4
    iget v9, p1, Lcom/android/internal/os/ZygoteConnection$Arguments;->targetSdkVersion:I

    iget-object v10, p1, Lcom/android/internal/os/ZygoteConnection$Arguments;->remainingArgs:[Ljava/lang/String;

    invoke-static {v9, v10}, Lcom/android/internal/os/RuntimeInit;->zygoteInit(I[Ljava/lang/String;)V

    goto :goto_3

    .line 846
    :cond_5
    :try_start_3
    iget-object v9, p1, Lcom/android/internal/os/ZygoteConnection$Arguments;->remainingArgs:[Ljava/lang/String;

    const/4 v10, 0x0

    aget-object v2, v9, v10
    :try_end_3
    .catch Ljava/lang/ArrayIndexOutOfBoundsException; {:try_start_3 .. :try_end_3} :catch_2

    .line 853
    .local v2, className:Ljava/lang/String;
    iget-object v9, p1, Lcom/android/internal/os/ZygoteConnection$Arguments;->remainingArgs:[Ljava/lang/String;

    array-length v9, v9

    add-int/lit8 v9, v9, -0x1

    new-array v8, v9, [Ljava/lang/String;

    .line 854
    .local v8, mainArgs:[Ljava/lang/String;
    iget-object v9, p1, Lcom/android/internal/os/ZygoteConnection$Arguments;->remainingArgs:[Ljava/lang/String;

    const/4 v10, 0x1

    const/4 v11, 0x0

    array-length v12, v8

    invoke-static {v9, v10, v8, v11, v12}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 857
    iget-object v9, p1, Lcom/android/internal/os/ZygoteConnection$Arguments;->invokeWith:Ljava/lang/String;

    if-eqz v9, :cond_6

    .line 858
    iget-object v9, p1, Lcom/android/internal/os/ZygoteConnection$Arguments;->invokeWith:Ljava/lang/String;

    iget-object v10, p1, Lcom/android/internal/os/ZygoteConnection$Arguments;->classpath:Ljava/lang/String;

    invoke-static {v9, v10, v2, v8}, Lcom/android/internal/os/WrapperInit;->execStandalone(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V

    goto :goto_3

    .line 847
    .end local v2           #className:Ljava/lang/String;
    .end local v8           #mainArgs:[Ljava/lang/String;
    :catch_2
    move-exception v4

    .line 848
    .local v4, ex:Ljava/lang/ArrayIndexOutOfBoundsException;
    const-string v9, "Missing required class name argument"

    const/4 v10, 0x0

    move-object/from16 v0, p4

    invoke-static {v0, v9, v10}, Lcom/android/internal/os/ZygoteConnection;->logAndPrintError(Ljava/io/PrintStream;Ljava/lang/String;Ljava/lang/Throwable;)V

    goto :goto_3

    .line 862
    .end local v4           #ex:Ljava/lang/ArrayIndexOutOfBoundsException;
    .restart local v2       #className:Ljava/lang/String;
    .restart local v8       #mainArgs:[Ljava/lang/String;
    :cond_6
    iget-object v9, p1, Lcom/android/internal/os/ZygoteConnection$Arguments;->classpath:Ljava/lang/String;

    if-eqz v9, :cond_7

    .line 863
    new-instance v3, Ldalvik/system/PathClassLoader;

    iget-object v9, p1, Lcom/android/internal/os/ZygoteConnection$Arguments;->classpath:Ljava/lang/String;

    invoke-static {}, Ljava/lang/ClassLoader;->getSystemClassLoader()Ljava/lang/ClassLoader;

    move-result-object v10

    invoke-direct {v3, v9, v10}, Ldalvik/system/PathClassLoader;-><init>(Ljava/lang/String;Ljava/lang/ClassLoader;)V

    .line 870
    .local v3, cloader:Ljava/lang/ClassLoader;
    :goto_4
    :try_start_4
    invoke-static {v3, v2, v8}, Lcom/android/internal/os/ZygoteInit;->invokeStaticMain(Ljava/lang/ClassLoader;Ljava/lang/String;[Ljava/lang/String;)V
    :try_end_4
    .catch Ljava/lang/RuntimeException; {:try_start_4 .. :try_end_4} :catch_3

    goto :goto_3

    .line 871
    :catch_3
    move-exception v4

    .line 872
    .local v4, ex:Ljava/lang/RuntimeException;
    const-string v9, "Error starting."

    move-object/from16 v0, p4

    invoke-static {v0, v9, v4}, Lcom/android/internal/os/ZygoteConnection;->logAndPrintError(Ljava/io/PrintStream;Ljava/lang/String;Ljava/lang/Throwable;)V

    goto :goto_3

    .line 866
    .end local v3           #cloader:Ljava/lang/ClassLoader;
    .end local v4           #ex:Ljava/lang/RuntimeException;
    :cond_7
    invoke-static {}, Ljava/lang/ClassLoader;->getSystemClassLoader()Ljava/lang/ClassLoader;

    move-result-object v3

    .restart local v3       #cloader:Ljava/lang/ClassLoader;
    goto :goto_4
.end method

.method private handleParentProc(I[Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Lcom/android/internal/os/ZygoteConnection$Arguments;)Z
    .locals 13
    .parameter "pid"
    .parameter "descriptors"
    .parameter "pipeFd"
    .parameter "parsedArgs"

    .prologue
    .line 893
    if-lez p1, :cond_0

    .line 894
    invoke-direct {p0, p1}, Lcom/android/internal/os/ZygoteConnection;->setChildPgid(I)V

    .line 897
    :cond_0
    if-eqz p2, :cond_1

    .line 898
    move-object v1, p2

    .local v1, arr$:[Ljava/io/FileDescriptor;
    array-length v7, v1

    .local v7, len$:I
    const/4 v4, 0x0

    .local v4, i$:I
    :goto_0
    if-ge v4, v7, :cond_1

    aget-object v3, v1, v4

    .line 899
    .local v3, fd:Ljava/io/FileDescriptor;
    invoke-static {v3}, Llibcore/io/IoUtils;->closeQuietly(Ljava/io/FileDescriptor;)V

    .line 898
    add-int/lit8 v4, v4, 0x1

    goto :goto_0

    .line 903
    .end local v1           #arr$:[Ljava/io/FileDescriptor;
    .end local v3           #fd:Ljava/io/FileDescriptor;
    .end local v4           #i$:I
    .end local v7           #len$:I
    :cond_1
    const/4 v9, 0x0

    .line 904
    .local v9, usingWrapper:Z
    if-eqz p3, :cond_3

    if-lez p1, :cond_3

    .line 905
    new-instance v6, Ljava/io/DataInputStream;

    new-instance v10, Ljava/io/FileInputStream;

    move-object/from16 v0, p3

    invoke-direct {v10, v0}, Ljava/io/FileInputStream;-><init>(Ljava/io/FileDescriptor;)V

    invoke-direct {v6, v10}, Ljava/io/DataInputStream;-><init>(Ljava/io/InputStream;)V

    .line 906
    .local v6, is:Ljava/io/DataInputStream;
    const/4 v5, -0x1

    .line 908
    .local v5, innerPid:I
    :try_start_0
    invoke-virtual {v6}, Ljava/io/DataInputStream;->readInt()I
    :try_end_0
    .catchall {:try_start_0 .. :try_end_0} :catchall_0
    .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0

    move-result v5

    .line 913
    :try_start_1
    invoke-virtual {v6}, Ljava/io/DataInputStream;->close()V
    :try_end_1
    .catch Ljava/io/IOException; {:try_start_1 .. :try_end_1} :catch_1

    .line 920
    :goto_1
    if-lez v5, :cond_3

    .line 921
    move v8, v5

    .line 922
    .local v8, parentPid:I
    :goto_2
    if-lez v8, :cond_2

    if-eq v8, p1, :cond_2

    .line 923
    invoke-static {v8}, Landroid/os/Process;->getParentPid(I)I

    move-result v8

    goto :goto_2

    .line 909
    .end local v8           #parentPid:I
    :catch_0
    move-exception v2

    .line 910
    .local v2, ex:Ljava/io/IOException;
    :try_start_2
    const-string v10, "Zygote"

    const-string v11, "Error reading pid from wrapped process, child may have died"

    invoke-static {v10, v11, v2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
    :try_end_2
    .catchall {:try_start_2 .. :try_end_2} :catchall_0

    .line 913
    :try_start_3
    invoke-virtual {v6}, Ljava/io/DataInputStream;->close()V
    :try_end_3
    .catch Ljava/io/IOException; {:try_start_3 .. :try_end_3} :catch_1

    goto :goto_1

    .line 914
    .end local v2           #ex:Ljava/io/IOException;
    :catch_1
    move-exception v10

    goto :goto_1

    .line 912
    :catchall_0
    move-exception v10

    .line 913
    :try_start_4
    invoke-virtual {v6}, Ljava/io/DataInputStream;->close()V
    :try_end_4
    .catch Ljava/io/IOException; {:try_start_4 .. :try_end_4} :catch_4

    .line 912
    :goto_3
    throw v10

    .line 925
    .restart local v8       #parentPid:I
    :cond_2
    if-lez v8, :cond_4

    .line 926
    const-string v10, "Zygote"

    new-instance v11, Ljava/lang/StringBuilder;

    invoke-direct {v11}, Ljava/lang/StringBuilder;-><init>()V

    const-string v12, "Wrapped process has pid "

    invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v11

    invoke-virtual {v11, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v11

    invoke-virtual {v11}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v11

    invoke-static {v10, v11}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I

    .line 927
    move p1, v5

    .line 928
    const/4 v9, 0x1

    .line 938
    .end local v5           #innerPid:I
    .end local v6           #is:Ljava/io/DataInputStream;
    .end local v8           #parentPid:I
    :cond_3
    :goto_4
    :try_start_5
    iget-object v10, p0, Lcom/android/internal/os/ZygoteConnection;->mSocketOutStream:Ljava/io/DataOutputStream;

    invoke-virtual {v10, p1}, Ljava/io/DataOutputStream;->writeInt(I)V

    .line 939
    iget-object v10, p0, Lcom/android/internal/os/ZygoteConnection;->mSocketOutStream:Ljava/io/DataOutputStream;

    invoke-virtual {v10, v9}, Ljava/io/DataOutputStream;->writeBoolean(Z)V
    :try_end_5
    .catch Ljava/io/IOException; {:try_start_5 .. :try_end_5} :catch_2

    .line 949
    move-object/from16 v0, p4

    iget-boolean v10, v0, Lcom/android/internal/os/ZygoteConnection$Arguments;->peerWait:Z

    if-eqz v10, :cond_5

    .line 951
    :try_start_6
    iget-object v10, p0, Lcom/android/internal/os/ZygoteConnection;->mSocket:Landroid/net/LocalSocket;

    invoke-virtual {v10}, Landroid/net/LocalSocket;->close()V
    :try_end_6
    .catch Ljava/io/IOException; {:try_start_6 .. :try_end_6} :catch_3

    .line 955
    :goto_5
    const/4 v10, 0x1

    .line 957
    :goto_6
    return v10

    .line 930
    .restart local v5       #innerPid:I
    .restart local v6       #is:Ljava/io/DataInputStream;
    .restart local v8       #parentPid:I
    :cond_4
    const-string v10, "Zygote"

    new-instance v11, Ljava/lang/StringBuilder;

    invoke-direct {v11}, Ljava/lang/StringBuilder;-><init>()V

    const-string v12, "Wrapped process reported a pid that is not a child of the process that we forked: childPid="

    invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v11

    invoke-virtual {v11, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v11

    const-string v12, " innerPid="

    invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v11

    invoke-virtual {v11, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v11

    invoke-virtual {v11}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v11

    invoke-static {v10, v11}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I

    goto :goto_4

    .line 940
    .end local v5           #innerPid:I
    .end local v6           #is:Ljava/io/DataInputStream;
    .end local v8           #parentPid:I
    :catch_2
    move-exception v2

    .line 941
    .restart local v2       #ex:Ljava/io/IOException;
    const-string v10, "Zygote"

    const-string v11, "Error reading from command socket"

    invoke-static {v10, v11, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I

    .line 942
    const/4 v10, 0x1

    goto :goto_6

    .line 952
    .end local v2           #ex:Ljava/io/IOException;
    :catch_3
    move-exception v2

    .line 953
    .restart local v2       #ex:Ljava/io/IOException;
    const-string v10, "Zygote"

    const-string v11, "Zygote: error closing sockets"

    invoke-static {v10, v11, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I

    goto :goto_5

    .line 957
    .end local v2           #ex:Ljava/io/IOException;
    :cond_5
    const/4 v10, 0x0

    goto :goto_6

    .line 914
    .restart local v5       #innerPid:I
    .restart local v6       #is:Ljava/io/DataInputStream;
    :catch_4
    move-exception v11

    goto :goto_3
.end method

.method private static logAndPrintError(Ljava/io/PrintStream;Ljava/lang/String;Ljava/lang/Throwable;)V
    .locals 1
    .parameter "newStderr"
    .parameter "message"
    .parameter "ex"

    .prologue
    .line 984
    const-string v0, "Zygote"

    invoke-static {v0, p1, p2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I

    .line 985
    if-eqz p0, :cond_1

    .line 986
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v0

    if-nez p2, :cond_0

    const-string p2, ""

    .end local p2
    :cond_0
    invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    move-result-object v0

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-virtual {p0, v0}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V

    .line 988
    :cond_1
    return-void
.end method

.method private readArgumentList()[Ljava/lang/String;
    .locals 7
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/io/IOException;
        }
    .end annotation

    .prologue
    .line 549
    :try_start_0
    iget-object v5, p0, Lcom/android/internal/os/ZygoteConnection;->mSocketReader:Ljava/io/BufferedReader;

    invoke-virtual {v5}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;

    move-result-object v4

    .line 551
    .local v4, s:Ljava/lang/String;
    if-nez v4, :cond_1

    .line 553
    const/4 v3, 0x0

    .line 575
    :cond_0
    return-object v3

    .line 555
    :cond_1
    invoke-static {v4}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
    :try_end_0
    .catch Ljava/lang/NumberFormatException; {:try_start_0 .. :try_end_0} :catch_0

    move-result v0

    .line 562
    .local v0, argc:I
    const/16 v5, 0x400

    if-le v0, v5, :cond_2

    .line 563
    new-instance v5, Ljava/io/IOException;

    const-string/jumbo v6, "max arg count exceeded"

    invoke-direct {v5, v6}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V

    throw v5

    .line 556
    .end local v0           #argc:I
    .end local v4           #s:Ljava/lang/String;
    :catch_0
    move-exception v1

    .line 557
    .local v1, ex:Ljava/lang/NumberFormatException;
    const-string v5, "Zygote"

    const-string v6, "invalid Zygote wire format: non-int at argc"

    invoke-static {v5, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    .line 558
    new-instance v5, Ljava/io/IOException;

    const-string v6, "invalid wire format"

    invoke-direct {v5, v6}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V

    throw v5

    .line 566
    .end local v1           #ex:Ljava/lang/NumberFormatException;
    .restart local v0       #argc:I
    .restart local v4       #s:Ljava/lang/String;
    :cond_2
    new-array v3, v0, [Ljava/lang/String;

    .line 567
    .local v3, result:[Ljava/lang/String;
    const/4 v2, 0x0

    .local v2, i:I
    :goto_0
    if-ge v2, v0, :cond_0

    .line 568
    iget-object v5, p0, Lcom/android/internal/os/ZygoteConnection;->mSocketReader:Ljava/io/BufferedReader;

    invoke-virtual {v5}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;

    move-result-object v5

    aput-object v5, v3, v2

    .line 569
    aget-object v5, v3, v2

    if-nez v5, :cond_3

    .line 571
    new-instance v5, Ljava/io/IOException;

    const-string/jumbo v6, "truncated request"

    invoke-direct {v5, v6}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V

    throw v5

    .line 567
    :cond_3
    add-int/lit8 v2, v2, 0x1

    goto :goto_0
.end method

.method private setChildPgid(I)V
    .locals 3
    .parameter "pid"

    .prologue
    .line 963
    :try_start_0
    iget-object v1, p0, Lcom/android/internal/os/ZygoteConnection;->peer:Landroid/net/Credentials;

    invoke-virtual {v1}, Landroid/net/Credentials;->getPid()I

    move-result v1

    invoke-static {v1}, Lcom/android/internal/os/ZygoteInit;->getpgid(I)I

    move-result v1

    invoke-static {p1, v1}, Lcom/android/internal/os/ZygoteInit;->setpgid(II)I
    :try_end_0
    .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0

    .line 972
    :goto_0
    return-void

    .line 964
    :catch_0
    move-exception v0

    .line 969
    .local v0, ex:Ljava/io/IOException;
    const-string v1, "Zygote"

    const-string v2, "Zygote: setpgid failed. This is normal if peer is not in our session"

    invoke-static {v1, v2}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I

    goto :goto_0
.end method

# virtual methods
.method closeSocket()V
    .locals 3

    .prologue
    .line 271
    :try_start_0
    iget-object v1, p0, Lcom/android/internal/os/ZygoteConnection;->mSocket:Landroid/net/LocalSocket;

    invoke-virtual {v1}, Landroid/net/LocalSocket;->close()V
    :try_end_0
    .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0

    .line 276
    :goto_0
    return-void

    .line 272
    :catch_0
    move-exception v0

    .line 273
    .local v0, ex:Ljava/io/IOException;
    const-string v1, "Zygote"

    const-string v2, "Exception while closing command socket in parent"

    invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I

    goto :goto_0
.end method

.method getFileDesciptor()Ljava/io/FileDescriptor;
    .locals 1

    .prologue
    .line 120
    iget-object v0, p0, Lcom/android/internal/os/ZygoteConnection;->mSocket:Landroid/net/LocalSocket;

    invoke-virtual {v0}, Landroid/net/LocalSocket;->getFileDescriptor()Ljava/io/FileDescriptor;

    move-result-object v0

    return-object v0
.end method

.method run()V
    .locals 2
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lcom/android/internal/os/ZygoteInit$MethodAndArgsCaller;
        }
    .end annotation

    .prologue
    .line 135
    const/16 v0, 0xa

    .line 147
    .local v0, loopCount:I
    :cond_0
    if-gtz v0, :cond_1

    .line 148
    invoke-static {}, Lcom/android/internal/os/ZygoteInit;->gc()V

    .line 149
    const/16 v0, 0xa

    .line 154
    :goto_0
    invoke-virtual {p0}, Lcom/android/internal/os/ZygoteConnection;->runOnce()Z

    move-result v1

    if-eqz v1, :cond_0

    .line 158
    return-void

    .line 151
    :cond_1
    add-int/lit8 v0, v0, -0x1

    goto :goto_0
.end method

.method runOnce()Z
    .locals 15
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lcom/android/internal/os/ZygoteInit$MethodAndArgsCaller;
        }
    .end annotation

    .prologue
    .line 177
    const/4 v5, 0x0

    .line 181
    .local v5, parsedArgs:Lcom/android/internal/os/ZygoteConnection$Arguments;
    :try_start_0
    invoke-direct {p0}, Lcom/android/internal/os/ZygoteConnection;->readArgumentList()[Ljava/lang/String;

    move-result-object v0

    .line 182
    .local v0, args:[Ljava/lang/String;
    iget-object v11, p0, Lcom/android/internal/os/ZygoteConnection;->mSocket:Landroid/net/LocalSocket;

    invoke-virtual {v11}, Landroid/net/LocalSocket;->getAncillaryFileDescriptors()[Ljava/io/FileDescriptor;
    :try_end_0
    .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0

    move-result-object v2

    .line 189
    .local v2, descriptors:[Ljava/io/FileDescriptor;
    if-nez v0, :cond_0

    .line 191
    invoke-virtual {p0}, Lcom/android/internal/os/ZygoteConnection;->closeSocket()V

    .line 192
    const/4 v11, 0x1

    .line 258
    .end local v0           #args:[Ljava/lang/String;
    .end local v2           #descriptors:[Ljava/io/FileDescriptor;
    :goto_0
    return v11

    .line 183
    :catch_0
    move-exception v3

    .line 184
    .local v3, ex:Ljava/io/IOException;
    const-string v11, "Zygote"

    new-instance v12, Ljava/lang/StringBuilder;

    invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V

    const-string v13, "IOException on command socket "

    invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v12

    invoke-virtual {v3}, Ljava/io/IOException;->getMessage()Ljava/lang/String;

    move-result-object v13

    invoke-virtual {v12, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v12

    invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v12

    invoke-static {v11, v12}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I

    .line 185
    invoke-virtual {p0}, Lcom/android/internal/os/ZygoteConnection;->closeSocket()V

    .line 186
    const/4 v11, 0x1

    goto :goto_0

    .line 196
    .end local v3           #ex:Ljava/io/IOException;
    .restart local v0       #args:[Ljava/lang/String;
    .restart local v2       #descriptors:[Ljava/io/FileDescriptor;
    :cond_0
    const/4 v4, 0x0

    .line 198
    .local v4, newStderr:Ljava/io/PrintStream;
    if-eqz v2, :cond_1

    array-length v11, v2

    const/4 v12, 0x3

    if-lt v11, v12, :cond_1

    .line 199
    new-instance v4, Ljava/io/PrintStream;

    .end local v4           #newStderr:Ljava/io/PrintStream;
    new-instance v11, Ljava/io/FileOutputStream;

    const/4 v12, 0x2

    aget-object v12, v2, v12

    invoke-direct {v11, v12}, Ljava/io/FileOutputStream;-><init>(Ljava/io/FileDescriptor;)V

    invoke-direct {v4, v11}, Ljava/io/PrintStream;-><init>(Ljava/io/OutputStream;)V

    .line 203
    .restart local v4       #newStderr:Ljava/io/PrintStream;
    :cond_1
    const/4 v7, -0x1

    .line 204
    .local v7, pid:I
    const/4 v1, 0x0

    .line 205
    .local v1, childPipeFd:Ljava/io/FileDescriptor;
    const/4 v10, 0x0

    .line 208
    .local v10, serverPipeFd:Ljava/io/FileDescriptor;
    :try_start_1
    new-instance v6, Lcom/android/internal/os/ZygoteConnection$Arguments;

    invoke-direct {v6, v0}, Lcom/android/internal/os/ZygoteConnection$Arguments;-><init>([Ljava/lang/String;)V
    :try_end_1
    .catch Ljava/io/IOException; {:try_start_1 .. :try_end_1} :catch_1
    .catch Llibcore/io/ErrnoException; {:try_start_1 .. :try_end_1} :catch_2
    .catch Ljava/lang/IllegalArgumentException; {:try_start_1 .. :try_end_1} :catch_3
    .catch Lcom/android/internal/os/ZygoteSecurityException; {:try_start_1 .. :try_end_1} :catch_4

    .line 210
    .end local v5           #parsedArgs:Lcom/android/internal/os/ZygoteConnection$Arguments;
    .local v6, parsedArgs:Lcom/android/internal/os/ZygoteConnection$Arguments;
    :try_start_2
    iget-object v11, p0, Lcom/android/internal/os/ZygoteConnection;->peer:Landroid/net/Credentials;

    invoke-static {v6, v11}, Lcom/android/internal/os/ZygoteConnection;->applyUidSecurityPolicy(Lcom/android/internal/os/ZygoteConnection$Arguments;Landroid/net/Credentials;)V

    .line 211
    iget-object v11, p0, Lcom/android/internal/os/ZygoteConnection;->peer:Landroid/net/Credentials;

    invoke-static {v6, v11}, Lcom/android/internal/os/ZygoteConnection;->applyRlimitSecurityPolicy(Lcom/android/internal/os/ZygoteConnection$Arguments;Landroid/net/Credentials;)V

    .line 212
    iget-object v11, p0, Lcom/android/internal/os/ZygoteConnection;->peer:Landroid/net/Credentials;

    invoke-static {v6, v11}, Lcom/android/internal/os/ZygoteConnection;->applyCapabilitiesSecurityPolicy(Lcom/android/internal/os/ZygoteConnection$Arguments;Landroid/net/Credentials;)V

    .line 213
    iget-object v11, p0, Lcom/android/internal/os/ZygoteConnection;->peer:Landroid/net/Credentials;

    invoke-static {v6, v11}, Lcom/android/internal/os/ZygoteConnection;->applyInvokeWithSecurityPolicy(Lcom/android/internal/os/ZygoteConnection$Arguments;Landroid/net/Credentials;)V

    .line 215
    invoke-static {v6}, Lcom/android/internal/os/ZygoteConnection;->applyDebuggerSystemProperty(Lcom/android/internal/os/ZygoteConnection$Arguments;)V

    .line 216
    invoke-static {v6}, Lcom/android/internal/os/ZygoteConnection;->applyInvokeWithSystemProperty(Lcom/android/internal/os/ZygoteConnection$Arguments;)V

    .line 218
    const/4 v9, 0x0

    check-cast v9, [[I

    .line 220
    .local v9, rlimits:[[I
    iget-object v11, v6, Lcom/android/internal/os/ZygoteConnection$Arguments;->rlimits:Ljava/util/ArrayList;

    if-eqz v11, :cond_2

    .line 221
    iget-object v11, v6, Lcom/android/internal/os/ZygoteConnection$Arguments;->rlimits:Ljava/util/ArrayList;

    sget-object v12, Lcom/android/internal/os/ZygoteConnection;->intArray2d:[[I

    invoke-virtual {v11, v12}, Ljava/util/ArrayList;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;

    move-result-object v9

    .end local v9           #rlimits:[[I
    check-cast v9, [[I

    .line 224
    .restart local v9       #rlimits:[[I
    :cond_2
    iget-boolean v11, v6, Lcom/android/internal/os/ZygoteConnection$Arguments;->runtimeInit:Z

    if-eqz v11, :cond_3

    iget-object v11, v6, Lcom/android/internal/os/ZygoteConnection$Arguments;->invokeWith:Ljava/lang/String;

    if-eqz v11, :cond_3

    .line 225
    sget-object v11, Llibcore/io/Libcore;->os:Llibcore/io/Os;

    invoke-interface {v11}, Llibcore/io/Os;->pipe()[Ljava/io/FileDescriptor;

    move-result-object v8

    .line 226
    .local v8, pipeFds:[Ljava/io/FileDescriptor;
    const/4 v11, 0x1

    aget-object v1, v8, v11

    .line 227
    const/4 v11, 0x0

    aget-object v10, v8, v11

    .line 228
    const/4 v11, 0x1

    invoke-static {v10, v11}, Lcom/android/internal/os/ZygoteInit;->setCloseOnExec(Ljava/io/FileDescriptor;Z)V

    .line 231
    .end local v8           #pipeFds:[Ljava/io/FileDescriptor;
    :cond_3
    iget v11, v6, Lcom/android/internal/os/ZygoteConnection$Arguments;->uid:I

    iget v12, v6, Lcom/android/internal/os/ZygoteConnection$Arguments;->gid:I

    iget-object v13, v6, Lcom/android/internal/os/ZygoteConnection$Arguments;->gids:[I

    iget v14, v6, Lcom/android/internal/os/ZygoteConnection$Arguments;->debugFlags:I

    invoke-static {v11, v12, v13, v14, v9}, Ldalvik/system/Zygote;->forkAndSpecialize(II[II[[I)I
    :try_end_2
    .catch Ljava/io/IOException; {:try_start_2 .. :try_end_2} :catch_8
    .catch Llibcore/io/ErrnoException; {:try_start_2 .. :try_end_2} :catch_7
    .catch Ljava/lang/IllegalArgumentException; {:try_start_2 .. :try_end_2} :catch_6
    .catch Lcom/android/internal/os/ZygoteSecurityException; {:try_start_2 .. :try_end_2} :catch_5

    move-result v7

    move-object v5, v6

    .line 245
    .end local v6           #parsedArgs:Lcom/android/internal/os/ZygoteConnection$Arguments;
    .end local v9           #rlimits:[[I
    .restart local v5       #parsedArgs:Lcom/android/internal/os/ZygoteConnection$Arguments;
    :goto_1
    if-nez v7, :cond_4

    .line 247
    :try_start_3
    invoke-static {v10}, Llibcore/io/IoUtils;->closeQuietly(Ljava/io/FileDescriptor;)V

    .line 248
    const/4 v10, 0x0

    .line 249
    invoke-direct {p0, v5, v2, v1, v4}, Lcom/android/internal/os/ZygoteConnection;->handleChildProc(Lcom/android/internal/os/ZygoteConnection$Arguments;[Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Ljava/io/PrintStream;)V
    :try_end_3
    .catchall {:try_start_3 .. :try_end_3} :catchall_0

    .line 253
    const/4 v11, 0x1

    .line 261
    invoke-static {v1}, Llibcore/io/IoUtils;->closeQuietly(Ljava/io/FileDescriptor;)V

    .line 262
    :goto_2
    invoke-static {v10}, Llibcore/io/IoUtils;->closeQuietly(Ljava/io/FileDescriptor;)V

    goto/16 :goto_0

    .line 233
    :catch_1
    move-exception v3

    .line 234
    .restart local v3       #ex:Ljava/io/IOException;
    :goto_3
    const-string v11, "Exception creating pipe"

    invoke-static {v4, v11, v3}, Lcom/android/internal/os/ZygoteConnection;->logAndPrintError(Ljava/io/PrintStream;Ljava/lang/String;Ljava/lang/Throwable;)V

    goto :goto_1

    .line 235
    .end local v3           #ex:Ljava/io/IOException;
    :catch_2
    move-exception v3

    .line 236
    .local v3, ex:Llibcore/io/ErrnoException;
    :goto_4
    const-string v11, "Exception creating pipe"

    invoke-static {v4, v11, v3}, Lcom/android/internal/os/ZygoteConnection;->logAndPrintError(Ljava/io/PrintStream;Ljava/lang/String;Ljava/lang/Throwable;)V

    goto :goto_1

    .line 237
    .end local v3           #ex:Llibcore/io/ErrnoException;
    :catch_3
    move-exception v3

    .line 238
    .local v3, ex:Ljava/lang/IllegalArgumentException;
    :goto_5
    const-string v11, "Invalid zygote arguments"

    invoke-static {v4, v11, v3}, Lcom/android/internal/os/ZygoteConnection;->logAndPrintError(Ljava/io/PrintStream;Ljava/lang/String;Ljava/lang/Throwable;)V

    goto :goto_1

    .line 239
    .end local v3           #ex:Ljava/lang/IllegalArgumentException;
    :catch_4
    move-exception v3

    .line 240
    .local v3, ex:Lcom/android/internal/os/ZygoteSecurityException;
    :goto_6
    const-string v11, "Zygote security policy prevents request: "

    invoke-static {v4, v11, v3}, Lcom/android/internal/os/ZygoteConnection;->logAndPrintError(Ljava/io/PrintStream;Ljava/lang/String;Ljava/lang/Throwable;)V

    goto :goto_1

    .line 256
    .end local v3           #ex:Lcom/android/internal/os/ZygoteSecurityException;
    :cond_4
    :try_start_4
    invoke-static {v1}, Llibcore/io/IoUtils;->closeQuietly(Ljava/io/FileDescriptor;)V

    .line 257
    const/4 v1, 0x0

    .line 258
    invoke-direct {p0, v7, v2, v10, v5}, Lcom/android/internal/os/ZygoteConnection;->handleParentProc(I[Ljava/io/FileDescriptor;Ljava/io/FileDescriptor;Lcom/android/internal/os/ZygoteConnection$Arguments;)Z
    :try_end_4
    .catchall {:try_start_4 .. :try_end_4} :catchall_0

    move-result v11

    .line 261
    invoke-static {v1}, Llibcore/io/IoUtils;->closeQuietly(Ljava/io/FileDescriptor;)V

    goto :goto_2

    :catchall_0
    move-exception v11

    invoke-static {v1}, Llibcore/io/IoUtils;->closeQuietly(Ljava/io/FileDescriptor;)V

    .line 262
    invoke-static {v10}, Llibcore/io/IoUtils;->closeQuietly(Ljava/io/FileDescriptor;)V

    .line 261
    throw v11

    .line 239
    .end local v5           #parsedArgs:Lcom/android/internal/os/ZygoteConnection$Arguments;
    .restart local v6       #parsedArgs:Lcom/android/internal/os/ZygoteConnection$Arguments;
    :catch_5
    move-exception v3

    move-object v5, v6

    .end local v6           #parsedArgs:Lcom/android/internal/os/ZygoteConnection$Arguments;
    .restart local v5       #parsedArgs:Lcom/android/internal/os/ZygoteConnection$Arguments;
    goto :goto_6

    .line 237
    .end local v5           #parsedArgs:Lcom/android/internal/os/ZygoteConnection$Arguments;
    .restart local v6       #parsedArgs:Lcom/android/internal/os/ZygoteConnection$Arguments;
    :catch_6
    move-exception v3

    move-object v5, v6

    .end local v6           #parsedArgs:Lcom/android/internal/os/ZygoteConnection$Arguments;
    .restart local v5       #parsedArgs:Lcom/android/internal/os/ZygoteConnection$Arguments;
    goto :goto_5

    .line 235
    .end local v5           #parsedArgs:Lcom/android/internal/os/ZygoteConnection$Arguments;
    .restart local v6       #parsedArgs:Lcom/android/internal/os/ZygoteConnection$Arguments;
    :catch_7
    move-exception v3

    move-object v5, v6

    .end local v6           #parsedArgs:Lcom/android/internal/os/ZygoteConnection$Arguments;
    .restart local v5       #parsedArgs:Lcom/android/internal/os/ZygoteConnection$Arguments;
    goto :goto_4

    .line 233
    .end local v5           #parsedArgs:Lcom/android/internal/os/ZygoteConnection$Arguments;
    .restart local v6       #parsedArgs:Lcom/android/internal/os/ZygoteConnection$Arguments;
    :catch_8
    move-exception v3

    move-object v5, v6

    .end local v6           #parsedArgs:Lcom/android/internal/os/ZygoteConnection$Arguments;
    .restart local v5       #parsedArgs:Lcom/android/internal/os/ZygoteConnection$Arguments;
    goto :goto_3
.end method


Each yellow, oblong, soft gelatin capsule, printed "DT 050" in black and containing a clear, slightly–yellow-to–pale-amber oily liquid contains dutasteride 0.5 mg. Nonmedicinal ingredients: butylated hydroxytoluene and mono-and di-glycerides of caprilic/capric acids. Capsule shell: gelatin (from certified, BSE-free, nonporcine sources), glycerin, iron oxide yellow, lecithin, medium chain triglycerides, purified water, titanium dioxide. Edible black ink: iron oxide black, isopropyl alcohol, N-butyl alcohol, propylene glycol, and shellac.