text:
Ms. Marvel (Series)
Ms. Marvel Dad Actor Mohan Kapur Accused of Disturbing Sexual Harassment Allegations
By Sam Hargrave Posted: December 01, 2022
A Ms. Marvel star has faced accusations for allegedly sexually harassing a 15-year-old girl and exposing himself through nude images.
Ms. Marvel Actor Faces Sexual Harassment Controversy
Actor Mohan Kapur - who made his MCU debut as Yusuf Khan in Ms. Marvel - has recently become embroiled in a #MeToo controversy as he has been accused of sexually harassing and sharing explicit images with a 15-year-old girl.
The alleged survivor, @Nayaaaax3, claimed that, when confronted regarding his actions, Kapur attempted to gaslight her into believing she was at fault for the situation.
The Twitter user described her experience through a series of posts, explaining the entire story of how "Mohan Kapur took advantage of [her]" after they met through his partner at the time and developed a parent-like relationship:
"TW: When I was 14 years old, I was a fan of this serial actress & we became friends. Her partner at that time Mohan Kapur also became friends with me. I respected the both of them almost like 2nd parents, & told them about my stressful life. But Mohan Kapur took advantage of me."
She added that the actor "sent his d**k pics to [her]" and continued to harass her afterward, despite having apologized. He even allegedly shared an interest in eventually marrying and having sex with the underage girl once she was older:
"We constantly talked until I notice he started flirting with me. Then when I was 15 years old Mohan Kapur sent his d**k pics to me. He was apologizing nonstop & was depressed…. I forgave him. But after that he continued to harass me….
Said things like how he was in love with me, wanted to marry me, wanting me to grow up to be with him, and can't wait for me to get older so I can sleep with him. Now I know that Mohan Kapur was grooming me."
The purported victim added that his partner at the time "knew the type of man he was" and explained her reaction to discovering the situation:
"His partner (now ex) knew the type of man he was…. She was aware that he was talking to me. When I met her in person, I told her everything that was happening. A year later I stopped talking to her after she started gaslighting me. I was so depressed about this situation….
She told me how "I threw my baggage on her"…. I really truly felt that this woman didn't care at all for what Mohan Kapur was doing to me…"
She went on to note how this made her "confused and depressed," even leading to her "planning to take [her] own life" while he ignored her calls:
"I was so confused & depressed…. I'm not sure if it's Stockholm syndrome "or what but I kept on thinking that all of this was my fault… and kept on wanting to be his friend again. I kept on thinking that he really truly cared about me… but he didn't.
My depression got worst & I was planning to take my own life…. I kept on calling Mohan Kapur… he ignore my calls… and at times told me to get over it. Then completely twist the whole story to make me look like the bad person… he kept on saying that he can't trust me…"
The user went on to reveal how she eventually gave in and sent nude photos to him in the hopes of restoring their friendship:
"The last time I talked to Mohan Kapur was 2020 and I was crying… I said I really can't take any of this anymore…. Hoping that he would apologize & understand the trauma he had cause. Instead he told me that he can't trust me and the only way he can trust me again is if….
I hop on video chat and send nudes to him in order to be friends with him again. #metoo @IndiaMeToo #MeToo"
@Nayaaaax3 pointed out how he accused her of "misconstruing chat" and claimed he was asking for nudes images to strangely prove his innocence:
"@mohankapur When I stand up for myself… you gaslight me and blame me for "misconstruing chat" and your reason for asking for my nudes was that you can prove your innocence???!! Does that even make any sense MOHAN??"
She also shared a conversation between the two which revealed Kapur's response to being asked why he asked her to send him explicit nude images:
@Nayaaaax3: "Why did you ask me to send you nudes"
Kapur: "To keep as proof your intentions. You have misconstrued our conversations to make it sound that I was sexually harassing you. I have all the stuff myself too. I don't say things cause that's not what friends do. And I won't either"
Kapur has recently privatized his own Twitter account, seemingly in response to the allegation that has led to the MCU actor being blasted across social media.
How Will Mohan Kapur's Controversy Impact His MCU Future
Mohan Kapur has already been confirmed to return as Kamala Khan's father in The Marvels along with the rest of the Khan family. However, his MCU future beyond that point remains unclear as Ms. Marvel has not yet been renewed for Season 2, although the latest update bodes well on that front.
The latest allegations surrounding the actor's past sexual harassment and grooming are obviously disturbing but are unlikely to impact his MCU future. Unless legal action is taken against Kapur or further allegations emerge to the point Disney's public image is threatened, the studio may opt not to act.
That action could take the form of excluding the character from future Ms. Marvel-related projects, killing off Yusuf Khan altogether, or recasting the actor. Marvel Studios has replaced actors several times in the past, although never for this reason, so finding another actor to continue Yusuf's story is not off the table.
Ms. Marvel is streaming now, exclusively on Disney+.
Tags: Ms. Marvel (Series) /


text:
Q: Prove that: $\mathcal{R}(\mathbf{A}^T) = \mathcal{R}(\mathbf{A}^T\mathbf{A})$ Prove that: $\mathcal{R}(\mathbf{A}^T) = \mathcal{R}(\mathbf{A}^T\mathbf{A})$.
(By $\mathcal{R}(\mathbf{X})$ i mean the column space of the matrix $\mathbf{X}$.)
The inclusion in the direction $\supseteq$ was easy to prove. However, i can't prove the $\subseteq$ inclusion. Do you have a trick to prove this?
Maybe we also need a further restrition, like $\mathbf{A}\in\mathbb{R}^{m\times n}$, $m\geq n$?

A: Every vector in the left hand side is of the form
$$
A^t A u
$$
where $u$ is a vector in $R^n$. Rewrite that as
$$
A^t A u = A^t v
$$
where $v = A^t u$ is therefore a vector in $R^m$. Well, that vector is evidently in the range of $A^t$. Hence every vector in the left side is also in the right side.

A: One way to look at this is to use the fundamental fact that if $M$ is a real $m \times n$ matrix then the range of $M^T$ is the orthogonal complement of the null space of $M$.  (Gilbert Strang emphasizes this "four subspace theorem".)
Suppose $y \in R(A^T)$.  Then by the four subspace theorem, $y \in N(A)^\perp$.  But, it's easy to show that $A$ and $A^T A$ have the same null space.  So, we see that $y \in N(A^T A)^\perp$.  Now we invoke the four subspace theorem once more to conclude that $y \in R(A^T A)$.

redpajama_set_name: RedPajamaStackExchange


No pregnant woman looks forward to gaining more weight than necessary during pregnancy, so let's talk about the numbers right away. A woman who is at a healthy weight at the onset of pregnancy is advised to gain between 25 to 35 pounds during nine months.
Looking at it another way, growing a healthy baby takes more than 85,000 calories, in addition to the calories you need for your own energy requirements. If you gain about one pound per week during the second and third trimesters, it's a good sign that you are getting enough calories.
Of course, if you were underweight at the start of your pregnancy, your health-care provider may recommend that you gain 28 to 40 pounds, and, likewise, if you were overweight before pregnancy, you may be advised to gain only 15 to 25 pounds. While you may think you know which category you fit into already, it's best if you use the body mass index (BMI) scale to get an accurate picture.
Whatever your BMI and weight gain numbers are, it's important not to restrict your weight gain by dieting or skipping meals. This could have serious effects on the development of the baby. But don't let yourself go either. It's okay to give in to the occasional craving for potato chips or candy bars, as long as you're making healthy choices about the nutrients you consume overall. But while you're at it, why not forgo that candy bar and snack on something sweet and also rich in vitamin C, like an orange or some berries? Don't worry – with a little extra effort, you'll be able to fit into your regular clothes after your baby is born! Until then, pay careful attention not only to your caloric intake but also to the amounts of folic acid, zinc, protein, iron, and calcium you're getting from all sources (food as well as supplements).
Weight gained during pregnancy is made up of the weight of the baby, breast tissue, amniotic fluid, placenta, uterus, blood, maternal fat tissue, and other fluids. Not gaining enough weight can increase the risk of a baby being born prematurely or with low birth weight, which can lead to health issues. Gaining too much weight can lead to a high birth weight baby, making the delivery more difficult and also putting the baby's health at risk. It can also increase your risk of developing gestational diabetes.
High BMI Research suggests that women with a BMI greater than 35 who remain weight neutral throughout pregnancy are at no greater risk of premature birth or delivery of a low birth weight baby than those with a healthy weight and the recommended weight gain, and may in fact reduce their risk of gestational diabetes.
Calculate and Interpret BMI In order to determine how much weight you should gain, you first need to know your prepregnancy body mass index (BMI). The BMI is a number based on your weight and height.
You may want to use your pregnancy diary to record these calculations. You can also use the BMI electronic calculator or the charts online at the National Center for Health Statistics (www.cdc.gov/nchs) or ask your health-care provider for help.
Healthy weight: If your BMI prior to pregnancy was between 18.5 and 24.9,you are within the healthy weight range before pregnancy.
Underweight: If your BMI was below 18.5, you are underweight.
Overweight: If it was above 24.9, you are overweight.
Obesity: If your BMI was above 30, you are considered to be obese.
Healthy weight: If your BMI is in the healthy range, gaining 25 to 35 lbs (11.5 to 16 kg) is recommended.
Underweight: If your BMI is in the underweight category, gaining 28 to 40 lbs (12.5 to 18 kg) is suggested.
Overweight: If your BMI is in the overweight category, gaining 15 to 25 lbs (7 to 11.5 kg) is recommended.
Obese: If your BMI is in the obese category, gaining 11 to 20 lbs (5 to 9 kg) is recommended.
For healthy-weight pregnancies, gaining lb (0.4 kg) each week in the second and third trimester is recommended.


text:
Dasyhelea salta är en tvåvingeart som beskrevs av Meillon och Downes 1986. Dasyhelea salta ingår i släktet Dasyhelea och familjen svidknott. Inga underarter finns listade i Catalogue of Life.

Källor

Svidknott
salta

redpajama_set_name: RedPajamaWikipedia


text:
Pyrotinib Induces Antitumor Activity in HER2-Positive Non-Small Cell Lung Cancer
In a single-arm phase 2 clinical trial, pyrotinib had promising antitumor activity as treatment of patients with HER2-positive non–small cell lung cancer.
Pyrotinib had promising antitumor activity as treatment of patients with HER2-positive non–small cell lung cancer (NSCLC) and demonstrated an acceptable safety profile, according to the results of a single-arm phase 2 clinical trial.
"Patients with HER2-mutant NSCLC account for 1% - 4% of patients with lung adenocarcinoma. However, until now, no treatment has been approved for this patient population," study authors led by Caicun Zhou, MD, PhD, wrote. "This multicenter, open-label, single-arm, phase 2 study explored the efficacy and safety of pyrotinib in patients with HER2-mutant advanced NSCLC. This study contained 60 patients, and to our knowledge, this is the largest study in HER2-mutant NSCLC."
The primary end point of the trial was objective response rate (ORR) per RECIST 1.1 by Independent Reviewing Committee (IRC) assessment, while secondary end points included ORR by investigator assessment, duration of response, progression-free survival (PFS), and time to progression.
The median follow-up was 11.7 months (range, 6.5-16.3), and 49 patients had discontinued treatment as of June 20, 2019. According to IRC assessment, the ORR was 30.0% (95% CI, 18.8%-43.2%), all of which were partial responses (PRs). Stable disease (SD) was observed in 55.0% of patients, 21.7 of whom showed SD for a minimum of 24 weeks. Six patients (10.0%) had progressive disease (PD), and 3 (5.0%) were not evaluable. Responses were ongoing in 33.3% of the study population. The median duration of response was 6.9 months (range, 4.9-11.1). Six patients (33.3%) had ongoing responses.
By investigator assessment, the ORR was 31.7% (95% CI, 20.3%-45.0%), and the median duration of response was 7.0 months (range, 5.5-11.0). Three patients had ongoing responses (15.8%). The best response observed in these patients was a PR, which occurred in 19 patients (31.7%). Thirty-five patients (58.3%) had SD, 13 (21.7%) had SD ongoing for at least 24 weeks, and 4 patients (6.7%) had PD. Two patients (3.3%) were not evaluable.
According to IRC assessment, 39 patients (65.0%) had PFS events, and the median PFS was 6.9 months (95% CI, 5.5-8.3). The 12-month PFS rate was 22.5% (95% CI, 10.8%-36.8%).
According to investigator assessment, 46 patients had died or experienced disease progression for a median PFS of 6.9 months (95% CI, 5.5-8.2), and the median time to progression was 6.9 months (95% CI, 5.5-8.3). Thirty patients (50.0%) died. The median OS was 14.4 months (95% CI, 12.3-21.3), and the 12-month OS rate was 69.1% (95% CI, 55.0%-79.6%).
Among the subgroups of patients with mutations, the IRC-assessed ORR was 27.3% (95% CI, 15.0%-42.8%) among those with a 12-bp exon 20 insertion, 16.7% (95% CI, 0.4%-64.1%) among patients with G776mutations, 60.0% (95% CI, 14.7%- 94.7%) in those with 9-bp exon 20 insertion, 25.0% (95% CI, 0.6%-80.6%) among those with an L755P mutation, and 100% (95% CI, 2.5%-100.0%) in the 1 patient with V777L mutations.
One patient who had a 12-bp exon 20 insertion was identified to have a single nucleotide polymorphism rs1050171 mutation in EGFR, and this patient had a PR per IRC, which was maintained for a treatment duration of 12.9 months.
The IRC-assessed ORR was 25.0% (95% CI, 5.5%-57.2%) among 12 patients with brain metastases versus 31.3% (95% CI, 18.7%046.3%) among those without brain metastases (n = 48), and the median PFS was 5.5 months (95% CI, 2.7-6.9) versus 6.9 months (95% CI, 5.5-9.6), respectively.
Among patients with at least 2 prior lines of chemotherapy, the IRC-assessed ORR was 44.0% (95% CI, 24.4%-65.1%), which was numerically greater than the ORR among patients with 1 prior line of chemotherapy (20.0%; 95% CI, 8.4%-36.9%).
The main reason for treatment discontinuation in the study was disease progression, however, there were 2 withdrawals of consent, and 1 patients discontinued treatment due to adverse events (AEs).
Treatment-related AEs (TRAEs) of any grade occurred in 59 patients (98.3%), but most TRAEs were grade 1/2. The most common TRAEs included diarrhea (91.7%), elevated blood creatinine (30.0%), vomiting (28.3%), elevated alanine aminotransferase (15.0%), and elevated aspartate aminotransferase (15.0%).
Grade 3 TRAEs were observed in 16 patients (26.7%), and a grade 4 TRAE was reported in 1 patient (1.7%), which was elevated gamma-glutamyltransferase. Diarrhea was the grade 3 or greater TRAE with the highest incidence and occurred in 20% of patients.
A total of 3 patients died as a result of AEs, but none were treatment-related. One patient (1.7%) discontinued treatment due to TRAEs, and 13 patients (21.7%) had dose interruptions due to TRAEs. Two patients (3.3%) had serious TRAEs, which included increased amylase in 1 patient and abnormal hepatic function in 1 patient.
In terms of AEs of special interest, diarrhea occurred in 56 patients (93.3%), and grade 3 diarrhea occurred in 12 patients (20.0%), while no grade 4 or 5 diarrhea was observed. Fifty patients (83.3%) had experienced diarrhea during the first treatment cycle, and 11.7% had grade 3 diarrhea during the first cycle. The median time to onset was 4.5 days, and the median cumulative duration of grade 3 diarrhea was 6.0 days. Five percent of patients required dose adjustments, but no dose discontinuations occurred as a result of diarrhea. The incidence of diarrhea gradually declined after the first cycle.
The incidence of grade 3 diarrhea was significantly higher among patients aged ≥ 65 years old, occurring in 6 patients (50.0%) compared with 6 (12.5%) among patients < 65 years.
Other AEs of special interest included abnormal hepatic function, occurring in 14 patients (23.3%). Thirteen patients (21.7%) experienced this AE in grades 1 or 2, and 1 patient (1.7%) experienced grade 4. Hand-foot syndrome, another AE of special interest, occurred in 3 patients (5.0%), only in grade 1, and rash occurred in 7 patients (11.7%), all of which were grade 1.
To be eligible for the trial, patients had to have a histologically or cytologically confirmed diagnosis of HER2-positive NSCLC with unresectable stage IIIB to IV disease. They had to have received at least 1 prior line of platinum-based chemotherapy and have had their disease relapse or progress during, after, or within 6 months of neoadjuvant or adjuvant therapy. Patients also had to have at least 1 measurable disease, an ECOG performance status of 0 or 1, a predicted life expectancy of ≥ 3 months, and adequate organ function. Patients could not be included in the trial if they had received any prior HER2-targeted therapy, radiotherapy, chemotherapy, surgery or other targeted treatments within 4 weeks before the first dose of the study drug.
Eighty-six patients were screened for the study between October 2016 and December 2018, and 60 patients were enrolled to the study. The median age was 57 years, and 58 patients (96.7%) had stage IV disease. All patients on the study had received prior conventional chemotherapy, and 25 (41.7%) had at least 2 prior lines of therapy, while no patients had received prior immunotherapy. Forty-four patients had 12-bp exon 20 insertion, 6 patients had G776 mutations, 5 had 9-bp exon 20 insertion, 4 had L755P mutation, and 1 patient had V777L mutation.
Two important limitations from this study were that there was no control arm, and the sample size of patients with missense point mutations in HER2 was small. Due to this, investigators were unable to adequately assess the clinical benefit of different HER2 subtypes.
"A global, multicenter, randomized phase 3 trial is being planned and will be started soon," wrote the study authors. "In conclusion, pyrotinib as a single agent showed promising antitumor activity and an acceptable safety profile in chemotherapy-treated patients with HER2-mutant NSCLC."
Zhou C, Li X, Wang Q, et al. Pyrotinib in HER2-Mutant Advanced Lung Adenocarcinoma After Platinum-Based Chemotherapy: A Multicenter, Open-Label, Single-Arm, Phase II Study [Published Online July 2, 2020]. Journal of Clinical Oncology. doi: 10.1200/JCO.20.00297

redpajama_set_name: RedPajamaCommonCrawl


text:
About Harris Williams
Aerospace, Defense & Government Services
Building Products & Materials
Energy, Power & Infrastructure
Specialty Distribution
Technology, Media & Telecom
Join Harris Williams
This cookie policy pertains to "harriswilliams.com", the "Site" or the "Website", located at www.harriswilliams.com, and owned and operated by Harris Williams LLC and its subsidiaries d/b/a/ Harris Williams. The Website includes all web pages accessible by the public. Any reference to "you" in this Policy shall mean any user of the Website, including without limitation employees of Harris Williams.
Upon entering the harriswilliams.com site, you are asked to identify your country, and based on your selection, will be directed to a site compliant with the privacy regulations and corresponding cookie policies for that jurisdiction.
Cookies are data files containing small amounts of information that are downloaded to your computer or mobile device when you visit a web site. Cookies are then sent back to the originating web site on each subsequent visit, or to another web site that recognizes that cookie. Cookies are useful, for among other reasons, because they allow a web site to recognize a user's device. You can find out more information about cookies at www.allaboutcookies.org.
On the Website, cookies do a number of different jobs, like letting you navigate between pages efficiently, remembering your preferences, and generally improve the user experience. Before accessing the website, you will be asked whether you agree that we can place the following types of cookies on your device. If you agree, the placing of cookies and any processing of your personal data resulting from the use of cookies is based on your consent according to Article 6 para. 1 lit. a) GDPR. Please be aware that you have the right to withdraw your consent at any time with future effect. If you want to do so, please notify us or our data protection officer under the contact details as stated above. In this case, however, you might notice that without placing the cookies the functionality of the site might be affected.
Harris Williams does not use your data for any automated decision making, including profiling, referred to in Article 22 para. 1 and 4 GDPR.
The cookies used on the website can be categorized in the following ways:
These cookies collect information about how you use the Site, for instance which pages you go to most often, and if you get error messages from web pages. These cookies don't collect information that identifies you. All information these cookies collect is anonymous and is only used to improve how a web site works. By using the Site, you agree that we can place these types of cookies on your device. The main cookies that are set on the Site under this category are:
• Session Cookies: Session cookies are used throughout your session to create a seamless experience. For example, if you submit a web form, the session cookies store a unique identifier for you that may be used to track your use of the Site. Cookies are also used to remember your software capabilities, such as whether you have Javascript enabled. Use of these cookies expires at end of each session.
▪ Google Analytics: Google Analytics sets a cookie in order to evaluate your use of the Site and compile reports for us on the Site's activity. Google stores the information collected by the cookie on its serversto help the website analyze how users interact with the Site. The information generated by the cookie about your use of this Site is usually transferred to a Google server in the US and stored there. However, if IP anonymization is activated on this website, Google will reduce your IP address within Member States of the European Union or in other states party to the Agreement on the European Economic Area beforehand. Only in exceptional cases will the full IP address be transmitted to a Google server in the US and shortened there. We would like to point out that on this website Google Analytics has been extended to include IP anonymization in order to ensure anonymous collection of IP addresses (so-called IP masking). The IP address transmitted by your browser in the context of Google Analytics is not merged with other Google data. Google may also transfer this information to third parties where required to do so by law, or where such third parties process the information on Google's behalf. For more information on Google Analytics use of cookies click here. Google will, use this information, on behalf of Harris Williams, to evaluate your use of the website, to compile reports on website activity and to provide the website operator with other services related to website and Internet use.
As stated above, the legal basis for the use of Google Analytics is your consent. The recipient of the collected data is Google. Personal data will be transferred to the USA under the EU-US Privacy Shield on the basis of the European Commission's adequacy decision. You can download the certificate here (https://www.privacyshield.gov/participant?id=a2zt000000001L5AAI). The data sent by us and linked to cookies, user-identifiers (e.g. User-IDs) or advertising-identifiers are automatically deleted after 26 months. Data whose retention period has been reached is automatically deleted once a month. You can revoke your consent at any time with effect for the future by blocking the storage of cookies by setting your browser software accordingly; however, we would like to point out that in this case you may not be able to use all functionalities of this website to their full extent. You can also prevent Google from collecting the data generated by the cookie and relating to your use of the Site (including your IP address) and from processing this data by Google by downloading and installing the Browser Add-on (https://tools.google.com/dlpage/gaoptout?hl=en). Opt-out cookies will prevent future collection of your data when you visit this website. If you click here, the opt-out cookie will be set: Disable Google Analytics.
▪ Trackalyzer: is a cookie used by a third party provider that helps Harris Williams monitor Site traffic and use. This process includes the collection of IP addresses and search-related data in order to evaluate visits to, and monitor use of, the Site.
These cookies allow the Site to remember choices you make (such as your user name, language or the region you are in) and provide enhanced features. For example, these cookies can be used to remember changes you have made to text size, font and other parts of web pages that you can customize. They may also be used to provide services you have asked for such as selecting a foreign language preference or to utilize map features on the Site. The information these cookies collect is usually anonymized. They don't gather any information about you that could be used for advertising or remembering where you've been on the internet. When you choose to make changes to options or settings on the Site, you agree that we can place functionality cookies on your device. The main cookie that is set on the Site under this category is:
• Language Preference: If you have your browser set to one of the languages used on our Site, our server will recognize that language and direct you to the appropriate page. If you opt to visit our full English site, a cookie is used to record your preference so that upon a return visit, you will be automatically directed to the English site even if you have your browser set to another language. This cookie stores no information other than language preference.
These cookies collect several pieces of information about your browsing habits. They are usually placed by advertising networks rather than web site operators. They remember that you have visited a web site and share this information with other organizations such as advertisers. They do this in order to provide you with targeted adverts more relevant to you and your interests. Quite often they will be linked to site functionality provided by the other organization. Although these cookies can track your visits around the web they don't usually know who you are. Without these cookies, online advertisements you encounter will be less relevant to you and your interests. When you choose to utilize certain features on the Site, you agree that Google may place targeting cookies on your device. The main cookies that are set on the Site under this category include:
• Google Maps: Maps displayed on the Site are provided by Google Maps. Location-enabled Google services, such as their maps, use cookies to collect and process information about your location. Google uses cookies and anonymous identifiers when you interact with its services in multiple ways, such as to improve and enhance its advertising and search programs. For more information, visit Google's Privacy Policy. As regards the legal basis for our use of Google Maps on the Site, please see the information on Google Analytics above.
• Kaltura: Videos embedded in the Website are played through Kaltura. You will be asked to provide your consent to Kaltura's collection of your personal data. Only if you chose to provide consent, will Kaltura collect your personal information. Kaltura does not collect personal data from end users except as necessary for the performance of its services. If you provide your consent, Kaltura may collect information about certain technical identifiers, including IP addresses. You can access Kaltura's privacy policy at https://corp.kaltura.com/privacy-policy.
• YouTube: Videos embedded in the Website may also be played through YouTube, which is a Google service. YouTube uses cookies for several purposes, including to obtain and to track video statistics, to prevent fraud, and to improve users' experience. Google uses cookies and anonymous identifiers when you interact with its services in multiple ways, such as to improve and enhance its advertising and search programs. For more information, visit Google's Privacy Policy.
• Google AdWords and Conversion Tracking Cookies: The Website may be advertised on Google's websites, on Google's partner sites and on Google's AdWords network (the "Google Display Network"). Accordingly many of our visitors may come to the Site after clicking on our ad on Google search results pages or on other sites. Google uses cookies (including the DoubleClick cookies) and anonymous identifiers to personalize and to target ads based on your online behavior, including your previous searches, the content of the sites you have visited previously and, if relevant, the preferences you have set when signed into your Google account. We will use Google's AdWords conversion tracking cookie, which will be set on your computer when you click a Harris Williams or PNC ad on Google.com, Google's partner sites or the sites on the Google Display Network, so that we can see how and when you arrived at our Site and how you then interacted with our Site. These cookies expire within 30 days and do not contain any information that can identify you personally. For more information, visit Google's Advertising Privacy Policy.
We may link to other web sites which are not within our control. We are not responsible for the content of any external web sites we provide links to or which link to the Website, including their use of cookies. You should exercise caution and look at the privacy statement applicable to the web site in question.
HOW TO REJECT COOKIES
If you wish to restrict or block the cookies which are set by the Site, or indeed any other website, you can do this through your browser settings. The Help function within your browser should tell you how.
Alternatively, you may wish to visit www.allaboutcookies.org which contains comprehensive information on how to do this on a wide variety of browsers. You will also find details on how to delete cookies from your computer, as well as more general information about cookies. You can also opt out of certain provider's targeting cookies by using an opt-out scheme which is provided by www.youronlinechoices.eu.
Please be aware that restricting cookies may have an impact on the functionality of the Site.
For more information on how we use information that we collect about you, please read our privacy policy.
We reserve the right to change our Cookie Policy at any time.
Date of last update or revision: May 22, 2018
© Harris Williams & Co.
Join HW&Co.
Analysts & Associates
Corporate Staff
Europe Careers


For this Father's Day, there is something very special to do with Dad. On June 19 from 11 am – 2 pm is The Lerner's Father's Day Jazz Brunch. Treat dad to a relaxing brunch and entertainment by the Terry Lower Trio in the Crystal Ballroom overlooking the scenic RiverWalk. Tickets are $18 (Adults) and $10 (Children up to 12) to cover the cost of brunch. Advance reservations required. Optional pre- and post-brunch Theatre tours will be available as part of the event.


text:
Vallés és un municipi de la Costera, al País Valencià. Limita amb Canals, Cerdà, la Granja de la Costera, Xàtiva, Llanera de Ranes, Novetlè, Rotglà i Corberà i Torrella.

Geografia
El relleu no presenta pràcticament accidents geogràfics d'interés. Per la mitat meridional i oriental del terme passa el riu Cànyoles, els arrossegaments del qual han dipositat potents sediments quaternaris molt fèrtils per al cultiu.

El clima és de tipus mediterrani.

Història
Va ser una alqueria musulmana on Jaume I (1208-1276) va plantar el seu campament durant els anys 1243 i 1244 i des d'on organitzava incursions per la contornada. Va ser incorporada al regne cristià en aquelles dates; no obstant això, no existix cap document en què aparega citat com a Vallés fins al morabatí de 1421. Va quedar desert després de l'expulsió dels moriscs i hagué de ser repoblat, amb carta pobla de 16 de juliol de 1611, per Bernat Sanç, amb cristians procedents de Xàtiva i s'aprofità l'avinentesa per deslligar la seua parròquia de la de Cerdà, massa allunyada. En temps d'Escolano (1560-1619) el senyoriu pertanyia a Maties Sanç. En el  es va convertir en municipi independent i es va llevar de damunt el senyoriu dels Sanç, els quals, a pesar d'això, no es varen desvincular del poble. L'absència d'indústria i una agricultura minifundista ha marcat el gradual retrocés de la població, que ha anat emigrant cap a la veïna Xàtiva.

Demografia

Economia
L'economia és agrícola amb els cultius propis de la comarca, on "comença l'horta i acaba el secà" (Raimon (Xàtiva, 1940), Jo vinc d'un silenci): olivera, garrofera, cítrics i dacsa.

Monuments
L'església de Sant Joan, del  i el Palau, casalot d'origen medieval perfectament restaurat, són els únics edificis dignes d'esment.

Festes i celebracions
Celebra les seues festes patronals a partir del 24 de juny, en honor de Sant Joan Baptista.

Referències

Enllaços externs

 País Valencià, poble a poble, comarca a comarca, de Paco González Ramírez, d'on se n'ha tret informació amb el seu consentiment.
 Institut Valencià d'Estadística .
 Portal de la Direcció General d'Administració Local de la Generalitat .

Municipis de la Costera


The central coast of California is one of the most dramatically beautiful places I've ever been. The majestic, often purple-tinged Santa Cruz mountains drop off in cliffsides and ravines to the mighty Pacific. I took a moment of respite and reverie from painting this Spring, so that I could focus again on photography and capturing some of the pastel-painted vistas that take the sky over Westcliff nearly every night. A small series of twilight coastal silhouettes came into focus over the course of six weeks. I presented them in amber tones that brought the natural reds and oranges to the forefront of the color-composition, and then hemmed them in with heavy vignette. I spent some time memorizing my favorite of the series, I thought it'd make a killer fill-in to celebrate summer solstice.
My new friend Ramona runs a great shop over at 1047 Water St. in Santa Cruz. Every time I go over there, the waiting-chairs are all occupied and there are folks killing time in the sunshine by the door, waiting for a cut. The interior of the shop has a unique style, with checkered-linoleum floors and taxidermized deer-heads adorning the walls. The whole place has a classic fifties vibe, from the pearl-handle straight-razors to the hotrods parked out back. The exterior wall deserved a Cadillac-smooth flow coupled with an endless-summer air-brush style of the kind you see on custom rides. This piece was painted freehand in six hours with low-pressure matte-finish aerosols, except for the gloss dark-red Rusto that came in handy when I had some gasket-issues in the Cali heat– no stencils, no tape, no tricks, no projector, no worries!


text:
Austrian Albanian Society Condemns Demolition of Albania's National Theater
The Austrian Albanian Society joins the ranks of NGOs and international actors that have condemned the Albanian government's demolition of the National Theater.
In a letter addressed to the Albanian Minister of Culture Elva Margariti, President of Austrian Albanian Society and former Austrian ambassador to Albania Arno Riedel communicated the Society's regret at the government's inability to find a consensual solution and preserve the building as national cultural heritage. The letter also condemned the use of force by police during the demolition and reminded the Minister of Austria's extensive aid for the maintenance and renovation of cultural and historical sites in Albania.
It lamented the fact that it is too late for the National Theater building, which is now lost, and expressed frustration at the government's refusal or inability to find solutions by way of dialogue and compromise.
Fjalë kyçe: Albania, Austria, demolition of National Theater, National Theater


text:
KLUB MOOZAK
moozak.org/releases/mzk008
BANDWIDTH + GERRI JÄGER - Δf
Cat. No. MZK#008
Tape, Hand-Crafted Cardboard Sleeves / Digital Download
PRICE: 15€ incl. Download code
Buy online via Bandcamp
line-up: Ayankoko: ppooll on Max/MSP
Mathieu Garrouste: electronics, tapes
Gerri JÄger: drums, percussion, electronics
Recorded at STEIM Amsterdam on the 23rd & 24th of october 2012.
Mixed and mastered by Sandor Caron at Movement 20p studio.
Artwork by Clemens Hausch
A very contemporary ambient noise music akin to noise / shouting, where irritating bursts meet devastated post-industrial landscapes, in which a human hand can sometimes be felt… Laptop and turntable improvisations inspired by digital noise, rather than analog synths, it's not electronic music, but sounds based on an interruption.
A bandwith of a hail of information, encoded and compressed, made audible and manipulated, but very similar to the original signal, information encoded by protocols we are unable to understand, without an appropriate interface, so it's better to play with them and feel them.
Ayankoko: Over 45 releases on the web in Spain, UK , Germany, Mexico, Russia, France, and also Ayanrecords netlabel owner, developed his art from 2004 through the internet and the use of Creative Commons and open sources. His music ranges from noise to ambient frequencies, abstract drones, minimal beats, DIY electronica, to instrumental improvisation and/or production.
Mathieu Garrouste: After learning the saxophone at the Perpignan Conservatory, his approach now focuses on experimental and improvised music. In 2006 he settled in Paris where he is still working. Always looking for new sound materials, his self-taught process takes him to twist cassette players, turntables, pick-up mic … from their traditional use to create sound textures based on crackings, feedback, blows, no-input …
Gerri Jäger (1979, Innsbruck): picked up the drums when he was 9 years old. After some brass-band and grunge-rock teenage years he studied jazz at the Conservatories of Innsbruck and later in Amsterdam, where he graduated in 2006. Through years of playing in numerous different bands from free-jazz to alt-rock, playing modern dance-improvs, experimental electronic club music and improvisation, Gerri is looking for ways to expand boundaries in music and its genres.
SAMPLES FROM THE RELEASE
A1. FIRE THE BOSS - 5:20
A2. WTF RETRIGGER - 8:36
B1. FAQ - 3:00
B2. SLOW UP - 7:20
B3. FIRE AND BASS - 3:57
TOTAL PLAYING TIME: 28:12
http://bandwidthimprov.wordpress.com/
http://gerrijaeger.com/projects/bandwidth-feat-gerri-jager/
AYANKOKO
Mathieu Garrouste
Gerri JÄger
©2008-2017 MOOZAK RECORDS


text:
Home/Business/This private bank gave a gift to its customers, now they will get more interest on FD
This private bank gave a gift to its customers, now they will get more interest on FD
Federal Bank has increased the interest rates on fixed deposits ie FD of less than two crore rupees. According to the official website of the bank, the new rates have come into effect from today.
Federal Bank has increased the interest rates on fixed deposits ie FD of less than two crore rupees.
Image Credit source: Representational Image
Private sector bank Federal Bank has increased the interest rates on fixed deposits ie FD of less than two crore rupees. According to the official website of the bank, the new rates have come into effect from today. After this change, the bank is now paying interest on FDs in the range of 3.00% to 6.30% for general public and 3.50% to 6.95% for senior citizens. This is an FD with a tenure of 7 days to 2223 days or more.
These are the new interest rates
The bank is now paying interest at the rate of 3.00 per cent on FDs maturing in 7 days to 29 days. At the same time, there is an interest rate of 3.25 percent on FDs with a duration of 30 to 4 days. At the same time, there will be 4.00 percent interest rate on fixed deposits with tenure ranging from 46 days to 60 days. Whereas, interest will be available at the rate of 4.25 percent on FDs ranging from 61 days to 90 days.
Federal Bank now has 4.50 per cent interest rate on FDs with tenure between 91 days and 119 days. Whereas, interest will be available at the rate of 4.75 percent on fixed deposits of 120 days to 180 days. At the same time, the bank will have an interest rate of 5.75 percent on FDs with a period of 181 days to 270 days. On the other hand, the bank is paying 6.00 per cent interest on FDs maturing in 271 days to less than one year.
On the other hand, the bank is paying 6.60 per cent interest on FDs of one year to less than 18 months. While there is an interest rate of 7.25 percent on fixed deposits with maturity of 18 months to 2 years.
Apart from this, let us tell you that Canara Bank has also announced an increase in interest rates on fixed deposits of less than Rs 2 crore. According to the official website of the bank, the new rates will be applicable from tomorrow i.e. December 19, 2022. After the change, Canara Bank has increased the rates of bank FDs by up to 55 basis points in different tenors. Interest rates will be available from 3.25 percent to 6.50 percent for the general public and from 3.25 percent to 7 percent for senior citizens. These rates have been issued for tenure from 7 days to 10 years.
Foreign investors have withdrawn Rs 7500 crore so far in October, know how the market will move?
India Was Unprepared for a Second COVID Wave and the Blame Lies at the Top
Stock Market Updates: Market closed with gains for the second consecutive day, Sensex rose 874 points
Gold Price Today: The price of gold is struggling at a low level for a week, know the new rates
How is the Impact of GST Building a Stronger Indian Economy?


Today is a highly sensitive day and it seems that everywhere you look is a mirror. There is a great opportunity today to use that super sensitivity if only you will acknowledge it and share it with others. Look within and take time to reflect but don't get caught up in the past. Let go of old emotional wounds because what you have learned through your experience will one day help others. Acknowledge your path as one that is actually leading you to safety, and the letting go of the old will allow you to create a much wiser path ahead. Take notice of what you do see in others today.. do you see good or otherwise? Whatever you see, recognise you have it in you, so either embrace or let go, it's your choice.
Remember, what you see in others today, you have in you.
The colour green is very important today. This is an amazing opportunity for self healing so immerse yourself in nature and give yourself time to reflect. To bring you out of the less than happy states that may nudge at you, bring in a bit of orange and and then a dash of gold so you can see the wisdom of it all.
As I feel, I know and I embrace that which is deep within me, I acknowledge my inner wisdom and I reflect that wisdom out into the world.


text:
DCS: MiG-15bis
Release: 03/11/2016
all screenshots
Buy Detail
DCS: C-101 Aviojet
DCS: C-101 Aviojet will include both the C-101EB and C-101CC models. The C-101EB model is the primary jet trainer and aerobatic display aircraft of the Spanish Air Force, whilst the C-101CC model, with its 7 hard-points and uprated engine, is a versatile light attack aircraft that has seen combat with the Honduras Air Force against drug traffickers. It is also in service with the Jordanian and Chilean air forces.
The two models of the C-101 have many similarities that include cockpit layout, core-systems operation, and aerodynamic design. This commonality brings something for everyone to include lead-in jet training, advanced aerobatics, and light attack.
DCS: Bf 109 K-4 Kurfürst
Like previous DCS World titles, DCS: Bf 109 K-4 Kurfürst features a painstakingly reproduced model of the aircraft, including the external model, fully interactive cockpit, mechanical systems, and a Professional Flight Model (PFM). Along the lines of our DCS: P-51D Mustang and DCS: Fw 190 D-9 Dora titles, DCS: Bf 109K-4 Kurfürst places you behind the controls of a powerful, propeller-driven, piston engine combat aircraft. Designed long before "fly-by-wire" technology was available to assist the pilot in flight control or smart bombs and beyond visual range missiles were developed to engage targets with precision from afar, the Kurfürst is a personal and exhilarating challenge to master. Powerful and deadly, the last production model of the only single-engined German fighter to see service throughout World War II, the Kurfürst provides an exhilarating combat experience to its drivers, and a worthy challenge to all fans of DCS: P-51D Mustang.
The MiG-21bis is a delta wing, supersonic, fighter-interceptor jet aircraft. Much like the AK-47 became the everyman's rifle, the MiG-21 has been operated by more than 40 countries worldwide, and has enjoyed the longest production run of any modern jet fighter to date. The MiG-21, in all of its variants, has fought in wars stretching all the way from the Vietnam War in the 1960's to the modern day Syrian Civil War. Owing to its unique blend of versatility, ruggedness and maintainability, the MiG-21 remains in active service to this very day.
Leatherneck Simulations' recreation of the MiG-21 is, by far, the most accurate and comprehensive simulation of this supersonic jet fighter to date. The fully simulated systems, interactive cockpit, advanced flight modeling and incredible graphical fidelity come together to create a package that will provide you with the most authentic simulation possible. So strap in, and get ready to experience the rebirth of a legend.
DCS: Fw 190 D-9 Dora
The Focke-Wulf Fw 190 is widely regarded as Germany's best fighter aircraft of World War II. Its appearance in the skies over France in August 1941 was a rude shock to the Allies, as it was clearly superior to any other plane. For nearly a year, the Fw 190 was the unmatched champion of the air war in Europe. The Fw 190 had speed and high altitude performance as its two great assets.
The development of advanced allied fighters resulted in the Fw 190 D–9 variant which first saw service in September 1944. This variant had a larger nose that housed a more powerful Junkers Jumo engine that produced 2,100 hp with the MW-50. The D-9 was designed for high altitude aerial combat and is a worthy adversary to the P-51D Mustang.
DCS: F-86F Sabre
The North American F-86F Sabre was the most capable western fighter of the early- to mid-1950s. This swept wing, single engine jet was the most important western aircraft of the Korean War and often tangled with Russian-made MiG-15s over the infamous "MiG Alley". It was a hard struggle not only for the Korean sky, but also between two excellent aircraft builders of the East and West. In addition to its primary role as an air-to-air fighter, the Sabre could also carry bombs and air-to-ground rockets to attack ground targets.
The Belsimtek simulation of the Sabre is by far the most authentic recreation of this famous warbird to date. Feel what is to fly the Sabre with a professional level flight model, an interactive cockpit, fully functional weapons, a detailed damage model and a richly detailed aircraft. Experience the strengths and weaknesses of the Sabre in combat and find out why seasoned fighter pilots often look back at the Sabre as the most enjoyable aircraft they ever flew.
As part of DCS World, fly the F-86F Sabre in a fully realized combat environment with working weapon systems and capable air and ground threats.
Su-33 for DCS World
The Su-33 has been the backbone of Russian aircraft carrier aviation since the late 1990s and is an all-weather fighter capable of engaging both air and surface targets. Based on the powerful Su-27 "Flanker", the Su-33 is a navalized version suited for operations aboard the Admiral Kuznetsov aircraft carrier. Changes to the Su-33 include strengthened landing gear, folding wings, more powerful engines, and the very visible canards.
The Su-33 is equipped with a powerful pulse doppler radar and an Infrared Search and Track (IRST) for engaging aerial targets with a wide range of radar- and infrared-guided missiles and its internal cannon. For air-to-surface attack, the Su-33 can be armed with many types of unguided bombs, rockets, and cluster munitions.
The Su-27, NATO codename Flanker, is one of the pillars of modern-day Russian combat aviation. Built to counter the American F-15 Eagle, the Flanker is a twin-engine, supersonic, highly manoeuvrable air superiority fighter. The Flanker is equally capable of engaging targets well beyond visual range as it is in a dogfight given its amazing slow speed and high angle attack manoeuvrability. Using its radar and stealthy infrared search and track system, the Flanker can employ a wide array of radar and infrared guided missiles. The Flanker also includes a helmet-mounted sight that allows you to simply look at a target to lock it up! In addition to its powerful air-to-air capabilities, the Flanker can also be armed with bombs and unguided rockets to fulfil a secondary ground attack role.
Su-27 for DCS World focuses on ease of use without complicated cockpit interaction, significantly reducing the learning curve. As such, Su-27 for DCS World features keyboard and joystick cockpit commands with a focus on the most mission critical of cockpit systems.
F-15C for DCS World
The F-15 has often been labeled as the greatest U.S. fighter aircraft from the 1970s until the early 21st century. The F-15C is a pure fighter with outstanding performance and has scored over 100 air-to-air victories without suffering any confirmed losses. The DCS Flaming Cliffs F-15C includes a professional level flight model, a detailed 6 degrees of freedom capable cockpit, highly accurate external model and sounds.
As a DCS Flaming Cliffs title, F-15C focuses on ease of use without complicated cockpit interaction, significantly reducing the learning curve. As such, F-15C features keyboard and joystick cockpit commands with a focus on the most mission critical of cockpit systems.
The Su-25 'Grach' (Rook), NATO callsigned 'Frogfoot', is a dedicated strike attack aircraft designed for the close air support and anti-tank roles. The Su-25 has seen combat in several conflicts during its more than 30 years in service. The Su-25 combines excellent pilot protection and high speed compared to most dedicated attack aircraft. It can be armed with a variety of weapon systems including guided missiles, bombs, rockets, and its internal 30mm cannon.
← ctrl Prev. 1 2 3 4 5 Next ctrl→ All


text:
Q: Creating an array of ArrayList which store object of Generic type I have to create an array of ArrayList which is storing an object of the generic type.
ArrayList<Entry>[] bucket;

when I initialize this to
bucket=(ArrayList<Entry>[])new Object[m];

I get java.lang.ClassCastException at runtime.
Entry class uses generics. Below is the code:
class Entry<K,V>{
    K key;
    V value;

    public Entry(K key,V value){
        this.key=key;
        this.value=value;
    }

After going through several posts on why Array of Objects cannot be cast to an ArrayList of a generic type, I have understood my problem. But I am not able to get my head around this to solve my particular case.
Some of the solutions involved:
Changing it FROM "an array of ArrayList" TO "an ArrayList of ArrayList",
but I can not do that in my case.
Full code:
import java.util.ArrayList;
class MyHashMap<K,V>  {

    int m;
    int loadFactor;
    int n;

    ArrayList<Entry>[] bucket;

    public MyHashMap(){
        this(10,2);
    }
    public MyHashMap(int m){
        this(m,2);
    }
    public MyHashMap(int m,int loadFactor){
        this.m=m;
        this.loadFactor=loadFactor;
        n=0;

        bucket=(ArrayList<Entry>[])new Object[m];

    }

    class Entry{
        K key;
        V value;

        public Entry(K key,V value){
            this.key=key;
            this.value=value;
        }

        public int hashCode(){
            return 0;
        }
    }

    public void put(K key, V value){
        Entry entry=new Entry(key,value);
        int hash=entry.hashCode();
        int index=hash%m;
        bucket[index].add(entry);
    }

    public static void main(String[] args) {
        MyHashMap hashMap=new MyHashMap();

        hashMap.put("faisal",2);
    }
}

A: You can't create arrays of generic type. Use this instead:
ArrayList<Entry>[] bucket = new ArrayList[m];

It shows unchecked warning though, which you can suppress using @SuppressWarnings("unchecked") like so:
@SuppressWarnings("unchecked")
ArrayList<Entry>[] bucket = new ArrayList[m];

A: Object can be cast to ArrayList only if the actual object it holds is an arrayList. i.e let's look at the below code,
Object obj = new ArrayList<String>();   // object variable holding array list type.
ArrayList<String> arr = (ArrayList<String>) obj;


text:
LCS Group of Companies, also known as LCS Holdings Inc., is a Philippine conglomerate. The LCS Group is founded by Filipino politician Luis Crisologo Singson who serves as its chairman.

Ventures

Aviation
The LCS Group operates a charter airline known as Platinum Skies, which was incorporated in 2013.

Energy and mining
Satrap Mining Corporation is a subsidiary under the LCS Group founded in 2014. It operates and manages renewable energy power plants mostly in Ilocos Sur. It also has a partnership with Philippine National Oil Company (PNOC) regarding the exploration of use of renewable energy for off-grid areas.

Satrap Mining Corporation is a subsidiary under the LCS Group engaged in mining. It was established in 2014.

Finance
Through HalloHallo Skylark Lending, Corp., the LCS Group runs a loaning service known as Casha.

Telecommunications
The LCS Group through Gracia Telecoms provides telecommunications services in Mindanao. In 2018, the LCS Group expressed interest to participate in a government-sanctioned bidding which would enable it to become the third major telecommunications provider in the Philippines alongside Globe Telecom and Smart–PLDT. The conglomerate formed a consortium called Sears Telecom with TierOne Communications International. TierOne is backed by Chinese firm Fujian Torch Electron Technology, Singaporean company Miller Pte. Ltd., and Cambodia-based Southeast Asia Telecom. The consortium touted itself as the only bidder planning to use satellite internet access by deploying portable Wi-Fi hotspots connected via satellite. LCS was not among the three entrants to the bidding, which was eventually won by Mislatel, which renamed themselves as Dito Telecommunity.

Events
The LCS Group spent $15 million to host the 2016 Miss Universe pageant in the Philippines in January 2017, around $12 million alone spent to secure the hosting rights from the Miss Universe Organization.

References

Holding companies of the Philippines
Conglomerate companies of the Philippines


Directed by Scott Waugh (Act of Valor and Need for Speed), and starring Josh Hartnett (Black Hawk Down, Pearl Harbor, 40 Days and 40 Nights) and Academy Award winner Mira Sorvino (Mighty Aphrodite, Romy and Michelle's High School Reunion) and Sarah Dumont (Scouts Guide to the Zombie Apocalypse), 6 Below: Miracle on the Mountain tells the incredible true story of Eric LeMarque.
When LeMarque (Josh Hartnett) gets lost in a massive winter storm in the back country of the High Sierras, he is pushed to the limits of human endurance and forced to battle his own personal demons as he fights for survival.
This exclusive one-night event also features special interviews with Eric LeMarque, members of the cast and director.
Scott Waugh is an American film director, producer, and former stuntman, best known for directing the 2012 war film Act of Valor with Mike McCoy. In 2014, he also directed Need for Speed for Dreamworks.
Josh Hartnett has been a leading man for almost 20 years starting in blockbuster films The Virgin Suicides, Pearl Harbor, Black Hawk Down, Lucky Number Slevin, The Faculty, Wicker Park and most recently Showtime's Penny Dreadful.
Josh Hartnett as Eric LeMarque in the action/inspirational film "6 BELOW" a Momentum Pictures release. Photo courtesy of Momentum Pictures.
Mira Sorvino as Susan Lemarqe in the action/inspirational film "6 BELOW" a Momentum Pictures release. Photo courtesy of Momentum Pictures.
Sarah Dumont as Sarah in the action/inspirational film "6 BELOW" a Momentum Pictures release. Photo courtesy of Momentum Pictures.
(L-R) Josh Hartnett as Eric LeMarque and Marty McSorely as Boston Bruins Coach in the action/inspirational film "6 BELOW" a Momentum Pictures release. Photo courtesy of Momentum Pictures.


The Jordan Contemporary Tuxedo Back Sofa with Bolster Pillows by Klaussner at Northeast Factory Direct in the Cleveland, Eastlake, Westlake, Mentor, Medina, Macedonia, Ohio area. Product availability may vary. Contact us for the most current availability on this product.
The Jordan collection is a great option if you are looking for Contemporary furniture in the Cleveland, Eastlake, Westlake, Mentor, Medina, Macedonia, Ohio area.
Browse other items in the Jordan collection from Northeast Factory Direct in the Cleveland, Eastlake, Westlake, Mentor, Medina, Macedonia, Ohio area.


As a healthcare provider, you know that few things are as frustrating, challenging and, at times, rewarding as watching patients regain abilities lost due to disease or injury. That's what drives Gundersen Health System's Inpatient Rehabilitation—and why we are pleased to announce the opening of our new Inpatient Rehabilitation unit.
The 20-bed facility is designed with accessibility in mind to help your patients maximize their functional independence. The space features a Liko lift system in all patient rooms, including every room's private, attached bathroom, and in hallways to help prioritize safe and independent movement. Four rooms include increased comforts for bariatric patients.
And a tub room, which allows patients to simulate getting in and out of a tub.
In addition to the improved space, Inpatient Rehabilitation at Gundersen also has added the role of admission liaison to its comprehensive team. In the new role, Angela Brown, RN, UDSMR® certified admission liaison, helps streamline the admissions process and make sure patients are matched with the most fitting rehabilitation setting for them, whether it is a nursing home, Inpatient Rehabilitation or another option.
Angela uses comprehensive screening to review a patient's medical history and learn details about their home and support system. Combined, these elements help Angela understand every patient's unique situation—and recommend the best path for recovery so they are prepared to safely navigate life after rehabilitation. The process also includes patient education on the differences between rehabilitation options, such as physical demands, insurance coverage and other program requirements.
If you have a patient who may benefit from Inpatient Rehabilitation, contact Angela via MedLink at (800) 336-5465 or 775-5465 in La Crosse.


text:
Q: macOS Sierra - Change default Volume Up/Down keys to Option+Shift+Volume Up/Down? Background
The current behavior for the Volume Up/Down keys is to adjust the system volume in whole increments. But! The key combo Option(Alt)+Shift+Volume Up/Down will change the volume in 1/4 increments. Perfect! Except a pain.
The Goal
I'd like to remap / intercept / override the behaviour of the Volume Up/Down keys to either:

*

*Automatically adjust the volume in 1/4 increments
A setting, file or script that I could write or modify to set this as default behaviour would be ideal!

*Mimic Option(Alt)+Shift+Volume Up/Down being pressed
I press one key (Volume Up/Down), but the system sees that I've pressed the three-key combo!
Caveats
With the aforementioned end-goal, Imma nitpick a little.

*

*No third-party software (TPS)
If a TPS can remap the keys on my system, or intercept key presses and perform tasks, then a well-written AppleScript or BashScript can do the same.
There are many reasons for not wanting TPS, but mostly I like to roll my own (when I can), and don't want an entire app for one single change.

*Cannot have Use all F1, F2, etc. keys as standard function keys. enabled
This one is important. I do not want to override the F11 and F12 keys - I want to override the Volume Up and Volume Down keys.
I use all of the other special feature keys often. Having to press the fn key to control music playback, or change my screen brightness, is not an acceptable compromise to have the desired volume behavior.
So Far
So far, all I've been able to find are links telling me how to fine-tune the volume (by pressing the 3-key combo). I'd link to them - to prove my due-diligence before asking a question - but they're all the same as the one I linked above. Nothing alluding to setting it as the default behavior.
As for remapping the keys, I keep coming up with only a couple methods:

*

*Third-party software (like Karabiner)
This won't do. Read above.

*Creating custom shortcuts in System Preferences
I'm fine using this method, but what would I enter for the Menu Title to refer to the fine-adjustment volume control? Also, when I've tried to do this (just tried it now), when I place the cursor in the Keyboard Shortcut box and press the Volume Up/Down buttons, it just changes the volume, instead of populating the input with the key pressed.
Final Thoughts
A custom script (Bash, AppleScript, other), modifying a system file hiding somewhere, or whatever you've got - I'll take it!
Thanks in advance!
EDIT #1 - Some Progress
Semi-Working
The default volume control has 17 levels (with the 17th being zero). The volume is set as an integer value, out of 100. This means the default volume change is around 6% per level.
I was able to use Automator to create a couple services, that change the volume in increments of 1%. The services are a single Run AppleScript within the workflow.
--Volume Up AppleScript

set vol to output volume of (get volume settings)
if vol > 100 then # 100 is max
    set volume output volume 100
else
    set volume output volume (vol + 1)
end if

do shell script "afplay /System/Library/Sounds/Pop.aiff"

And then you can bind a hotkey to it in System Preferences (refer to original question). There are two issues I'm having though:

*

*Still cannot bind special-function keys to service
When I go try to use the Volume Up/Down keys to set the shortcut, it just changes the volume, without registering the key pressed.
I went into ~/Library/Preferences/pbs.plist, and tried to change the key manually, from

to

Note: Key Code 71 and 72 are for Volume Down and Volume Up special function keys, respectively.
The screenshots above were taken from PlistBuddy in terminal. The weird question-mark-looking symbol is the exact same when viewing the value in XCode.
I cannot find the link right now, but it seems that macOS Sierra is not working with the special-function key codes. Otherwise, a simple AppleScript could have forced the single key press into the 3-key combo:
tell application "System Events" to key code 72 using {shift down, option down}
Spoiler alert... it doesn't work. And interestingly enough, when I run the script, an equal-sign (=) is inserted wherever the live cursor is.

Not all key codes do this. For instance, 81 will also insert an equal-sign, but 82 enters a zero (0) - both of which correspond to the key codes in the link above. So maybe macOS Sierra has completely gone away from assigning codes to the special function keys? Or they've changed?

*Cannot get the Apple Volume Beze to appear when changing the volume
You can disable the bezel, but I cannot find anywhere a way to programatically call it. Ideally, it would just be an additional line, after do shell script ... in the Automator AppleScript above.
I'm honestly not too concerned with the bezel, but would like some way to know the current volume setting.
Menu Bar Icon
A perfectly acceptable solution would be to display the current volume setting (numerical) in the menu bar. But I could not find any pre-existing numerical volume icon.
I tried looking into modifying the current menu bar volume icon script to display the numerical value instead of the speaker icon, but couldn't get anywhere with that. (The path that I found for it is at /System/Library/CoreServices/Menu Extras/Volume.menu/Contents, if anyone thinks they've got a solution). Otherwise, I might try my hand at creating my own menu bar icon.
Screen Overlay
I also tried looking into creating a pop-up, semi-transparent overlay what would display the current volume setting and then fade out (on top of all other screen content). The functionality would be the same as the stock volume bezel, but maybe just a number in the corner of the screen.
You can create notifications with AppleScripts, but they are way too big for a small 1-, 2- or 3-digit number, are not transparent, and linger too long. The behavior of an overlay would have to be overwriting the current overlay with a new one, displaying the new value. Using notifications, I would just get a stack of lingering notifications.
Other Attempts
I also looked into modifying the audio drivers, hoping that there would be a default setting that I could change. The most promising files I could find are at:
/System/Library/Frameworks/AudioToolbox.framework

and
/System/Library/Frameworks/AudioUnit.framework

but I couldn't find anything in any of the files within, that might be modified to change the number of volume steps from 17 to 100.
**
Thanks for making it this far! It's long, but I want to make sure that I've presented everything I know, and everything I've tried.


text:
"""
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Ambari Agent

"""
import os

from resource_management.core import sudo
from resource_management.core.logger import Logger
from resource_management.libraries.script.script import Script
from resource_management.libraries.resources.hdfs_resource import HdfsResource
from resource_management.libraries.functions import component_version
from resource_management.libraries.functions import conf_select
from resource_management.libraries.functions import stack_select
from resource_management.libraries.functions import format
from resource_management.libraries.functions import StackFeature
from resource_management.libraries.functions.stack_features import check_stack_feature
from resource_management.libraries.functions.stack_features import get_stack_feature_version
from resource_management.libraries.functions import get_kinit_path
from resource_management.libraries.functions.get_not_managed_resources import get_not_managed_resources
from resource_management.libraries.functions.version import format_stack_version, get_major_version
from resource_management.libraries.functions.default import default
from resource_management.libraries import functions
from resource_management.libraries.functions import is_empty
from resource_management.libraries.functions.get_architecture import get_architecture
from resource_management.libraries.functions.setup_ranger_plugin_xml import get_audit_configs, generate_ranger_service_config

import status_params

# a map of the Ambari role to the component name
# for use with <stack-root>/current/<component>
MAPR_SERVER_ROLE_DIRECTORY_MAP = {
  'HISTORYSERVER' : 'hadoop-mapreduce-historyserver',
  'MAPREDUCE2_CLIENT' : 'hadoop-mapreduce-client',
}

YARN_SERVER_ROLE_DIRECTORY_MAP = {
  'APP_TIMELINE_SERVER' : 'hadoop-yarn-timelineserver',
  'NODEMANAGER' : 'hadoop-yarn-nodemanager',
  'RESOURCEMANAGER' : 'hadoop-yarn-resourcemanager',
  'YARN_CLIENT' : 'hadoop-yarn-client'
}

# server configurations
config = Script.get_config()
tmp_dir = Script.get_tmp_dir()

architecture = get_architecture()

stack_name = status_params.stack_name
stack_root = Script.get_stack_root()
tarball_map = default("/configurations/cluster-env/tarball_map", None)

config_path = stack_select.get_hadoop_dir("conf")
config_dir = os.path.realpath(config_path)

# get the correct version to use for checking stack features
version_for_stack_feature_checks = get_stack_feature_version(config)

# This is expected to be of the form #.#.#.#
stack_version_unformatted = config['clusterLevelParams']['stack_version']
stack_version_formatted_major = format_stack_version(stack_version_unformatted)
stack_version_formatted = functions.get_stack_version('hadoop-yarn-resourcemanager')
major_stack_version = get_major_version(stack_version_formatted_major)

stack_supports_ru = check_stack_feature(StackFeature.ROLLING_UPGRADE, version_for_stack_feature_checks)
stack_supports_timeline_state_store = check_stack_feature(StackFeature.TIMELINE_STATE_STORE, version_for_stack_feature_checks)

# New Cluster Stack Version that is defined during the RESTART of a Stack Upgrade.
# It cannot be used during the initial Cluser Install because the version is not yet known.
version = default("/commandParams/version", None)

def get_spark_version(service_name, component_name, yarn_version):
  """
  Attempts to calculate the correct version placeholder value for spark or spark2 based on
  what is installed in the cluster. If Spark is not installed, then this value will need to be
  that of YARN so it can still find the correct spark class.

  On cluster installs, we have not yet calcualted any versions and all known values could be None.
  This doesn't affect daemons, but it does affect client-only hosts where they will never receive
  a start command after install. Therefore, this function will attempt to use stack-select as a
  last resort to get a value value.

  ATS needs this since it relies on packages installed by Spark. Some classes, like the shuffle
  classes, are not provided by spark, but by a dependent RPM to YARN, so they do not use this
  value.
  :param service_name:  the service name (SPARK, SPARK2, etc)
  :param component_name:  the component name (SPARK_CLIENT, etc)
  :param yarn_version:  the default version of Yarn to use if no spark is installed
  :return:  a value for the version placeholder in spark classpath properties
  """
  # start off seeing if we need to populate a default value for YARN
  if yarn_version is None:
    yarn_version = component_version.get_component_repository_version(service_name = "YARN",
      component_name = "YARN_CLIENT")

  # now try to get the version of spark/spark2, defaulting to the version if YARN
  spark_classpath_version = component_version.get_component_repository_version(service_name = service_name,
    component_name = component_name, default_value = yarn_version)

  # even with the default of using YARN's version, on an install this might be None since we haven't
  # calculated the version of YARN yet - use stack_select as a last ditch effort
  if spark_classpath_version is None:
    try:
      spark_classpath_version = stack_select.get_role_component_current_stack_version()
    except:
      Logger.exception("Unable to query for the correct spark version to use when building classpaths")

  return spark_classpath_version

# these are used to render the classpath for picking up Spark classes
# in the event that spark is not installed, then we must default to the vesrion of YARN installed
# since it will still load classes from its own spark version

# No Spark services in current Mpack;
# TODO: Add Spark into stack;
#spark_version = get_spark_version("SPARK", "SPARK_CLIENT", version)
#spark2_version = get_spark_version("SPARK2", "SPARK2_CLIENT", version)

stack_supports_ranger_kerberos = check_stack_feature(StackFeature.RANGER_KERBEROS_SUPPORT, version_for_stack_feature_checks)
stack_supports_ranger_audit_db = check_stack_feature(StackFeature.RANGER_AUDIT_DB_SUPPORT, version_for_stack_feature_checks)

hostname = config['agentLevelParams']['hostname']

# hadoop default parameters
hadoop_home = status_params.hadoop_home
hadoop_libexec_dir = stack_select.get_hadoop_dir("libexec")
hadoop_bin = stack_select.get_hadoop_dir("sbin")
hadoop_bin_dir = stack_select.get_hadoop_dir("bin")
hadoop_lib_home = stack_select.get_hadoop_dir("lib")
hadoop_conf_dir = conf_select.get_hadoop_conf_dir()
hadoop_yarn_home = '/usr/lib/hadoop-yarn'
hadoop_mapred2_jar_location = "/usr/lib/hadoop-mapreduce"
mapred_bin = "/usr/lib/hadoop-mapreduce/sbin"
yarn_bin = "/usr/lib/hadoop-yarn/sbin"
yarn_container_bin = "/usr/lib/hadoop-yarn/bin"
hadoop_java_io_tmpdir = os.path.join(tmp_dir, "hadoop_java_io_tmpdir")

# hadoop parameters stack supporting rolling_uprade
if stack_supports_ru:
  # MapR directory root
  mapred_role_root = "hadoop-mapreduce-client"
  command_role = default("/role", "")
  if command_role in MAPR_SERVER_ROLE_DIRECTORY_MAP:
    mapred_role_root = MAPR_SERVER_ROLE_DIRECTORY_MAP[command_role]

  # YARN directory root
  yarn_role_root = "hadoop-yarn-client"
  if command_role in YARN_SERVER_ROLE_DIRECTORY_MAP:
    yarn_role_root = YARN_SERVER_ROLE_DIRECTORY_MAP[command_role]

  # defaults set to current based on role
  hadoop_mapr_home = format("{stack_root}/current/{mapred_role_root}")
  hadoop_yarn_home = format("{stack_root}/current/{yarn_role_root}")

  # try to render the specific version
  version = component_version.get_component_repository_version()
  if version is None:
    version = default("/commandParams/version", None)

  if version is not None:
    hadoop_mapr_versioned_home = format("{stack_root}/{version}/hadoop-mapreduce")
    hadoop_yarn_versioned_home = format("{stack_root}/{version}/hadoop-yarn")

    if sudo.path_isdir(hadoop_mapr_versioned_home):
      hadoop_mapr_home = hadoop_mapr_versioned_home

    if sudo.path_isdir(hadoop_yarn_versioned_home):
      hadoop_yarn_home = hadoop_yarn_versioned_home

  hadoop_mapred2_jar_location = hadoop_mapr_home
  mapred_bin = format("{hadoop_mapr_home}/sbin")

  yarn_bin = format("{hadoop_yarn_home}/sbin")
  yarn_container_bin = format("{hadoop_yarn_home}/bin")

if stack_supports_timeline_state_store:
  # Timeline Service property that was added timeline_state_store stack feature
  ats_leveldb_state_store_dir = default('/configurations/yarn-site/yarn.timeline-service.leveldb-state-store.path', '/hadoop/yarn/timeline')

# ats 1.5 properties
entity_groupfs_active_dir = config['configurations']['yarn-site']['yarn.timeline-service.entity-group-fs-store.active-dir']
entity_groupfs_active_dir_mode = 01777
entity_groupfs_store_dir = config['configurations']['yarn-site']['yarn.timeline-service.entity-group-fs-store.done-dir']
entity_groupfs_store_dir_mode = 0700

hadoop_conf_secure_dir = os.path.join(hadoop_conf_dir, "secure")

limits_conf_dir = "/etc/security/limits.d"
yarn_user_nofile_limit = default("/configurations/yarn-env/yarn_user_nofile_limit", "32768")
yarn_user_nproc_limit = default("/configurations/yarn-env/yarn_user_nproc_limit", "65536")

mapred_user_nofile_limit = default("/configurations/mapred-env/mapred_user_nofile_limit", "32768")
mapred_user_nproc_limit = default("/configurations/mapred-env/mapred_user_nproc_limit", "65536")

execute_path = os.environ['PATH'] + os.pathsep + hadoop_bin_dir + os.pathsep + yarn_container_bin

ulimit_cmd = "ulimit -c unlimited;"

mapred_user = status_params.mapred_user
yarn_user = status_params.yarn_user
hdfs_user = config['configurations']['hadoop-env']['hdfs_user']
hdfs_tmp_dir = default("/configurations/hadoop-env/hdfs_tmp_dir", "/tmp")

smokeuser = config['configurations']['cluster-env']['smokeuser']
smokeuser_principal = config['configurations']['cluster-env']['smokeuser_principal_name']
smoke_hdfs_user_mode = 0770
security_enabled = config['configurations']['cluster-env']['security_enabled']
nm_security_marker_dir = "/var/lib/hadoop-yarn"
nm_security_marker = format('{nm_security_marker_dir}/nm_security_enabled')
current_nm_security_state = os.path.isfile(nm_security_marker)
toggle_nm_security = (current_nm_security_state and not security_enabled) or (not current_nm_security_state and security_enabled)
smoke_user_keytab = config['configurations']['cluster-env']['smokeuser_keytab']

yarn_executor_container_group = config['configurations']['yarn-site']['yarn.nodemanager.linux-container-executor.group']
yarn_nodemanager_container_executor_class =  config['configurations']['yarn-site']['yarn.nodemanager.container-executor.class']
is_linux_container_executor = (yarn_nodemanager_container_executor_class == 'org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutor')
container_executor_mode = 06050 if is_linux_container_executor else 02050
kinit_path_local = get_kinit_path(default('/configurations/kerberos-env/executable_search_paths', None))
yarn_http_policy = config['configurations']['yarn-site']['yarn.http.policy']
yarn_https_on = (yarn_http_policy.upper() == 'HTTPS_ONLY')
rm_hosts = config['clusterHostInfo']['resourcemanager_hosts']
rm_host = rm_hosts[0]
rm_port = config['configurations']['yarn-site']['yarn.resourcemanager.webapp.address'].split(':')[-1]
rm_https_port = default('/configurations/yarn-site/yarn.resourcemanager.webapp.https.address', ":8090").split(':')[-1]
# TODO UPGRADE default, update site during upgrade
rm_nodes_exclude_path = default("/configurations/yarn-site/yarn.resourcemanager.nodes.exclude-path","/etc/hadoop/conf/yarn.exclude")
rm_nodes_exclude_dir = os.path.dirname(rm_nodes_exclude_path)

java64_home = config['ambariLevelParams']['java_home']
java_exec = format("{java64_home}/bin/java")
hadoop_ssl_enabled = default("/configurations/core-site/hadoop.ssl.enabled", False)

yarn_heapsize = config['configurations']['yarn-env']['yarn_heapsize']
resourcemanager_heapsize = config['configurations']['yarn-env']['resourcemanager_heapsize']
nodemanager_heapsize = config['configurations']['yarn-env']['nodemanager_heapsize']
apptimelineserver_heapsize = default("/configurations/yarn-env/apptimelineserver_heapsize", 1024)
ats_leveldb_dir = config['configurations']['yarn-site']['yarn.timeline-service.leveldb-timeline-store.path']
ats_leveldb_lock_file = os.path.join(ats_leveldb_dir, "leveldb-timeline-store.ldb", "LOCK")
yarn_log_dir_prefix = config['configurations']['yarn-env']['yarn_log_dir_prefix']
yarn_pid_dir_prefix = status_params.yarn_pid_dir_prefix
mapred_pid_dir_prefix = status_params.mapred_pid_dir_prefix
mapred_log_dir_prefix = config['configurations']['mapred-env']['mapred_log_dir_prefix']
mapred_env_sh_template = config['configurations']['mapred-env']['content']
yarn_env_sh_template = config['configurations']['yarn-env']['content']
container_executor_cfg_template = config['configurations']['container-executor']['content']
yarn_nodemanager_recovery_dir = default('/configurations/yarn-site/yarn.nodemanager.recovery.dir', None)
service_check_queue_name = default('/configurations/yarn-env/service_check.queue.name', 'default')

if len(rm_hosts) > 1:
  additional_rm_host = rm_hosts[1]
  rm_webui_address = format("{rm_host}:{rm_port},{additional_rm_host}:{rm_port}")
  rm_webui_https_address = format("{rm_host}:{rm_https_port},{additional_rm_host}:{rm_https_port}")
else:
  rm_webui_address = format("{rm_host}:{rm_port}")
  rm_webui_https_address = format("{rm_host}:{rm_https_port}")

if security_enabled:
  tc_mode = 0644
  tc_owner = "root"
else:
  tc_mode = None
  tc_owner = hdfs_user

nm_webui_address = config['configurations']['yarn-site']['yarn.nodemanager.webapp.address']
hs_webui_address = config['configurations']['mapred-site']['mapreduce.jobhistory.webapp.address']
nm_address = config['configurations']['yarn-site']['yarn.nodemanager.address']  # still contains 0.0.0.0
if hostname and nm_address and nm_address.startswith("0.0.0.0:"):
  nm_address = nm_address.replace("0.0.0.0", hostname)

# Initialize lists of work directories.
nm_local_dirs = default("/configurations/yarn-site/yarn.nodemanager.local-dirs", "")
nm_log_dirs = default("/configurations/yarn-site/yarn.nodemanager.log-dirs", "")

nm_local_dirs_list = nm_local_dirs.split(',')
nm_log_dirs_list = nm_log_dirs.split(',')

nm_log_dir_to_mount_file = "/var/lib/ambari-agent/data/yarn/yarn_log_dir_mount.hist"
nm_local_dir_to_mount_file = "/var/lib/ambari-agent/data/yarn/yarn_local_dir_mount.hist"

distrAppJarName = "hadoop-yarn-applications-distributedshell-3.*.jar"
hadoopMapredExamplesJarName = "hadoop-mapreduce-examples-3.*.jar"

entity_file_history_directory = "/tmp/entity-file-history/active"

yarn_pid_dir = status_params.yarn_pid_dir
mapred_pid_dir = status_params.mapred_pid_dir

mapred_log_dir = format("{mapred_log_dir_prefix}/{mapred_user}")
yarn_log_dir = format("{yarn_log_dir_prefix}/{yarn_user}")
mapred_job_summary_log = format("{mapred_log_dir_prefix}/{mapred_user}/hadoop-mapreduce.jobsummary.log")
yarn_job_summary_log = format("{yarn_log_dir_prefix}/{yarn_user}/hadoop-mapreduce.jobsummary.log")

user_group = config['configurations']['cluster-env']['user_group']

#exclude file
if 'all_decommissioned_hosts' in config['commandParams']:
  exclude_hosts = config['commandParams']['all_decommissioned_hosts'].split(",")
else:
  exclude_hosts = []
exclude_file_path = default("/configurations/yarn-site/yarn.resourcemanager.nodes.exclude-path","/etc/hadoop/conf/yarn.exclude")
rm_nodes_exclude_dir = os.path.dirname(exclude_file_path)

nm_hosts = default("/clusterHostInfo/nodemanager_hosts", [])
#incude file
include_file_path = default("/configurations/yarn-site/yarn.resourcemanager.nodes.include-path", None)
include_hosts = None
manage_include_files = default("/configurations/yarn-site/manage.include.files", False)
if include_file_path and manage_include_files:
  rm_nodes_include_dir = os.path.dirname(include_file_path)
  include_hosts = list(set(nm_hosts) - set(exclude_hosts))

ats_host = set(default("/clusterHostInfo/app_timeline_server_hosts", []))
has_ats = not len(ats_host) == 0

# don't using len(nm_hosts) here, because check can take too much time on large clusters
number_of_nm = 1

hs_host = default("/clusterHostInfo/historyserver_hosts", [])
has_hs = not len(hs_host) == 0

# default kinit commands
rm_kinit_cmd = ""
yarn_timelineservice_kinit_cmd = ""
nodemanager_kinit_cmd = ""

rm_zk_address = config['configurations']['yarn-site']['yarn.resourcemanager.zk-address']
rm_zk_znode = config['configurations']['yarn-site']['yarn.resourcemanager.zk-state-store.parent-path']
rm_zk_store_class = config['configurations']['yarn-site']['yarn.resourcemanager.store.class']
stack_supports_zk_security = check_stack_feature(StackFeature.SECURE_ZOOKEEPER, version_for_stack_feature_checks)
rm_zk_failover_znode = default('/configurations/yarn-site/yarn.resourcemanager.ha.automatic-failover.zk-base-path', '/yarn-leader-election')
hadoop_registry_zk_root = default('/configurations/yarn-site/hadoop.registry.zk.root', '/registry')

if security_enabled:
  rm_principal_name = config['configurations']['yarn-site']['yarn.resourcemanager.principal']
  rm_principal_name = rm_principal_name.replace('_HOST',hostname.lower())
  rm_keytab = config['configurations']['yarn-site']['yarn.resourcemanager.keytab']
  rm_kinit_cmd = format("{kinit_path_local} -kt {rm_keytab} {rm_principal_name};")
  yarn_jaas_file = os.path.join(config_dir, 'yarn_jaas.conf')
  if stack_supports_zk_security:
    zk_principal_name = default("/configurations/zookeeper-env/zookeeper_principal_name", "zookeeper/_HOST@EXAMPLE.COM")
    zk_principal_user = zk_principal_name.split('/')[0]
    rm_security_opts = format('-Dzookeeper.sasl.client=true -Dzookeeper.sasl.client.username={zk_principal_user} -Djava.security.auth.login.config={yarn_jaas_file} -Dzookeeper.sasl.clientconfig=Client')

  # YARN timeline security options
  if has_ats:
    yarn_timelineservice_principal_name = config['configurations']['yarn-site']['yarn.timeline-service.principal']
    yarn_timelineservice_principal_name = yarn_timelineservice_principal_name.replace('_HOST', hostname.lower())
    yarn_timelineservice_keytab = config['configurations']['yarn-site']['yarn.timeline-service.keytab']
    yarn_timelineservice_kinit_cmd = format("{kinit_path_local} -kt {yarn_timelineservice_keytab} {yarn_timelineservice_principal_name};")
    yarn_ats_jaas_file = os.path.join(config_dir, 'yarn_ats_jaas.conf')

  if 'yarn.nodemanager.principal' in config['configurations']['yarn-site']:
    nodemanager_principal_name = default('/configurations/yarn-site/yarn.nodemanager.principal', None)
    if nodemanager_principal_name:
      nodemanager_principal_name = nodemanager_principal_name.replace('_HOST', hostname.lower())

    nodemanager_keytab = config['configurations']['yarn-site']['yarn.nodemanager.keytab']
    nodemanager_kinit_cmd = format("{kinit_path_local} -kt {nodemanager_keytab} {nodemanager_principal_name};")
    yarn_nm_jaas_file = os.path.join(config_dir, 'yarn_nm_jaas.conf')

  if has_hs:
    mapred_jhs_principal_name = config['configurations']['mapred-site']['mapreduce.jobhistory.principal']
    mapred_jhs_principal_name = mapred_jhs_principal_name.replace('_HOST', hostname.lower())
    mapred_jhs_keytab = config['configurations']['mapred-site']['mapreduce.jobhistory.keytab']
    mapred_jaas_file = os.path.join(config_dir, 'mapred_jaas.conf')

yarn_log_aggregation_enabled = config['configurations']['yarn-site']['yarn.log-aggregation-enable']
yarn_nm_app_log_dir =  config['configurations']['yarn-site']['yarn.nodemanager.remote-app-log-dir']
mapreduce_jobhistory_intermediate_done_dir = config['configurations']['mapred-site']['mapreduce.jobhistory.intermediate-done-dir']
mapreduce_jobhistory_done_dir = config['configurations']['mapred-site']['mapreduce.jobhistory.done-dir']
jobhistory_heapsize = default("/configurations/mapred-env/jobhistory_heapsize", "900")
jhs_leveldb_state_store_dir = default('/configurations/mapred-site/mapreduce.jobhistory.recovery.store.leveldb.path', "/hadoop/mapreduce/jhs")

# Tez-related properties
tez_user = config['configurations']['tez-env']['tez_user']

# Tez jars
tez_local_api_jars = '/usr/lib/tez/tez*.jar'
tez_local_lib_jars = '/usr/lib/tez/lib/*.jar'
app_dir_files = {tez_local_api_jars:None}

# Tez libraries
tez_lib_uris = default("/configurations/tez-site/tez.lib.uris", None)

#for create_hdfs_directory
hdfs_user_keytab = config['configurations']['hadoop-env']['hdfs_user_keytab']
hdfs_principal_name = config['configurations']['hadoop-env']['hdfs_principal_name']
hdfs_site = config['configurations']['hdfs-site']
default_fs = config['configurations']['core-site']['fs.defaultFS']
is_webhdfs_enabled = hdfs_site['dfs.webhdfs.enabled']

# Path to file that contains list of HDFS resources to be skipped during processing
hdfs_resource_ignore_file = "/var/lib/ambari-agent/data/.hdfs_resource_ignore"

dfs_type = default("/clusterLevelParams/dfs_type", "")

import functools
#create partial functions with common arguments for every HdfsResource call
#to create/delete hdfs directory/file/copyfromlocal we need to call params.HdfsResource in code
HdfsResource = functools.partial(
  HdfsResource,
  user=hdfs_user,
  hdfs_resource_ignore_file = hdfs_resource_ignore_file,
  security_enabled = security_enabled,
  keytab = hdfs_user_keytab,
  kinit_path_local = kinit_path_local,
  hadoop_bin_dir = hadoop_bin_dir,
  hadoop_conf_dir = hadoop_conf_dir,
  principal_name = hdfs_principal_name,
  hdfs_site = hdfs_site,
  default_fs = default_fs,
  immutable_paths = get_not_managed_resources(),
  dfs_type = dfs_type
 )
update_files_only = default("/commandParams/update_files_only",False)

mapred_tt_group = default("/configurations/mapred-site/mapreduce.tasktracker.group", user_group)

#taskcontroller.cfg

mapred_local_dir = "/tmp/hadoop-mapred/mapred/local"
hdfs_log_dir_prefix = config['configurations']['hadoop-env']['hdfs_log_dir_prefix']
min_user_id = config['configurations']['yarn-env']['min_user_id']

# Node labels
node_labels_dir = default("/configurations/yarn-site/yarn.node-labels.fs-store.root-dir", None)
node_label_enable = config['configurations']['yarn-site']['yarn.node-labels.enabled']

cgroups_dir = "/cgroups_test/cpu"

# hostname of the active HDFS HA Namenode (only used when HA is enabled)
dfs_ha_namenode_active = default("/configurations/cluster-env/dfs_ha_initial_namenode_active", None)
if dfs_ha_namenode_active is not None:
  namenode_hostname = dfs_ha_namenode_active
else:
  namenode_hostname = config['clusterHostInfo']['namenode_hosts'][0]

scheme = 'http' if not yarn_https_on else 'https'
yarn_rm_address = config['configurations']['yarn-site']['yarn.resourcemanager.webapp.address'] if not yarn_https_on else config['configurations']['yarn-site']['yarn.resourcemanager.webapp.https.address']
rm_active_port = rm_https_port if yarn_https_on else rm_port

rm_ha_enabled = False
rm_ha_ids_list = []
rm_webapp_addresses_list = [yarn_rm_address]
rm_ha_ids = default("/configurations/yarn-site/yarn.resourcemanager.ha.rm-ids", None)

if rm_ha_ids:
  rm_ha_ids_list = rm_ha_ids.split(",")
  if len(rm_ha_ids_list) > 1:
    rm_ha_enabled = True

if rm_ha_enabled:
  rm_webapp_addresses_list = []
  for rm_id in rm_ha_ids_list:
    rm_webapp_address_property = format('yarn.resourcemanager.webapp.address.{rm_id}') if not yarn_https_on else format('yarn.resourcemanager.webapp.https.address.{rm_id}')
    rm_webapp_address = config['configurations']['yarn-site'][rm_webapp_address_property]
    rm_webapp_addresses_list.append(rm_webapp_address)

# for curl command in ranger plugin to get db connector
jdk_location = config['ambariLevelParams']['jdk_location']

# ranger yarn plugin section start

# ranger host
ranger_admin_hosts = default("/clusterHostInfo/ranger_admin_hosts", [])
has_ranger_admin = not len(ranger_admin_hosts) == 0

# ranger support xml_configuration flag, instead of depending on ranger xml_configurations_supported/ranger-env, using stack feature
xml_configurations_supported = check_stack_feature(StackFeature.RANGER_XML_CONFIGURATION, version_for_stack_feature_checks)

# ambari-server hostname
ambari_server_hostname = config['ambariLevelParams']['ambari_server_host']

# ranger yarn plugin enabled property
enable_ranger_yarn = default("/configurations/ranger-yarn-plugin-properties/ranger-yarn-plugin-enabled", "No")
enable_ranger_yarn = True if enable_ranger_yarn.lower() == 'yes' else False

# ranger yarn-plugin supported flag, instead of using is_supported_yarn_ranger/yarn-env, using stack feature
is_supported_yarn_ranger = check_stack_feature(StackFeature.YARN_RANGER_PLUGIN_SUPPORT, version_for_stack_feature_checks)

# get ranger yarn properties if enable_ranger_yarn is True
if enable_ranger_yarn and is_supported_yarn_ranger:
  # get ranger policy url
  policymgr_mgr_url = config['configurations']['ranger-yarn-security']['ranger.plugin.yarn.policy.rest.url']

  if not is_empty(policymgr_mgr_url) and policymgr_mgr_url.endswith('/'):
    policymgr_mgr_url = policymgr_mgr_url.rstrip('/')

  # ranger audit db user
  xa_audit_db_user = default('/configurations/admin-properties/audit_db_user', 'rangerlogger')

  xa_audit_db_password = ''
  if not is_empty(config['configurations']['admin-properties']['audit_db_password']) and stack_supports_ranger_audit_db and has_ranger_admin:
    xa_audit_db_password = config['configurations']['admin-properties']['audit_db_password']

  # ranger yarn service/repository name
  repo_name = str(config['clusterName']) + '_yarn'
  repo_name_value = config['configurations']['ranger-yarn-security']['ranger.plugin.yarn.service.name']
  if not is_empty(repo_name_value) and repo_name_value != "{{repo_name}}":
    repo_name = repo_name_value

  # ranger-env config
  ranger_env = config['configurations']['ranger-env']

  # create ranger-env config having external ranger credential properties
  if not has_ranger_admin and enable_ranger_yarn:
    external_admin_username = default('/configurations/ranger-yarn-plugin-properties/external_admin_username', 'admin')
    external_admin_password = default('/configurations/ranger-yarn-plugin-properties/external_admin_password', 'admin')
    external_ranger_admin_username = default('/configurations/ranger-yarn-plugin-properties/external_ranger_admin_username', 'amb_ranger_admin')
    external_ranger_admin_password = default('/configurations/ranger-yarn-plugin-properties/external_ranger_admin_password', 'amb_ranger_admin')
    ranger_env = {}
    ranger_env['admin_username'] = external_admin_username
    ranger_env['admin_password'] = external_admin_password
    ranger_env['ranger_admin_username'] = external_ranger_admin_username
    ranger_env['ranger_admin_password'] = external_ranger_admin_password

  ranger_plugin_properties = config['configurations']['ranger-yarn-plugin-properties']
  policy_user = config['configurations']['ranger-yarn-plugin-properties']['policy_user']
  yarn_rest_url = config['configurations']['yarn-site']['yarn.resourcemanager.webapp.address']

  ranger_plugin_config = {
    'username' : config['configurations']['ranger-yarn-plugin-properties']['REPOSITORY_CONFIG_USERNAME'],
    'password' : unicode(config['configurations']['ranger-yarn-plugin-properties']['REPOSITORY_CONFIG_PASSWORD']),
    'yarn.url' : format('{scheme}://{yarn_rest_url}'),
    'commonNameForCertificate' : config['configurations']['ranger-yarn-plugin-properties']['common.name.for.certificate']
  }

  yarn_ranger_plugin_repo = {
    'isEnabled': 'true',
    'configs': ranger_plugin_config,
    'description': 'yarn repo',
    'name': repo_name,
    'repositoryType': 'yarn',
    'type': 'yarn',
    'assetType': '1'
  }

  custom_ranger_service_config = generate_ranger_service_config(ranger_plugin_properties)
  if len(custom_ranger_service_config) > 0:
    ranger_plugin_config.update(custom_ranger_service_config)

  if stack_supports_ranger_kerberos:
    ranger_plugin_config['ambari.service.check.user'] = policy_user
    ranger_plugin_config['hadoop.security.authentication'] = 'kerberos' if security_enabled else 'simple'

  if stack_supports_ranger_kerberos and security_enabled:
    ranger_plugin_config['policy.download.auth.users'] = yarn_user
    ranger_plugin_config['tag.download.auth.users'] = yarn_user

  downloaded_custom_connector = None
  previous_jdbc_jar_name = None
  driver_curl_source = None
  driver_curl_target = None
  previous_jdbc_jar = None

  if has_ranger_admin and stack_supports_ranger_audit_db:
    xa_audit_db_flavor = config['configurations']['admin-properties']['DB_FLAVOR']
    jdbc_jar_name, previous_jdbc_jar_name, audit_jdbc_url, jdbc_driver = get_audit_configs(config)

    downloaded_custom_connector = format("{tmp_dir}/{jdbc_jar_name}") if stack_supports_ranger_audit_db else None
    driver_curl_source = format("{jdk_location}/{jdbc_jar_name}") if stack_supports_ranger_audit_db else None
    driver_curl_target = format("{hadoop_yarn_home}/lib/{jdbc_jar_name}") if stack_supports_ranger_audit_db else None
    previous_jdbc_jar = format("{hadoop_yarn_home}/lib/{previous_jdbc_jar_name}") if stack_supports_ranger_audit_db else None

  xa_audit_db_is_enabled = False
  if xml_configurations_supported and stack_supports_ranger_audit_db:
    xa_audit_db_is_enabled = config['configurations']['ranger-yarn-audit']['xasecure.audit.destination.db']

  xa_audit_hdfs_is_enabled = config['configurations']['ranger-yarn-audit']['xasecure.audit.destination.hdfs'] if xml_configurations_supported else False
  ssl_keystore_password = config['configurations']['ranger-yarn-policymgr-ssl']['xasecure.policymgr.clientssl.keystore.password'] if xml_configurations_supported else None
  ssl_truststore_password = config['configurations']['ranger-yarn-policymgr-ssl']['xasecure.policymgr.clientssl.truststore.password'] if xml_configurations_supported else None
  credential_file = format('/etc/ranger/{repo_name}/cred.jceks')

  # for SQLA explicitly disable audit to DB for Ranger
  if has_ranger_admin and stack_supports_ranger_audit_db and xa_audit_db_flavor == 'sqla':
    xa_audit_db_is_enabled = False

# need this to capture cluster name from where ranger yarn plugin is enabled
cluster_name = config['clusterName']

redpajama_set_name: RedPajamaGithub


From @FiveOBot on Wed Apr 17 13:00:28 EDT 2019 It's five o'clock somewhere! For example: Sao Tome, Sao Tome and Principe!
From @PCoeytauxET on Wed Apr 17 12:08:57 EDT 2019 RT @worldmusic_cmu: "Tudo por Amor" by @CalemaMusic from #SãoToméAndPríncipe / #Portugal and @Kataleyamusic from #Brazil. A danceable and d?
From @jgriffcdn on Wed Apr 17 10:10:44 EDT 2019 RT @tom_wein: Of the 34 surveyed countries, the least respectful public officials were in Cameroon, Gabon, Mali, Malawi, South Africa and T?
From @CitNeedBot on Tue Apr 16 18:48:41 EDT 2019 The wheel spins and lands on ... Sao Tome and Principe!
From @sunnyvami on Tue Apr 16 17:56:15 EDT 2019 @TheBlqis Please tell us the capitals of Seychelles ?? São Tomé and Príncipe ?? ???
From @rivers999888 on Tue Apr 16 15:57:11 EDT 2019 RT @YouGallivanter: ??- ??????? ???????? Sao Tome and Principe https://t.co/Bnlas9P8pk ??- ???????? SriLanka https://t.co/tpPhYswASi ??-?