Fiction: 70 minutes. 1999. A young woman caught between two worlds.
What happens when you want to die, but can't? What happens when you want to live, but can't?
Sarah wanted to die – but didn't quite make it. Trapped in a body paralysed by immobility and silence, Sarah wants to live – but can't quite make it. Signs of Life is an intimate film about the will to live and the power of thought and feelings in that process.
Told entirely from the perspective of the central character, Sarah Ives, this is the moving story of a young woman trapped in a body diagnosed as being in a persistent vegetative state. Yet she can perceive what is going on around her, but is unable to intervene, to explain or to express her feelings.
An attempted suicide has put her into this state; though she now finds herself wanting to live more than ever. However, the medical consensus around her is gradually persuading Sarah's distraught mother that her daughter is, for all intents and purposes, dead. There is talk of permissions to donate organs, even talk of applying to the Courts to secure a passage to 'death with dignity' in the name of Sarah's 'quality of life'.
Sarah is unable to be part of this in any way, unable to intervene and demonstrate that she is very much alive, or to express her changing feelings towards her mother, with whom she has had a troubled relationship. There seems little chance of some sort of reconciliation between them. However, the film is about Sarah's unusual discoveries and realisations, which eventually help her in her struggle.


Mumbai, Maharashtra, India: The International Advertising Association (IAA) India Chapter announced the winners for its campaign to build awareness of Diabetic Retinopathy in India. The winning team is Rohan Joseph (Creative Director- Copy), Vallabh Yeolekar (Creative Director-Art) at Madison BMB.
The International Advertising Association is the world's only globally-focused integrated advertising trade association with membership representing Advertising agencies and the Media. The IAA comprises Corporate Members, Organizational Members, Educational Affiliates, as well as 56 Chapters with individual members and young professionals from 76 countries including the top 10 economies in the world. lAA is 80 years' old and is headquartered in New York.
Membership to the Indian Chapter of IAA is by invitation only and IAA has very senior marketing, advertising and media professionals as it members. IAA in India is seen as the most active chapter by IAA Global. IAA India is well-recognized for some of its marquee events like the IAA Leadership Awards, IAA Olive Crown Awards, IndIAA Awards, IAA Debates, IAA Conversations, IAA Young Turks Forum and an array of IAA Knowledge Seminars, Webinars, Workshops, Conclaves etc.
The International Advertising Association (IAA) India Chapter announced the winners for its campaign to build awareness of Diabetic Retinopathy in India.


text:
Tag: writing a sefer torah
Writing a Sefer Torah
Question #1: Why not?
"Why doesn't everyone write his own Sefer Torah?"
Question #2: Partners in Torah
"May two people partner together to fulfill the mitzvah of writing a Sefer Torah?"
Question #3: Traditional Chapters
"Why did some gedolei Yisroel not use perakim and pesukim numbers to identify pesukim, whereas others did?"
The last mitzvah mentioned in the Torah, which we are taught in parshas Vayeileich, is that each individual is required to write a Sefer Torah. The words of the Torah from which we derive this mitzvah are, Ve'atah kisvu lachem es hashirah hazos velamdah es Bnei Yisroel simah befihem lema'an tihyeh li hashirah hazos le'eid bivnei Yisroel, "And now, write for yourselves this song, and teach it to the Children of Israel, place it in their mouths, so that this song shall be a testimony among the Children of Israel" (Devorim 31:19). We should note that two of the targumim, the early Aramaic translations of the Torah, authored by Onkelus and by Yonasan ben Uziel, both translate the word shirah not as "song," but as "praise." On the other hand, both Rashi and the Rambam (Hilchos Sefer Torah 7:1) explain the posuk a bit differently from the Targum, translating shirah as "song" and understanding it to refer to the song of parshas Ha'azinu. The Rambam explains the posuk to mean that one should "write the Torah, which contains the song of Ha'azinu."
The Baal Haturim on the posuk notes two gematriyos, one that the words velamdah es Bnei Yisroel equal zeh Torah shebiksav,"this is the Written Torah," and the words simah befihem equal zeh Talmud, "this is the Oral Torah."
Nothing missing
Fulfilling the mitzvah of writing a Sefer Torah requires that one write an entire Sefer Torah — even if one letter is missing, one has not fulfilled the mitzvah (Rambam). A Sefer Torah must be written in black ink on parchment. Parchment is made from animal hide, and the mitzvos of Sifrei Torah, tefillin and mezuzos require that the parchment is produced from the hide of a kosher species. There is no halachic requirement to make it from an animal that was slaughtered in accordance with Jewish law, and, as a matter of fact, the hide is usually not from animals that were slaughtered according to halacha.
Lishmah
The tanning of the hide into parchment must be done lishmah, for the purpose of using it for a Sefer Torah. At the first step of the tanning, the Jew who processes the hide into parchment should state that he is processing it lishmah. Whether or not a non-Jew can perform some of the tanning under a Jew's supervision, or whether doing this undermines the requirement that the processing must be lishmah, is a lengthy discussion among early halachic authorities (Rosh, Hilchos Sefer Torah #3).
The writing of the Sefer Torah must also be performed lishmah. Before he begins writing, the sofer should state aloud, "I am writing this Sefer Torah for the sanctity of Moshe Rabbeinu's Torah" (Rosh, Hilchos Sefer Torah #4). There is an additional requirement that, when writing the names of Hashem, the scribe write them for the sake of creating holy names.
Dipping the quill
There is an interesting halacha that, when writing the name of Hashem, the sofer should not dip his quill into the ink immediately before writing His name. The reason is that the first letter written after a quill is dipped into ink often smears, and one does not want this to occur while one is writing Hashem's name.
Prior to writing the words of the Torah on the specially-made parchment, one must score the parchment in a way that leaves no written marks. This process, called sirtut, is accomplished by running an awl or other sharp instrument across the parchmentto mark the lines on which one plans to write (Rambam, Rosh, Tur; cf. Rabbeinu Tam, who disagrees). This law is a halacha leMoshe miSinai, meaning that it is a mesorah, a tradition, that we were taught by Moshe Rabbeinu, who learned it directly from Hashem when he learned the Torah on Har Sinai.
Punctuating Torah
We have a mesorah how the words of the Torah are vowelized and punctuated; the markings indicating this appear in every standard chumash. However, in a Sefer Torah itself, halacha dictates that no periods, other punctuation marks, reading aids or music notes appear.
Similarly, the division of the Torah into chapters, perakim, is originally from non-Jewish sources and is never used in handwritten Sifrei Torah. Indeed, this is true not only of the Torah, but also in most of the rest of Tanach. The chapter divisions that are commonly used for most of Tanach do not originate in Jewish sources. The two books that are exceptions, where the chapters are according to Jewish sources, are Tehillim and Eicha. In all other kisvei hakodesh, the division into pesukim is part of our tradition, but not the division into chapters. Consequently, the numbering of the pesukim, which is based on the non-Jewish chapter division, is also not our tradition.
At this point, we can address one of our opening questions: "Why did some gedolei Yisroel not use perakim and pesukim numbers to identify pesukim, whereas others did?"
Many of our gedolim, for example, the Chofetz Chayim and the Ohr Somayach, refrained from referring to pesukim according to chapter and posuk. Instead, they would refer to them by the parsha of the week and its location within the parsha. Clearly, they did not want to use a system that was non-Jewish in origin. Those who do use the chapter and posuk system felt, presumably, that since there is no prohibition to use this system, which makes it much easier for the student to locate the posuk being quoted or studied, one may use it to facilitate the student's learning.
Pesuchos and sesumos
The Torah itself is divided into sections using a different system, which are called pesuchos and sesumos. These are indicated by the letter "pei" or "samach" in our standard chumashim.
There is a dispute among rishonim exactly how one is to make the pesuchos and sesumos. Both approaches agree that when the pesucha is in the middle or beginning of a line, it is indicated by leaving the rest of the line blank, and then continuing the next passage on the next line. When a sesumah is in the middle or beginning of a line, it is indicated by leaving blank an area at least nine spaces long and then continuing the next passage on the same line. However, when a pesucha or sesumah is at the end or towards the end of a line, the poskim dispute how it must be written. In order to avoid writing a Sefer Torah that is kosher only according to some authorities, accepted practice is to avoid having a pesucha or sesumah at the end or towards the end of a line. We will see shortly how we make sure that this happens.
Write the letters carefully
The sofer must be careful to write the letters clearly and to follow the halachic rules governing how the letters are to be written. He must also make sure that each letter is completely surrounded by parchment. This last requirement, called mukaf gevil, means that each letter must be written in a way that it does not connect to another letter, nor may it run to the top or bottom of the piece of parchment on which it is written.
One of the rules for writing a Sefer Torah is that the scribe must have another Sefer Torah or a tikun in front of him that has all the words of the Torah correctly spelled. In practice, sofrim use a tikun not only to help them spell the words correctly, but to mimic their exact placement on the line and column. Among other reasons, this is to avoid having the sesumos and pesuchos occur towards or at the ends of lines, which creates a halachic problem, as mentioned above.
Size of letters
A Sefer Torah may be written with very small letters or with very large ones, but the relative size of the letters within the same Sefer Torah must be consistent, except for those few letters that have a tradition to be written larger or smaller.
The scribe who writes a Sefer Torah must be a yarei shamayim and knowledgeable in all the laws of writing a Sefer Torah. There are many more details of these laws, far more than we can discuss in this article. Suffice it to say that numerous works are devoted entirely to the topic of the correct writing of letters in a Sefer Torah.
Someone who does not believe in the G-d-given nature of the Torah at Har Sinai is ineligible to be a scribe for Sifrei Torah, tefillin and mezuzos. Such a person may write a kesubah, which is halachically a contract and not holy writing.
How does it dry?
After writing a section of parchment that needs to dry, it is prohibited to suspend it upside down to prevent dust from settling on it. Notwithstanding that this is a simple method for making sure that the parchment remains clean while drying, it is a disrespectful way to treat the words of Hashem (Tur, Yoreh Deah Chapter 277).
The pieces of parchment are stitched together with a specially-made thread processed from sinews of kosher animals. (As before, the animals must be of kosher species, but there is no requirement that they be kosher-slaughtered.) It should not be stitched all the way to the top or all the way to the bottom (Tur, Yoreh Deah Chapter 278).
Until now, we have been discussing the halachos germane to writing a Sefer Torah, all of which are essential to fulfill this mitzvah. At this point, we will discuss some of the other laws germane to fulfilling the mitzvah.
The Gemara writes that a person who purchased a Sefer Torah that was not kosher, even if only because of one letter, and then repaired the error, it is considered as if he wrote an entire Sefer Torah (Menachos 30a). This is because one is not permitted to own an incorrect Sefer Torah.
Why would someone get credit for writing the entire Sefer Torah when all he did was write one letter? The answer is that a Sefer Torah containing mistakes must be repaired or checked within 30 days. Otherwise, one should place it in genizah. Thus, the individual who corrected the one letter took an incomplete Sefer Torah that would have required genizah and made it into a source that can be used for study and reading the Torah.
Selling a Sefer Torah
The Gemara teaches that one may not sell a Sefer Torah, even if he does not have food to put on his table (Megillah 27a). There are two situations in which one is permitted to sell a sefer Torah: (1) one needs funds to study Torah, or (2) one needs funds to get married (ad locum). The Rema (Yoreh Deah 270:1) adds a third case, permitting the sale of a Sefer Torah in order to have funds with which to fulfill the mitzvah of pidyon shevuyim, redeeming captives.
One may not sell a Sefer Torah, even if he owns several already, and even if he wants to sell an older one in order to have the funds with which to purchase a newer one (Tur, Yoreh Deah, Chapter 270).
Purchasing a Sefer Torah
Does one fulfill the mitzvah if one purchases a Sefer Torah? Based on his understanding of the Gemara (Menachos 30a), the Rema rules that one fulfills the mitzvah only if the Sefer Torah had mistakes and he purchased it and hired a sofer to repair it (or repaired it himself); but, if the Sefer Torah was in good order, he has not fulfilled the mitzvah of writing a Sefer Torah by purchasing it.
Indeed, there is a dispute among the rishonim concerning this halacha: Rashi (Menachos 30a) and the Sefer Hachinuch explain that one fulfills the mitzvah in a non-optimal way by purchasing a Sefer Torah, whereas the Rambam, Smag, Shulchan Aruch and Rema all rule that one is not yotzei by purchase, because the Torah states that the mitzvah is to "write."
The Minchas Chinuch notes that if he hired a sofer to write a Sefer Torah and then failed to pay him, not only has he violated the Torah prohibition of failing to pay a hiree, he has also not fulfilled the mitzvah of writing a Sefer Torah.
Gave it away
According to the Toras Chayim (Sanhedrin 21, quoted by Pischei Teshuvah, Yoreh Deah 270:3 and by Minchas Chinuch), someone who sold, lost or donated his Sefer Torah no longer fulfills the mitzvah and he must write another one. The Sefer Hachinuch implies that he agrees with this approach, since he writes that the mitzvah is that each individual should own a Sefer Torah. However, there are prominent authorities who dispute this conclusion, ruling that once he fulfilled the mitzvah by writing a Sefer Torah, selling it or giving it away does not invalidate his fulfilling of the mitzvah (see Pischei Teshuvah).
Partners in Torah
At this point, let us examine another of our opening questions: "May two people partner together to fulfill the mitzvah of writing a Sefer Torah?"
The Pischei Teshuvah, an anthologized commentary on the Shulchan Aruch, quotes a few poskim who discuss this question. Most are inclined to rule that one has not fulfilled the mitzvah of writing a Sefer Torah this way.
The Sefer Hachinuch defines the mitzvah as being that each person must own a Sefer Torah, which sounds as if he also holds that one does not fulfill the mitzvah by partnering with someone else to hire a sofer to write it.
The Sefer Hachinuch also writes that the optimal hiddur is to write the Torah himself, with his own hand. If someone is unable to write it himself, he should hire someone to write it for him.
Purchasing seforim
Does one fulfill the mitzvah of writing a Sefer Torah by purchasing seforim used to study Torah? The Rosh writes: Today, when people write a Sefer Torah and it is then left in shul to be used for the mitzvah of kerias haTorah, it is a positive mitzvah on every Jewish male who can afford it to write Chumashim, Mishnayos, Gemaras and their commentaries, in order that he and his children be able to study them. This is because the mitzvah of the Torah specifies "in order to learn from them," and with the Gemara and commentaries one understands the mitzvos and their details well (Hilchos Sefer Torah #1).
The Beis Yosef (Yoreh Deah 270) explains that the Rosh was not coming to rule that there is no longer a mitzvah to write a Sefer Torah, but that there is also a mitzvah to write other seforim, and that this acquisition is a bigger mitzvah than writing a Sefer Torah. In the Shulchan Aruch, he reflected this opinion. However, there are prominent acharonim who disagree with the Shulchan Aruch and understand that the Rosh's conclusion is that there is no mitzvah today to write a Sefer Torah (Perisha; Shach). This understanding of the Rosh explains that the mitzvah of the Torah is to produce materials used to study Torah. Since a Sefer Torah is not used today for this purpose, writing one does not fulfill the 613th mitzvah of the Torah.
According to this approach, there is an easy answer to our opening question: "Why doesn't everyone write his own Sefer Torah?"
There are other reasons to explain why people do not write their own Sefer Torah. Another approach is that one is not required to spend more than a fifth of what he owns to fulfill a mitzvah (Minchas Chinuch). Thus, many poor and middle-class people are exempt from the mitzvah. (See the Sha'agas Aryeh, Shu"t Chasam Sofer, Yoreh Deah #52 and #54 and the Minchas Chinuch for yet other reasons to exempt people today from the mitzvah of writing a Sefer Torah.)
The goal of the Torah's mitzvah to write a Sefer Torah is so that, wherever Jews live, there should be readily available seforim to study Torah. However, if this was the Torah's only concern, it would have required each individual to purchase seforim according to his ability. Instead, the Torah required each individual to write a Sefer Torah, thus implying two additional ideas. (1) The Torah wanted each individual to be involved in the providing of Torah learning material, regardless of his personal financial situation. (2) The Torah wanted each individual to be involved, himself, in the writing of Torah materials and their procurement, and not to deputize this mitzvah to others, even when they are more skillful.
The Torah is referred to as a Tree of Life. B'nei Yisroel are depicted as an agricultural people. As the Torah is, indeed, a source — the Source — of life, it is certainly appropriate that we care for its proper "planting" and flourishing, as outlined in halacha.
Posted on October 3, 2019 October 3, 2019 Author CBLCategories Featured Articles, Mitzvahs, Parsha RelatedTags sefer torah, writing a sefer torah

redpajama_set_name: RedPajamaCommonCrawl


The village extends from the shore of the lake to Monte Preàla. The higher part of the village is called Castello because it was fortified in the Middle Ages. It took part in the feud of Nesso, which was ruled by the Visconti family but was later ceded by the Spanish to the Gallio family. On a mule-track from Pognana up the Colma della Guardia, there is a deep crevice in the rock, called the buco di Premen. The area has many caves that have not been explored yet. The village was once famous for its quarries of Moltrasina stone. This activity has almost disappeared, as has the cultivation of crops.
Built between 1723 and 1744 and consecrated by Bishop Albrici Pellegrini in 1764. The façade, in the Baroque style, is characterized by four pilasters and from the portal flanked by two niches and surmounted by a sundial. Above it is the date in 1744 (the year of the end of construction work). The interior has a nave with two bays, two side altars and semicircular chancel and is decorated with frescoes on the vaults (1961 by the painter Torildo Conconi). On the right wall of the first bay it is situated a seventeenth-century canvas depicting the Glory of St. Agatha with Saint Apollonia and Lucia.
Nearby Things to Do include: Monuments such as Joseph Frank Pyramid Mausoleum and Giant Wine Press (Il Torchio); Hikes & Walks such as Buco dell'Orso and Porta Travaina; Villas such as Villa Oleandra and Villa Pliniana; Towns such as Laglio and Faggeto Lario; Churches such as Santissima Trinità and San Miro; Parks & Gardens such as Nesso Orrido and Park Casa Prandoni.


text:
Technology news for Kiwi CFOs and financial decision-makers
Only 8% of CFOs are factoring in a 'second wave' of COVID-19 into plans
As restrictions are eased in many countries which have already seen the apex of their COVID-19 crisis, experts are warning that complacency could facilitate a 'second wave' of coronavirus cases, potentially more damaging to an already pummelled economy and health system.
Companies should prepare for the possibility of experiencing a second wave and the consequences that come with it in order to absorb its impact, but according to new research from Gartner, 42% of CFOs are not incorporating a second wave outbreak of COVID-19 in the financial scenarios they are building for the remainder of 2020.
The survey, which was conducted between April 14-19 and quizzed 99 CFOs around the world, showed that only 8% of CFOs have a second wave factored into all their planning scenarios, and only 22% have a second wave factored into their "most likely" scenario.
Many financial decision-makers are also stumped on when and whether they should reopen on-premise facilities, as most companies have enacted some form of remote working system.
"As CFOs are attempting to project revenue and profits for 2020, it's surprising that 42% are not baking a second wave of COVID-19 into any of their scenarios," says Gartner Finance practice vice president Alexander Bant.
"Our latest CFO data also reveals that most executive teams are still trying to decide what factors they should use to determine how and when to reopen their offices and facilities."
While 81% of CFOs report that they will look to state and local authorities for the green light to restart their operations, 55% of CFOs reported that they will take a measured approach as to when their employees will return to offices, while 44% are unsure how employees will be brought back to work.
As uncertainty surrounds the pandemic's duration, severity and consequences on different sectors and businesses, many CFOs are taking a 'just because we can, doesn't mean we should' philosophy to fully reopening.
"Many CFOs seem to be conscious of moving too quickly, with only 4% of CFOs telling us that their organisations will require employees to immediately return to the office, even after receiving approval from state and local authorities to reopen their physical facilities," says Bant.
'Macro-pandemic concerns' have been cited as the top concern for CFOs in regard to the general risks that COVID-19 poses – at more than double the rate cited at the beginning of April.
Fears about the medium-to-long term consequences of the virus have grown, with the main issue of declining cash flows ranked as the top concern of CFOs regarding the crisis.
On the other hand, concern about revenue losses and employee management issues, such as productivity losses and meeting payroll, have declined, according to Gartner.
What, no crystal balls? Public Trust moves to dynamic forecasting
Business Planning Financial planning Planning Strategic planning COVID-19 Gartner CFO
Financial planning can be challenging in the best of times, but planning in a crisis takes it to another level. More
Kiwi tech sector grows, boosted by game development and local IT companies
"We are seeing sectors like the game developers growing exports at exponential rates, local IT companies working through the night helping other sectors rapidly become more digital."More
Blockpass and Chainlink team up to deliver new solution to blockchain ecosystem
The possibilities created by this are expansive and will entail multiple services for proving age, geography, and investor classification, amongst others, Blockpass states. More
Women in tech: Broken rung constrains progress
While the glass ceiling is cracking, the progress is constrained by a broken rung.More
Microservices-based applications rely on key-value or NoSQL databases - study
"The change of application architecture into microservices significantly impacts the data layer supporting these services."More
Organisations unprepared for IT needs of the future - IBM
Organisations are not prepared for the future IT needs of the business and nearly all are moving to advance their transition to cloud infrastructure.More
Former Silver Peak, Symantec exec joins Quantum
Quantum Corp has announced the appointment of Rick Valentine as the company's new senior vice president & chief customer officer, joining Quantum's executive leadership team. More
Epazz teams up with Greenheart CBD Hemp to develop smart contracts worldwide
The company will be enhancing their smart contract software to allow other organisations interested in launching their IEO using an easier way to create and modify their smart contracts without needing a programmer.More
2021: the year of a boom in fintech payment innovations
As businesses across the globe assess how they will bounce back and upscale their capabilities, there will be opportunities for the acceleration and adoption of fintech innovation in the B2B space.More


Your body temperature goes through rhythmic cycles during the day. When your temperature is high, your physical and mental performance are faster. Controlling your body temperature could prove useful in certain daily situations where external heat or cold has reached extreme degrees. A passing 'grade' for a Tibetan lama from a lamasary school is to go out onto a frozen lake stark naked and with his body heat alone, evaporate the moisture out of two water soaked blankets! Such extraordinary feats are quite possible when you master complete control over your bodily functions.
Even though your normal body temperature is 98.6°F, your finger temperature varies between the 70's and the 90's. To alter the temperature of a finger by several degrees in a few minutes of concentration is just as easy as thinking about it. As you learned in "Exercise -- Electromagnetic Field Awareness," just thinking of one of your hands increases the blood volume to that hand. Focused thought to other areas of the body can bring about an increased blood volume into those areas as well. When blood volume increases, the capillaries in the skin dilate and the temperature of the skin increases. When blood flow decreases, the blood vessels in the skin constrict and temperature decreases.
As an exercise, take an ordinary medical thermometer and tape it to your forefinger, or even better, use a Radio Shack thermometer with 9 foot cord and sensor thermistor that can be taped to your finder. You can easily read the digital display in 0.1 degree increments. Now raise the temperature of your finger by extending your conscious awareness into it. Experience the feeling of the tape and thermometer touching it, but ignore the thermometer completely. Now try different visualizations (sun's rays, hot water, campfire, etc.) to raise the temperature of the forefinger and just "feel" it warming up. Coincide this process with deep, steady abdominal breathing. If you forcefully try to 'will' your finger to get warm, a bodily reaction of 'fight or flight' results in a constriction of the blood vessels in preparation for violent action, and you achieve the reverse effect -- coolness. The more relaxed and calm you feel, the better your success. After 4 minutes, retape the thermometer or thermistor to your other forefinger to see which hand is easier to regulate the temperature of.
To make your fingers cooler, visualize digging with your fingers into the icy snow of an avalanche that has partially engulfed you or visualize some other stressful scene or dangerous situation. Detail the experience with fear, anxiety or other negative emotion to effect a constriction of your blood vessels. Sometimes just thinking of putting your hand into icy water or in a snowbank, or imagining it already frozen in an ice block will accomplish the same cooling effect.
You might notice that one hand is easier to effect a temperature control than the other. Also a woman's hands tend to be colder than a man's. Practice using 2 thermometers, and make one temperature go up and the other go down. Afterwards, practice with other parts of your body. When you can successfully regulate your finger temperature, you realize the same techniques of temperature regulation can be used on other parts of your body as well.
Biofeedback experts have found that regulating the temperature of your finger also normalizes the blood flow in the capillaries of your head to relieve cloudy thinking and headaches caused by dilated or constricted blood vessels.


The connections between mainland China and Sydney continue to multiply.
Just weeks after the announcements of new connections to the Australian city from Kunming, Chengdu and Changsha, China Eastern Airlines has now revealed plans to become the first airline to fly non-stop from Hangzhou to Sydney.
Commencing on 15 November 2016, the new Hangzhou-Sydney service will operate three times a week using a 234-seat Airbus A330 aircraft.
Flights will depart Hangzhou, the capital of eastern China's Zhejiang province, every Tuesday, Thursday and Saturday at 2215, and arrive in Sydney at 1330 the next day. The return flights will depart every Wednesday, Friday and Sunday at 2215 and get back into Hangzhou at 0750 the following morning. The flights will continue onwards between Hangzhou and Beijing.
China Eastern already flies to Sydney from Shanghai, Beijing and Nanjing, and will also launch services from Kunming in November.
Air China's new direct flight from Chengdu also takes off in November, and Hainan Airlines is planning to start a seasonal service from Changsha this month.
Chinese carriers also fly to the Australian city from Guangzhou, Shenzhen, Chongqing, Xi'an, Fuzhou and Xiamen, making Sydney one of the best connected long-haul destinations from mainland China.


text:
#blog_post {
  margin-top: 70px;
  /* new comment */ }
  #blog_post .section_header input[type="text"] {
    float: right;
    margin-top: 9px;
    background: url("../../img/search.png") white no-repeat 5px;
    padding-left: 28px;
    width: 18%;
    border-radius: 5px; }
  #blog_post .post_pic {
    border: 7px solid #fff;
    border-radius: 5px;
    box-shadow: 1px 1px 2px 1px #cfcfcf; }
  #blog_post .post_content {
    margin-top: 40px;
    padding-bottom: 90px;
    border-bottom: 1px solid #cacaca;
    box-shadow: 0px 1px 0px 0px white; }
    #blog_post .post_content h2 {
      font-size: 32px;
      color: #3F3F3F;
      margin-bottom: 15px; }
    #blog_post .post_content span.date {
      width: 100%;
      font-size: 14px;
      font-style: italic;
      margin-bottom: 42px;
      display: block;
      color: #9C9C9C; }
    #blog_post .post_content p {
      line-height: 24px;
      margin-bottom: 15px; }
    #blog_post .post_content .author_box {
      margin-top: 50px; }
      #blog_post .post_content .author_box .author {
        margin-top: 45px;
        font-weight: bold;
        font-size: 15px;
        color: #1189D9; }
      #blog_post .post_content .author_box .area {
        font-size: 15px;
        font-style: italic;
        margin-top: 5px;
        color: #9C9C9C; }
  #blog_post .comments {
    margin-top: 3px;
    padding-top: 50px;
    border-bottom: 1px solid #cacaca;
    box-shadow: 0px 1px 0px 0px white;
    padding-bottom: 3px; }
    #blog_post .comments h4 {
      font-size: 23px;
      margin-top: 0;
      margin-bottom: 25px; }
    #blog_post .comments .comment {
      margin-bottom: 60px;
      margin-top: 30px; }
      #blog_post .comments .comment.reply_to {
        margin-top: -10px; }
      #blog_post .comments .comment .name {
        font-weight: bold;
        color: #3F3F3F;
        font-size: 14px; }
      #blog_post .comments .comment a.reply {
        color: #1189D9;
        text-decoration: underline;
        margin-left: 20px;
        font-size: 14px;
        -webkit-transition: color .2s;
        -moz-transition: color .2s;
        -ms-transition: color .2s;
        transition: color .2s; }
        #blog_post .comments .comment a.reply:hover {
          color: #252528; }
      #blog_post .comments .comment .date {
        font-size: 13px;
        font-weight: bold;
        color: #747B85; }
      #blog_post .comments .comment .response {
        margin-top: 10px;
        line-height: 22px;
        font-size: 14px; }
  #blog_post .new_comment {
    padding-top: 30px;
    margin-top: 3px; }
    #blog_post .new_comment h4 {
      font-size: 23px;
      color: #3F3F3F; }
    #blog_post .new_comment form {
      margin-top: 35px; }
      #blog_post .new_comment form input[type="text"] {
        border-radius: 3px; }
      #blog_post .new_comment form textarea {
        margin-top: 20px; }
      #blog_post .new_comment form a.send {
        float: right;
        color: #fff;
        border: 0 none;
        background: #187CCC;
        text-shadow: none;
        padding: 4px 15px 4px;
        box-shadow: none;
        text-transform: uppercase;
        font-size: 15px;
        font-weight: bold;
        margin-top: 15px;
        -webkit-transition: background linear .2s, box-shadow linear .2s;
        -moz-transition: background linear .2s, box-shadow linear .2s;
        -o-transition: background linear .2s, box-shadow linear .2s;
        transition: background linear .2s, box-shadow linear .2s; }
        #blog_post .new_comment form a.send:hover {
          background: #252528; }
  #blog_post .sidebar {
    margin: 0;
    padding: 40px 19px 40px 28px;
    background: #fff;
    border-radius: 4px;
    box-shadow: 0 1px 3px 1px #cfcfcf;
    float: right; }
    #blog_post .sidebar .box {
      padding-bottom: 30px;
      overflow: hidden;
      margin-bottom: 40px;
      border-bottom: 1px solid #d8d8d8; }
    #blog_post .sidebar .last {
      border: 0 none;
      padding: 0;
      margin-bottom: 0; }
    #blog_post .sidebar .box .recent {
      width: 100%;
      margin-bottom: 20px;
      float: left; }
      #blog_post .sidebar .box .recent span img {
        float: left;
        margin-right: 10px; }
      #blog_post .sidebar .box .recent p {
        margin: 0;
        line-height: 18px;
        font-size: 13px; }
    #blog_post .sidebar .sidebar_header {
      margin-bottom: 20px; }
      #blog_post .sidebar .sidebar_header h4 {
        font-size: 19px;
        margin: 0; }
    #blog_post .sidebar .sidebar_menu {
      list-style-type: none;
      margin-left: 0px;
      padding: 0; }
      #blog_post .sidebar .sidebar_menu ul {
        margin: 0;
        padding: 0;
        list-style: none; }
        #blog_post .sidebar .sidebar_menu ul li {
          margin-bottom: 6px; }
          #blog_post .sidebar .sidebar_menu ul li a {
            color: #333;
            font-size: 14px;
            -webkit-transition: color .2s;
            -moz-transition: color .2s;
            -ms-transition: color .2s;
            transition: color .2s; }
            #blog_post .sidebar .sidebar_menu ul li a:hover {
              color: #1187D8; }
    #blog_post .sidebar .recent_posts {
      list-style-type: none;
      margin-top: 30px;
      margin-left: 0px; }
      #blog_post .sidebar .recent_posts li {
        margin-bottom: 20px;
        font-size: 15px; }
      #blog_post .sidebar .recent_posts .thumb {
        border: 3px solid #fff;
        box-shadow: 0px 0px 1px 1px #bdbdbd; }
      #blog_post .sidebar .recent_posts a.link {
        color: #333;
        display: block;
        margin-top: 10px; }
        #blog_post .sidebar .recent_posts a.link:hover {
          color: #87a46e;
          text-decoration: underline; }
    #blog_post .sidebar ul.recent_photos {
      list-style-type: none;
      margin-left: 0px;
      padding: 18px 0 0 0; }
      #blog_post .sidebar ul.recent_photos li {
        list-style: none;
        display: inline-block;
        margin-right: 14px;
        margin-bottom: 11px; }
        #blog_post .sidebar ul.recent_photos li a img {
          max-width: 55px;
          border-radius: 3px; }

/* Responsive
-------------------------------------------------- */
/* Large desktop */
@media (min-width: 1200px) {
  #blog_wrapper .post .info {
    width: 420px; } }
@media (max-width: 767px) {
  #blog_wrapper .header hr {
    width: 70%; }
  #blog_wrapper .post .main_pic {
    display: block;
    margin: 0 auto; }
  #blog_wrapper .sidebar .recent_posts .thumb {
    max-width: 100px; }

  #blog_post .sidebar ul.recent_photos li {
    margin-right: 15px; }
  #blog_post .new_comment form input[type="text"] {
    margin-top: 10px; }
  #blog_post .new_comment form a.send {
    margin-bottom: 20px; } }
@media (min-width: 768px) {
  #blog_wrapper .sidebar .search-query {
    width: 85%; }
  #blog_wrapper .sidebar .box .recent p {
    font-size: 13px; } }

redpajama_set_name: RedPajamaGithub


text:
Slavery: The Game, a Hoax That Hurts
2011-09-06 by Aaron Sarno 4 Comments
A trailer recently emerged on YouTube that promises the release of a new game called "Slavery: The Game." In it, the gamer plays a slave trader who buys, exploits, and even "disciplines" slaves, all while building up a personal slave trading empire. The most likely fake real-time strategy (RTS) game will be for the PS3, Xbox 360, and PC, according to the trailer.
Not only does this trailer strike a cord for those who are descendants of former slaves, especially African Americans, but it also implicates real companies in its scheme, even if that scheme is just an elaborate attempt at trolling. According to the trailer, the company responsible is Javelin Reds Gaming, which is supposedly a subsidiary of The Creative Assembly. Moreover, Sony and Microsoft must approve games made for their consoles, and this trailer implies that they have done so.
While The Creative Assembly is known for making war strategy games, it has denied any connection to Javelin Reds or "Slavery: The Game." Nevertheless, the damage is likely already done. Thousands of people who have viewed the trailer are already fuming, signing petitions to stop the game's development, and likely protesting The Creative Assembly for something it most likely had no connection to or knowledge of its existence.
For something that is so purposefully offensive to sensible people, regardless of their race, this type of hoax is a PR knife in the back, a wound that The Creative Assembly will have to mend, even though it had no connection to it. This is the perfect example of how outside influences can sometimes affect a company's public relations and why you should always be prepared for the unexpected.
Filed Under: Entertainment PR, PR News Tagged With: PR News, Video Game PR
Roeltje says
Offense is taken, not given. Why would this (fake) game be more wrong than any shooter? I think it would be a game that could really teach you something, like a WWII shooter can.
Tavis J. Hampton says
So, since you brought up WWII, are you suggesting there should be game called "Holocaust: The Game"? What exactly would that teach people?
Phil Butler says
@Tavis, As you suggest Tavis, I think we pretty much have figured out how to brutalize, demoralize, dehumanize, and otherwise hurt one another. For a change, maybe we should play Twister, with a slinky, or just skip stones on the water maybe – 40,000 years of hammering each other's brains out has taught us nothing – I doubt some idiotic Internet game is gonna help much.
sharry council says
Wish I could find the people who thought this was even remotely funny or intertaining & HANG thier behinds frm the nearest TREE!!


text:
Q: Получить количество совпадений AutoComleteTextView Имею AutoCompleteTextView. Хочу изменить цвет текста, если нет совпадений. Как узнать количество отображенных айтемов?

A: Все просто:
autoET.postDelayed(new Runnable() {
    public void run() {
        doWork(autoAdapter.getCount());
    }
}, 80);

redpajama_set_name: RedPajamaStackExchange


text:
Mark Cuban, Dirk optimistic about start of the season despite struggles in preseason
Dallas Mavericks guard Deron Williams (8) and forward Dirk Nowitzki (41) are pictured during the Houston Rockets vs. the Dallas Mavericks NBA basketball preseason game at the American Airlines Center in Dallas on Wednesday, October 19, 2016. (Louis DeLuca/The Dallas Morning News)(Louis DeLuca / Staff Photographer)
11:54 PM on Oct 24, 2016
At the Mavericks' Tipoff Luncheon on Monday, Mark Cuban said the excitement and nervousness and fear of the unknown are all factors with which he's coping.
Just like every October.
And he's fully aware that there are fans, media members and even some people in the organization who are bracing for a potentially rough first month of the season. The Mavericks have 10 road games in their first 15 contests. That the team has not had enough time to develop much chemistry in training camp keeps the concern meter pushing the red line.
"We've had rough starts before, though, so it's not like we haven't gone through this. And it's not that I expect it to happen, either," Cuban said ahead of the Mavericks' opener Wednesday at Indiana. "I think because we have a tough schedule, everybody's kind of preparing for the worst and hoping for the best. I don't see that at all. I think we got a good team."
There are 29 other owners who think the same thing right now about their teams.
But this season, more than ever, judging the Mavericks off their early-season results probably would be unfair. And it almost certainly would be demoralizing.
Of those 15 opening games that will take them through the day after Thanksgiving, the Mavericks play 10 teams that were in the playoffs last season and two more (New York and Utah) that are expected to contend this season.
"We all have a ways to go," coach Rick Carlisle said. "We'll be ready to compete on Wednesday. But we've had some struggles, and that's no secret. We have to get some things cleaned up in these practice days."
The good news is that Dirk Nowitzki said Monday he feels as good as he has since training camp began. He didn't play international ball this summer, so that probably helped his body recover.
He always goes into the season with a sense of optimism -- usually tempered with a heavy dose of reality.
This year is no different.
"Every team has strengths and weaknesses," Nowitzki said. "No team is perfect. It's about playing hard and hiding your weaknesses and playing to your strengths. That's what we got to do -- find a rotation that works, lineups that work together. It hasn't been the greatest preseason. We got to get better on both ends.
"But you got to be positive to get the season started. We'll be fine. We got plenty of weapons. And we got pretty good defenders."
One legitimate concern is the health of Devin Harris. The veteran guard was being evaluated Monday for a left foot injury suffered in the preseason finale. It's the same foot that he's had two surgeries on.
While the Mavericks hold out hope that he won't be out long term, they understand they could be without their spark plug off the bench for a while. Carlisle listed Harris as "very doubtful" for the opener.
Nowitzki seemed a little more concerned than that.
"Bizarre play," he said of the injury. "His orthotics gave out, and the next thing you know, he sprained his foot. It's tough to see with what he went through all summer with the surgeries and the grinding every day in the weight room. I was happy for him [with his rehab]. He looked good and had that speed back that he needs to play with."
Briefly: Nowitzki was asked if he was on the Dak Prescott or Tony Romo train, which promptly ended the interview session as Nowitzki laughed and walked away... J.J. Barea, who has been nursing a hyperextended left elbow, went through practice Monday, and Carlisle said he expects him to be available for the opener. Barea and Seth Curry will be the backups to starting point guard Deron Williams.
Twitter: @ESefko
How the Mavericks did last season when Devin Harris played and in games he missed:


We are delighted to have so many competitors this year. Check out who you are drawn against and get your matches completed early so that the next rounds can commence as soon as possible to give everyone the maximum time to sort out their dates. Who will triumph as the winner of the Ann Grist Trophy? And which pair will carry off the Mary Warmoth Cup?
Slow Play - If your group has fallen behind the group in front and lost a hole, please call the group behind through so that the rest of the field can keep up the pace.
7-Day – The Ken Bird Weekend Mixed Winter League – This week 99 golfers played a Stableford Qualifier. The winning score was 39 points with Lesley Bonser scoring 36 points in 14th place. After 15 rounds, Lesley's points this week gives her a fantastic overall 3rd place in the Order of Merit with a phenomenal 66 points. Congratulations!
Tuesday – The first round of the Stableford League was played on a sunny spring morning. All the scores are on our website. Click on the Hot Link or use the Leaderboard menu. Points are awarded after each round and the Winners this week were: Division 1 Kathy Dale 34pt, Division 2 Hilary Clark 34pt, Division 3 Di Rogers 33pt. There are another 5 rounds to play to find the overall winners for 2016.
9 Hole Stableford - The winner was Yvonne Wood with 18points. Her birdie on the 9th was a beauty!


text:
.class Landroid/support/v4/media/session/MediaControllerCompat$TransportControlsApi23;
.super Landroid/support/v4/media/session/MediaControllerCompat$TransportControlsApi21;
.source "MediaControllerCompat.java"

# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Landroid/support/v4/media/session/MediaControllerCompat;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x8
    name = "TransportControlsApi23"
.end annotation

# direct methods
.method public constructor <init>(Ljava/lang/Object;)V
    .locals 0
    .param p1, "controlsObj"    # Ljava/lang/Object;

    .prologue
    .line 1381
    invoke-direct {p0, p1}, Landroid/support/v4/media/session/MediaControllerCompat$TransportControlsApi21;-><init>(Ljava/lang/Object;)V

    .line 1382
    return-void
.end method

# virtual methods
.method public playFromUri(Landroid/net/Uri;Landroid/os/Bundle;)V
    .locals 1
    .param p1, "uri"    # Landroid/net/Uri;
    .param p2, "extras"    # Landroid/os/Bundle;

    .prologue
    .line 1386
    iget-object v0, p0, Landroid/support/v4/media/session/MediaControllerCompat$TransportControlsApi23;->mControlsObj:Ljava/lang/Object;

    invoke-static {v0, p1, p2}, Landroid/support/v4/media/session/MediaControllerCompatApi23$TransportControls;->playFromUri(Ljava/lang/Object;Landroid/net/Uri;Landroid/os/Bundle;)V

    .line 1388
    return-void
.end method


text:
package org.jgroups.tests;

import org.jgroups.Event;
import org.jgroups.Global;
import org.jgroups.conf.ProtocolConfiguration;
import org.jgroups.util.StackType;
import org.jgroups.annotations.Property;
import org.jgroups.conf.PropertyConverters;
import org.jgroups.stack.Configurator;
import org.jgroups.stack.IpAddress;
import org.jgroups.stack.Protocol;
import org.jgroups.stack.ProtocolStack;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

import java.net.InetAddress;
import java.util.LinkedList;
import java.util.List;
import java.util.Vector;

/**
 * Tests the use of @Property dependency processing and default assignment.
 * @author Richard Achmatowicz
 */
@Test(groups=Global.FUNCTIONAL,singleThreaded=true)
public class ProtocolConfigurationTest {
	ProtocolStack stack = null;
	Protocol protocol = null ;
	static final String orderProps="org.jgroups.tests.ProtocolConfigurationTest$ORDERING(a=1;b=2;c=3)";
	static final String refsProps="org.jgroups.tests.ProtocolConfigurationTest$REFS(a=1;b=2;c=3)";
	static final String defaultProps="org.jgroups.tests.ProtocolConfigurationTest$DEFAULTS(b=333)";
	static final String addressProps="org.jgroups.tests.ProtocolConfigurationTest$INETADDRESSES(" +
									"inetAddressField=127.0.0.1;inet_address_method=192.168.0.100;" +
									"ipAddressListField=127.0.0.1[8080],127.0.0.1[8081];" +
									"ip_address_list_method=192.168.0.100[5678],192.168.0.101[2345];port_range=1)" ;
	static final String configurableObjectsProps="org.jgroups.tests.ProtocolConfigurationTest$CONFIGOBJPROTOCOL(" +
	                                "config_object_class=org.jgroups.tests.ProtocolConfigurationTest$ConfigurableObject;" +
	                                "string_property=test)" ;

	List<String> order = new LinkedList<>() ;

	@BeforeMethod
	void setUp() {
		stack=new ProtocolStack();
	}

	/*
	 * Checks that missing dependencies are flagged
	 */
	@Test(expectedExceptions=IllegalArgumentException.class)
	public void testResolutionOfDependencies() throws Exception {

		// create the layer described by REFS
		try {
			protocol = Configurator.createProtocol(refsProps, stack) ;
		}
		catch(IllegalArgumentException e) {
			System.out.println("exception thrown (expected): " + e.getMessage());
			// rethrow to make sure testNG does not fail the test
			throw e ;
		}
	}

	/*
	 * Checks that dependency ordering works
	 */
	public void testDependencyOrdering() throws Exception {
		// create a List describing correct Property ordering
		List<String> correctOrder = new LinkedList<>() ;
		correctOrder.add("c") ;
		correctOrder.add("b") ;
		correctOrder.add("a") ;

		// create the layer described by ORDERING
		protocol = Configurator.createProtocol(orderProps, stack) ;

		// check that the list elements are in the right order
		List<String> actualOrder = ((ORDERING)protocol).getList() ;

		assert actualOrder.equals(correctOrder) ;
	}

	/*
	 * Checks assignment of defaults
	 */
	public void testDefaultAssignment() throws Exception {

		Vector<ProtocolConfiguration> protocol_configs = new Vector<>() ;
		Vector<Protocol> protocols = new Vector<>() ;

		// create the layer described by DEFAULTS
		protocol = Configurator.createProtocol(defaultProps, stack) ;
		// process the defaults
		protocol_configs.add(new ProtocolConfiguration(defaultProps)) ;
		protocols.add(protocol) ;
		Configurator.setDefaultValues(protocol_configs, protocols, StackType.IPv4) ;

		// get the value which should have been assigned a default
		int a = ((DEFAULTS)protocol).getA() ;
		System.out.println("value of a = " + a) ;

		// get the value which should not have been assigned a default
		int b = ((DEFAULTS)protocol).getB() ;
		System.out.println("value of b = " + b) ;

		// assert b == 333 ;
		if (b != 333) {
			throw new RuntimeException("default property value set when it should not have been") ;
		}

		// get the value which should not have been assigned a default
		InetAddress c = ((DEFAULTS)protocol).getC() ;
		System.out.println("value of c = " + c) ;
        assert c != null;
	}
	/*
	 * Checks InetAddress and IpAddress processing
	 */
	public void testAssignmentInetAddresses() throws Exception {

		Vector<ProtocolConfiguration> protocol_configs = new Vector<>() ;
		Vector<Protocol> protocols = new Vector<>() ;

		// create the layer described by INETADDRESSES
		protocol = Configurator.createProtocol(addressProps, stack) ;

		// get the value which should have been assigned a default
		InetAddress a = ((INETADDRESSES)protocol).getInetAddressField() ;
		System.out.println("value of inetAddressField = " + a) ;

		// get the value which should not have been assigned a default
		InetAddress b = ((INETADDRESSES)protocol).getInetAddressMethod() ;
		System.out.println("value of inetAddressMethod = " + b) ;

		// get the value which should have been assigned a default
		List<IpAddress> c = ((INETADDRESSES)protocol).getIpAddressListField() ;
		System.out.println("value of ipAddressListField = " + c) ;

		// get the value which should not have been assigned a default
		List<IpAddress> d = ((INETADDRESSES)protocol).getIpAddressListMethod() ;
		System.out.println("value of ipAddressListMethod = " + d) ;

	}

	/*
	 * Checks InetAddress and IpAddress processing
	 */
	public void testConfigurableObject() throws Exception {

		Vector<ProtocolConfiguration> protocol_configs = new Vector<>() ;
		Vector<Protocol> protocols = new Vector<>() ;

		// create the layer described by INETADDRESSES
		protocol = Configurator.createProtocol(configurableObjectsProps, stack) ;

		// process the defaults (want this eventually)
		protocol_configs.add(new ProtocolConfiguration(configurableObjectsProps)) ;
		protocols.add(protocol) ;

		// get the value which should have been assigned a default
		List<Object> configObjs = ((CONFIGOBJPROTOCOL)protocol).getConfigurableObjects() ;
		assert configObjs.size() == 1 ;
		Object configObj = configObjs.get(0) ;
		assert configObj instanceof ConfigurableObject ;
		assert ((ConfigurableObject)configObj).getStringProp().equals("test") ;

	}

	public static class ORDERING extends Protocol {
		List<String> list = new LinkedList<>() ;

		@Property(name="a", dependsUpon="b")
		public void setA(int a) {
			list.add("a") ;
		}
		@Property(name="b", dependsUpon="c")
		public void setB(int b) {
			list.add("b") ;
		}
		@Property(name="c")
		public void setC(int c) {
			list.add("c") ;
		}
		List<String> getList() {
			return list ;
		}
		public String getName() {
			return name ;
		}
		// do nothing
		public Object down(Event evt) {
			return down_prot.down(evt);
		}
		// do nothing
		public Object up(Event evt) {
			return up_prot.up(evt);
		}
	}
	public static class REFS extends Protocol {

		@Property(name="a", dependsUpon="b")
		public void setA(int a) {
		}
		@Property(name="b", dependsUpon="d")
		public void setB(int b) {
		}
		@Property(name="c")
		public void setC(int c) {
		}
		public String getName() {
			return name ;
		}
		// do nothing
		public Object down(Event evt) {
			return down_prot.down(evt);
		}
		// do nothing
		public Object up(Event evt) {
			return up_prot.up(evt);
		}
	}
	public static class DEFAULTS extends Protocol {
		int a ;
		int b ;
		InetAddress c ;

		@Property(name="a")
		public void setA(int a) {
			this.a = a ;
		}
		@Property(name="b")
		public void setB(int b) {
			this.b = b ;
		}
		@Property(name="c", defaultValueIPv4="192.168.1.10")
		public void setC(InetAddress ia) {
			this.c = ia ;
		}
		public int getA() {
			return a ;
		}
		public int getB() {
			return b ;
		}
		public InetAddress getC() {
			return c ;
		}
		public String getName() {
			return name ;
		}
		// do nothing
		public Object down(Event evt) {
			return down_prot.down(evt);
		}
		// do nothing
		public Object up(Event evt) {
			return up_prot.up(evt);
		}
	}
	public static class INETADDRESSES extends Protocol {
		InetAddress inetAddressMethod ;

		@Property(name="inetAddressField")
		InetAddress inetAddressField ;

		public InetAddress getInetAddressField() {
			return inetAddressField ;
		}
		@Property(name="inetAddressMethod")
		public void setInetAddressMethod(InetAddress ia) {
			this.inetAddressMethod = ia ;
		}
		public InetAddress getInetAddressMethod() {
			return inetAddressMethod ;
		}

		@Property(description="fred")
		int port_range = 0 ;

		// List<IpAddress> - uses InitialHosts converter
		List<IpAddress> ipAddressListMethod ;

		@Property(name="ipAddressListField", converter=PropertyConverters.InitialHosts.class)
		List<IpAddress> ipAddressListField ;

		public List<IpAddress> getIpAddressListField() {
			return ipAddressListField ;
		}
		@Property(name="ipAddressListMethod", converter=PropertyConverters.InitialHosts.class, dependsUpon="port_range")
		public void setIpAddressListMethod(List<IpAddress> ia) {
			this.ipAddressListMethod = ia ;
		}
		public List<IpAddress> getIpAddressListMethod() {
			return ipAddressListMethod ;
		}

		public String getName() {
			return name ;
		}
		// do nothing
		public Object down(Event evt) {
			return down_prot.down(evt);
		}
		// do nothing
		public Object up(Event evt) {
			return up_prot.up(evt);
		}
	}
	public static class CONFIGOBJPROTOCOL extends Protocol {

	    private Object configObjInstance=null;

	    @Property(name="config_object_class")
	    public void setConfigurableObjectClass(String class_name) throws Exception {
            configObjInstance=Class.forName(class_name).newInstance();
	    }

	    protected List<Object> getConfigurableObjects() {
	        List<Object> retval=new LinkedList<>();
	        if(configObjInstance != null)
	            retval.add(configObjInstance);
	        return retval;
	    }

		public String getName() {
			return name ;
		}
		// do nothing
		public Object down(Event evt) {
			return down_prot.down(evt);
		}
		// do nothing
		public Object up(Event evt) {
			return up_prot.up(evt);
		}
	}

	public static class ConfigurableObject {
		@Property(name="string_property")
		String stringProp = null ;
		public String getStringProp() {
			return stringProp ;
		}
		public void setStringProp(String s) {
			this.stringProp = s ;
		}
	}
}


text:
Directors-in-Dialogue
The Digital Vortex: Implications for the Boardroom
An explosion in the use of digital technologies is changing the dynamics of competition across many industries. We see in the news almost daily about how nimble technology-savvy competitors disrupt traditional firms. These competitors are not just start-ups, but also well-capitalised technology giants. So what does this mean for industry incumbents that seem to be falling behind in data analytics, evidence-based decision-making, platform building and e-commerce?
Based on extensive research by IMD's Global Centre for Digital Business Transformation, this session helped board directors who wish to understand how industry incumbents can leverage their competitive advantages to disrupt the disruptors and occupy new markets, as well as the implications for board directors in the short and long term. Facilitated by Jean-François Manzoni and Michael Wade, the session will address the following topics:
How disruptors are disrupting traditional businesses
Strategies for incumbents to disrupt disruptors
Learnings from incumbents that have successfully become disruptors, lessons from others that have failed
Implications for boards in the short term and long-term
Your Facilitators
Jean-François Manzoni
Jean-François Manzoni is the President (Dean) and Professor of Leadership and Organisational Development at IMD. Before this, he was the Shell Chaired Professor of Human Resource and Organisation Development at INSEAD where he also directed the Global Leadership Centre. Jean-François focuses on leadership, the development of high-performance organisations and corporate governance in his research, teaching and consulting activities. An award winning teacher and researcher, and a widely published author, he has worked in more than 30 countries as a consultant, trainer and coach for several MNCs, founded and directed various leadership and board-level initiatives at INSEAD and IMD in the last 25 years.
At INSEAD, he co-directed the International Directors Programme, INSEAD's flagship programme for Board members, and co-directed the launch of a new executive development programme entitled "Leading the Business of Sustainability". He is a member of the Human Capital Leadership Institute's International Advisory Panel and invited to the 2014 and 2016 World Economic Forum meetings in Davos.
Michael Wade
Michael Wade is a Professor of Innovation and Strategy at IMD and holds the Cisco Chair in Digital Business Transformation. He is the Director of the Global Center for Digital Business Transformation, an IMD and Cisco Initiative. His areas of expertise relate to strategy, innovation, and digital transformation. At IMD in addition to teach several open enrollment courses, Michael has directed partnership programmes about strategy and digital business transformation with Vodafone, Ooredoo, AXA, Honda, Zurich Financial Services, Credit Suisse, KONE, and Richemont, among others. He co-directs IMD's Orchestrating Winning Performance and Leading Digital Business Transformation programmes.
Michael has published more than 50 articles and presentations in leading academic journals plus 8 books on a variety of topics, including digital business transformation, innovation, social media marketing, information systems strategy, eCommerce, and SME performance. His latest book, published in 2016, is Digital Vortex: How Today's Market Leaders Can Beat Disruptive Competitors at Their Own Game.
Attendees Included
Board Chairs and Non-Executive Directors of publicly listed, private and non-profit corporations
Government agency representatives
Social enterprise representatives
Quarterly series
"Excellent introduction to a challenging topic which requires urgent action by boards. The forum provided a simple to understand the framework and useful tools which will help board members determine the future of their companies by focusing on transformational imperatives."
Khoo Boon Hui, Board Director, Certis CISCO Security Pte Ltd
"The session provided an excellent overview and compelling examples for digital transformation and agility. Most importantly, the session's facilitators provided practical advice, framework, and emphasis for focus and successful Implementation."
Lim Teck Yin, Chief Executive Officer, Sport Singapore
"Quick, easy to follow and digestible programme. (The session was) able to break down myths and fears of digital disruption (by providing) useful signposts and set of toolkits for board members and senior executives to use in navigating what disruption means for real business and how to respond effectively."
Richard Hoo, Deputy Chief Executive Officer, Urban Redevelopment Authority
Previous Directors in Dialogue Sessions
Board Governance in the Fourth Industrial Revolution: Balancing Digital Transformation and Cyber Resilience
The Future World for Boards
Better Judgements for the Board
Programme White Papers
Wise Power in Governance
Creating a Purpose-Driven Organisation
Boards and Innovation: Creating Sustainable Growth Through Business Model Innovation
Marc Le Menestrel
Michael Useem


...and move on I think.
We've got to the end (well nearly), we've officially postponed it with a conditional extension that's been decreed (we now have little say in these things), and it's looking like no deal has been ruled out in that two extension deadlines are offered. One to finalise the May Deal, and one to allow us to consider our options.
"...until 12 April - by when the UK would have to indicate whether it would stand candidates in the 2019 European Parliament elections - "all options remain on the table ... the UK government will still have a chance of a deal, no deal, a long extension or revoking Article 50"."
Revoking isn't going to happen, no deal is irresponsible blunderbuss talk, a deal that's not the May one will be Norway and what's the point in that, and a long extension will be as disastrous as a no deal for the economy. Interestingly there's no mention of Ref2, but that would be socially fragmenting.
My personal view on the concept of Brexit hasn't changed, but we're wrecking our country over this divisive issue.
Don't let anyone accuse me of being the cause of further entrenchment.
Is the 3rd May meaningful vote worth bothering with now?
What is 1949 + 211 ?


text:
Vigeland Museum (Vigeland-museet)
#14 in Best Things To Do in Oslo
Ronald Woan/Flickr
Nobels gate 32
Museums Type
1 to 2 hours Time to Spend
4.5Value
3.5Facilities
3.5Atmosphere
How we rank things to do
Just south of the sprawling Vigeland Park lies the Vigeland Museum, an art museum filled with sculptures, portrait busts, sketches and more. The property is named after local artist Gustav Vigeland, whose former studio and apartment were converted into a museum following his death in 1943. The attraction's collection primarily features works made by Vigeland, including approximately 12,000 drawings, 1,600 sculptures and 420 woodcuts. The museum's standout exhibit is its room of original plaster models Vigeland used to create the 200-plus sculptures in Vigeland Park.
Although a few former visitors were not impressed with Vigeland's sculptures, many suggest checking out the property, especially if you have an Oslo Pass (which covers the museum's entrance fee). One recent traveler noted that additional information (in English) is available on laminated cards inside each exhibit, but for even more background about Vigeland and his pieces, you can sign up for a guided group tour in English. Rates start at 500 to 1,000 kroner per group, depending on the number and age of participants.
The Vigeland Museum is open Tuesday through Sunday between 10 a.m. or noon and 4 or 5 p.m. If you don't have an Oslo Pass, each ticket will cost you 80 kroner (less than $10) per adult and 40 kroner (roughly $5) for every senior, student and child age 7 to 17. Kids 6 and younger get in for free. Admissions include access to all of the museum's exhibits, and a gift shop, a cafe and restrooms are available by Vigeland Park's entrance. To get to the museum, which sits in Oslo's Frogner neighborhood, you can take the No. 20 bus or the No. 12 tram to Frogner plass station. There's also a fee-based parking lot on-site. Visit the Vigeland Museum website to find out more.
Hotels near Vigeland Museum (Vigeland-museet) »
See all Hotels in Oslo »
More Best Things To Do in Oslo
Natural Wonders, Free, Swimming/Pools Type
2 hours to Half Day Time to Spend
Find Tours & Tickets
#1 Oslo Fjord
Occupying 766 square miles, Oslo Fjord attracts Oslo residents and tourists in droves, especially during the warmer months. Water vistas are available from many parts of the city, including popular attractions like the Oslo Opera House and Akershus Fortress. You can also opt to hit the water in a canoe or kayak, but to get the full experience, consider signing up for an Oslo Fjord cruise. Sightseeing and fishing excursions are available on everything from inflatable boats (known as RIBs) to sailboats and yachts to ferries throughout the year.
Traveler-approved cruise operators include RIB Oslo and Norway Yacht Charter, but the cheapest and most popular way to explore the fjord is via a tour with Båtservice Sightseeing. Affiliated with Norway Yacht Charter, this ferry company offers several fjord tour options, such as a two-hour daytime sightseeing excursion and three-hour crab-, jazz- and blues-themed cruises. Previous visitors suggest booking the evening boat tour, which includes three hours of sailing and a highly regarded all-you-can-eat shrimp buffet. But remember to bring extra money for drinks and a jacket if you plan on sitting outside.
Kerrick/Getty Images
See full list of Best Things To Do in Oslo »
Explore More of Oslo
Previous: Things to do
Next: Hotels
#20 in Best Places to Visit in Europe
#2 in Best Places to Visit in July
#16 in Best Cheap European Vacations
Explore more vacations »
Where Can Americans Travel Right Now?
More than 50 countries currently allow U.S. citizens to visit, but some restrictions apply.
Mackenzie RocheNovember 9, 2020
15 Top Romantic Getaways in Wisconsin
Wisconsin offers plenty of secluded cabins and charming small towns perfect for traveling twosomes.
Ann HensonNovember 9, 2020
What Will Happen to My Elite Status and Points Because of the Coronavirus?
Limited travel due to the coronavirus prompts airline and hotel rewards programs to make policy changes.
Zach Watson|Christine SmithNovember 5, 2020
The 10 Best Travel Insurance Companies
U.S. News rates the top travel insurance options, considering expert and consumer recommendations.
Holly JohnsonNovember 5, 2020
15 Top Romantic Getaways in Colorado
Unique romantic experiences define Colorado, from dazzling mountain peaks to relaxing hot springs.
Zach WatsonNovember 3, 2020
Vacation Rentals: The Best Vacation Rental Sites for Every Type of Traveler
Decide which vacation rental site is right for you using this comprehensive guide.
Christine SmithOctober 20, 2020
15 Top Romantic Getaways in Texas
From big cities to quiet mountains, couples will find endless romantic vacations in Texas.
Marisa MéndezOctober 16, 2020
16 Top Romantic Getaways in North Carolina
Luxurious hotels and mountainside adventures await couples vacationing in North Carolina.
Ann HensonOctober 15, 2020
15 Top Romantic Getaways in Virginia
From mountain escapes to quaint small towns, a blissful trip for two is right around the corner.
Nicola WoodOctober 14, 2020
16 Top Romantic Getaways in Michigan
If you love beaches, wine and historical cities, choose Michigan for your next couples vacation.
Mackenzie RocheOctober 7, 2020


text:
Q: Sql statement needed to display duplicates to 1 I recieved some help but it did not resolve my issue.  I am trying to create the below table from a table that contains multiple invoices numbers and invoice codes.  I want to see the invoices numbers(2 or more of the same number) for any code(multiple codes for the same invoice number is expected)  I am not totally new to SQL but I am by far no expert and look for guidance.  Please see below table
 Invoice#      Inv Code
 22567          CN
 22567          FR
 25855          CN
 25855          FR

There are other invoices and other codes in the table, but I only want those codes that have 2 or more of the same invoice number attached to them. Thnx

A: I think you want to get only records which have two or more invoices of same number. You should try this
select *
from tab_name tn
where (select count(*) From tab_name where invoice = tn.invoice) > 1

A: SELECT DISTINCT t1.`Inv Code` FROM table t1
join table t2 ON t1.`Inv Code`=t2.`Inv Code`
AND t1.`Invoice#`=(SELECT `Invoice#` from table group by `Invoice#`having count(*) >1)

OK,try it now.
http://sqlfiddle.com/#!2/922f7/3

A: I was thinking you can self join on Invoice and get rows where invoice matches and code doesn't.
Hope this sql meets your need:
select A.invoice
FROM table1 A INNER JOIN table1 B
ON A.INVOICE=B.invoice
AND A.code<>b.CODE
GROUP BY 1


text:
John Montgomery (* 1722 in Irland; † 3. September 1808 in Carlisle, Pennsylvania) war ein irisch-amerikanischer Politiker, der als Delegierter aus Pennsylvania am Kontinentalkongress teilnahm.

John Montgomery und seine Familie verließen ihre irische Heimat im Jahr 1740 und wanderten nach Nordamerika aus, wo sie sich im Gebiet der heutigen Stadt Carlisle in Pennsylvania niederließen. Er wurde dort Bezirksrichter und später Offizier. Im dritten Bataillon Pennsylvanias bekleidete er den Rang eines Captain und nahm 1758 während des Franzosen- und Indianerkrieges an den Kämpfen um das Fort Duquesne teil. Im Verlauf der amerikanischen Revolution schloss sich Montgomery dem Committee of Safety von Pennsylvania an. Diese Gremien übernahmen im Lauf der Zeit die eigentliche Verwaltung von den britischen Kolonialbehörden. Während des Unabhängigkeitskrieges hatte er im Regiment des Cumberland County den Rang eines Colonel der Kontinentalarmee inne.

Sein erstes politisches Mandat übernahm Montgomery zwischen 1781 und 1782 als Mitglied der Pennsylvania General Assembly.
Von 1782 bis 1784 wurde er als Delegierter seines Staates zu den Sitzungen des Kontinentalkongresses entsandt, der zu dieser Zeit in Philadelphia, Princeton, Annapolis und Trenton tagte. Im Jahr 1787 fungierte er als Ortsvorsteher (Burgess) von Carlisle, ehe er 1794 zum Richter im Cumberland County ernannt wurde.

John Montgomery zählte außerdem zu den Gründern des Dickinson College in Carlisle und gehörte dessen Leitungsgremium (Board of Trustees) bis zu seinem Tod im September 1808 an. Sein Sohn John (1764–1828) wurde ebenfalls Politiker und saß von 1807 bis 1811 als Abgeordneter aus Maryland im Repräsentantenhaus der Vereinigten Staaten.

Weblinks

Mitglied des Kontinentalkongresses
Mitglied der Pennsylvania General Assembly
Captain (British Army)
Oberst (Kontinentalarmee)
Richter (Pennsylvania)
Irischer Emigrant in den Vereinigten Staaten
Ire
US-Amerikaner
Geboren 1722
Gestorben 1808
Mann

redpajama_set_name: RedPajamaWikipedia


text:
package drt.shared

import drt.shared.CrunchApi.MillisSinceEpoch
import drt.shared.PaxTypes._
import drt.shared.QueueStatusProviders.QueueStatusProvider
import drt.shared.Queues.{Queue, QueueStatus, _}
import drt.shared.SplitRatiosNs.{SplitRatio, SplitRatios, SplitSources}
import drt.shared.Terminals.Terminal
import ujson.Js.Value
import uk.gov.homeoffice.drt.auth.Roles.Role
import upickle.default
import upickle.default._

import scala.collection.immutable.SortedMap

trait ClassNameForToString {
  override val toString: String = getClass.toString.split("\\$").last
}

object Terminals {

  sealed trait Terminal extends ClassNameForToString with Ordered[Terminal] {
    override def compare(that: Terminal): Int = toString.compare(that.toString)
  }

  object Terminal {
    implicit val rw: ReadWriter[Terminal] = macroRW

    def apply(terminalName: String): Terminal = terminalName.toLowerCase match {
      case "t1" => T1
      case "t2" => T2
      case "t3" => T3
      case "t4" => T4
      case "t5" => T5
      case "a1" => A1
      case "a2" => A2
      case "1i" => T1
      case "2i" => T2
      case "1d" => T1
      case "2d" => T2
      case "5d" => T5
      case "3i" => T3
      case "4i" => T4
      case "5i" => T5
      case "ter" => T1
      case "n" => N
      case "s" => S
      case "mt" => T1
      case "cta" => CTA
      case "mainapron" => MainApron
      case _ => InvalidTerminal
    }
  }

  case object InvalidTerminal extends Terminal {
    override val toString: String = ""
  }

  case object T1 extends Terminal

  case object T2 extends Terminal

  case object T3 extends Terminal

  case object T4 extends Terminal

  case object T5 extends Terminal

  case object A1 extends Terminal

  case object A2 extends Terminal

  case object ACLTER extends Terminal

  case object N extends Terminal

  case object S extends Terminal

  case object MainApron extends Terminal

  case object CTA extends Terminal

}

object Queues {

  sealed trait QueueStatus

  object QueueStatus {
    implicit val rw: ReadWriter[QueueStatus] = macroRW
  }

  case object Open extends QueueStatus

  case object Closed extends QueueStatus

  case class QueueFallbacks(queues: Map[Terminal, Seq[Queue]]) {
    val fallbacks: PartialFunction[(Queue, PaxType), Seq[Queue]] = {
      case (EGate, _: EeaPaxType) => Seq(EeaDesk, QueueDesk, NonEeaDesk)
      case (EGate, _: NonEeaPaxType) => Seq(NonEeaDesk, QueueDesk, EeaDesk)
      case (EeaDesk, _: PaxType) => Seq(EeaDesk, QueueDesk)
      case (NonEeaDesk, _: PaxType) => Seq(EeaDesk, QueueDesk)
      case (_, _) => Seq()
    }

    def availableFallbacks(terminal: Terminal, queue: Queue, paxType: PaxType): Iterable[Queue] = {
      val availableQueues: List[Queue] = queues.get(terminal).toList.flatten
      fallbacks((queue, paxType)).filter(availableQueues.contains)
    }
  }

  sealed trait Queue extends ClassNameForToString with Ordered[Queue] {
    override def compare(that: Queue): Int = toString.compareTo(that.toString)
  }

  object Queue {
    implicit val rw: ReadWriter[Queue] = macroRW

    def apply(queueName: String): Queue = queueName.toLowerCase match {
      case "eeadesk" => EeaDesk
      case "egate" => EGate
      case "noneeadesk" => NonEeaDesk
      case "fasttrack" => FastTrack
      case "transfer" => Transfer
      case "queuedesk" => QueueDesk
      case _ => InvalidQueue
    }
  }

  case object InvalidQueue extends Queue {
    override val toString: String = ""
  }

  case object EeaDesk extends Queue

  case object EGate extends Queue

  case object NonEeaDesk extends Queue

  case object FastTrack extends Queue

  case object Transfer extends Queue

  case object QueueDesk extends Queue

  val queueOrder = List(QueueDesk, EGate, EeaDesk, NonEeaDesk, FastTrack)

  def inOrder(queuesToSort: Seq[Queue]): Seq[Queue] = queueOrder.filter(q => queuesToSort.contains(q))

  val displayName: Function[Queue, String] = {
    case EeaDesk => "EEA"
    case NonEeaDesk => "Non-EEA"
    case EGate => "e-Gates"
    case FastTrack => "Fast Track"
    case Transfer => "Tx"
    case QueueDesk => "Desk"
    case _ => "Invalid"
  }

  val forecastExportQueueOrderSansFastTrack = List(EeaDesk, NonEeaDesk, EGate)
  val forecastExportQueueOrderWithFastTrack = List(EeaDesk, NonEeaDesk, EGate, FastTrack)

  val deskExportQueueOrderSansFastTrack = List(EeaDesk, EGate, NonEeaDesk)
  val deskExportQueueOrderWithFastTrack = List(EeaDesk, EGate, NonEeaDesk, FastTrack)
  val exportQueueDisplayNames: Map[Queue, String] = Map(
    EeaDesk -> "EEA",
    NonEeaDesk -> "NON-EEA",
    EGate -> "E-GATES",
    FastTrack -> "FAST TRACK"
  )
}

sealed trait PaxType {
  def name: String = getClass.getSimpleName

  def cleanName: String = getClass.getSimpleName.dropRight(1)
}

sealed trait EeaPaxType extends PaxType

sealed trait NonEeaPaxType extends PaxType

object PaxType {
  def apply(paxTypeString: String): PaxType = paxTypeString match {
    case "EeaMachineReadable$" => EeaMachineReadable
    case "EeaNonMachineReadable$" => EeaNonMachineReadable
    case "EeaBelowEGateAge$" => EeaBelowEGateAge
    case "VisaNational$" => VisaNational
    case "NonVisaNational$" => NonVisaNational
    case "B5JPlusNational$" => B5JPlusNational
    case "B5JPlusNationalBelowEGateAge$" => B5JPlusNationalBelowEGateAge
    case "Transit$" => Transit
    case _ => UndefinedPaxType
  }

  implicit val paxTypeReaderWriter: ReadWriter[PaxType] =
    readwriter[Value].bimap[PaxType](paxType => paxType.cleanName, (s: Value) => PaxType(s"${s.str}$$"))
}

object PaxTypes {

  case object EeaMachineReadable extends EeaPaxType

  case object EeaNonMachineReadable extends EeaPaxType

  case object EeaBelowEGateAge extends EeaPaxType

  case object VisaNational extends NonEeaPaxType

  case object NonVisaNational extends NonEeaPaxType

  case object B5JPlusNational extends NonEeaPaxType

  case object B5JPlusNationalBelowEGateAge extends NonEeaPaxType

  case object Transit extends PaxType

  case object UndefinedPaxType extends PaxType

  def displayName(pt: PaxType): String = pt match {
    case EeaMachineReadable => "EEA Machine Readable"
    case EeaNonMachineReadable => "EEA Non-Machine Readable"
    case EeaBelowEGateAge => "EEA Child"
    case VisaNational => "Visa National"
    case NonVisaNational => "Non-Visa National"
    case B5JPlusNational => "B5J+ National"
    case B5JPlusNationalBelowEGateAge => "B5J+ Child"
    case Transit => "Transit"
    case UndefinedPaxType => "Undefined"
    case other => other.name
  }

  def displayNameShort(pt: PaxType): String = pt match {
    case EeaMachineReadable => "EEA MR"
    case EeaNonMachineReadable => "EEA NMR"
    case EeaBelowEGateAge => "EEA U12"
    case VisaNational => "VN"
    case NonVisaNational => "NVN"
    case B5JPlusNational => "B5J+"
    case B5JPlusNationalBelowEGateAge => "B5J+ U12"
    case Transit => "Transit"
    case UndefinedPaxType => "Undefined"
    case other => other.name
  }
}

case class PaxTypeAndQueue(passengerType: PaxType, queueType: Queue) {
  def key = s"${passengerType}_$queueType"

  def displayName = s"${PaxTypes.displayName(passengerType)} to ${Queues.displayName(queueType)}"
}

object PaxTypeAndQueue {
  def apply(split: ApiPaxTypeAndQueueCount): PaxTypeAndQueue = PaxTypeAndQueue(split.passengerType, split.queueType)

  implicit val rw: ReadWriter[PaxTypeAndQueue] = macroRW
}

object ProcessingTimes {
  val nationalityProcessingTimes: Map[String, Double] = Map(
    "AUT" -> 22.7, "BEL" -> 22.7, "BGR" -> 22.7, "HRV" -> 22.7, "CYP" -> 22.7, "CZE" -> 22.7, "DNK" -> 22.7,
    "EST" -> 22.7, "FIN" -> 22.7, "FRA" -> 22.7, "DEU" -> 22.7, "HUN" -> 22.7, "IRL" -> 22.7, "LVA" -> 22.7,
    "LTU" -> 22.7, "LUX" -> 22.7, "MLT" -> 22.7, "NLD" -> 22.7, "POL" -> 22.7, "PRT" -> 22.7, "ROU" -> 22.7,
    "SVK" -> 22.7, "SVN" -> 22.7, "ESP" -> 22.7, "SWE" -> 22.7, "GBR" -> 22.7, "GRC" -> 64.0, "ITA" -> 50.5,
    "USA" -> 69.6, "CHN" -> 75.7, "IND" -> 79.0, "AUS" -> 69.5, "CAN" -> 66.6, "SAU" -> 76.3, "JPN" -> 69.5,
    "NGA" -> 79.2, "KOR" -> 70.1, "NZL" -> 69.5, "RUS" -> 79.5, "BRA" -> 86.0, "PAK" -> 82.4, "KWT" -> 80.8,
    "TUR" -> 77.5, "ISR" -> 66.3, "ZAF" -> 78.3, "MYS" -> 69.8, "MEX" -> 82.9, "PHL" -> 86.2, "QAT" -> 79.0,
    "UKR" -> 82.2, "ARG" -> 80.7, "ARE" -> 81.0, "THA" -> 77.8, "TWN" -> 75.2, "SGP" -> 72.0, "EGY" -> 79.8,
    "LKA" -> 72.2, "GHA" -> 87.8, "IRN" -> 77.0, "BGD" -> 80.0, "IDN" -> 82.1, "COL" -> 81.8, "CHL" -> 84.2,
    "KEN" -> 87.5, "BHR" -> 79.9, "XXB" -> 71.9, "LBN" -> 66.2, "MUS" -> 78.3, "OMN" -> 82.9, "DZA" -> 83.7,
    "JAM" -> 84.0, "NPL" -> 77.8, "MAR" -> 83.2, "ALB" -> 69.7, "JOR" -> 77.3, "TTO" -> 84.7, "VNM" -> 87.7,
    "ZWE" -> 75.5, "IRQ" -> 81.3, "SRB" -> 77.2, "BLR" -> 78.3, "KAZ" -> 80.9, "SYR" -> 85.4, "ZIM" -> 77.2,
    "AFG" -> 82.1, "GBN" -> 75.2, "VEN" -> 75.7, "PER" -> 83.2, "UGA" -> 88.8, "TUN" -> 85.3, "SDN" -> 85.1,
    "AZE" -> 80.3, "BRB" -> 85.8, "TZA" -> 82.9, "SLE" -> 93.1, "HKG" -> 72.3, "ERI" -> 92.8, "CMR" -> 85.2,
    "ECU" -> 78.6, "LBY" -> 82.2, "URY" -> 94.5, "CRI" -> 89.1, "ZMB" -> 85.4, "BIH" -> 72.3, "COD" -> 90.2,
    "ISL" -> 28.3, "None" -> 30.0, "MKD" -> 72.6, "GEO" -> 83.4, "AGO" -> 94.8, "GMB" -> 81.3, "UZB" -> 72.6,
    "KNA" -> 83.8, "SOM" -> 90.6, "LCA" -> 89.3, "GRD" -> 105.9
  )
}

object QueueStatusProviders {

  sealed trait QueueStatusProvider {
    def statusAt(terminal: Terminal, queue: Queue, hour: Int): QueueStatus
  }

  object QueueStatusProvider {
    implicit val rw: default.ReadWriter[QueueStatusProvider] = macroRW
  }

  case object QueuesAlwaysOpen extends QueueStatusProvider {
    implicit val rw: ReadWriter[QueueStatusProvider] = macroRW

    override def statusAt(terminal: Terminal, queue: Queue, hour: Int): QueueStatus = Open
  }

  case class HourlyStatuses(statusByTerminalQueueHour: Map[Terminal, Map[Queue, IndexedSeq[QueueStatus]]]) extends QueueStatusProvider {
    override def statusAt(terminal: Terminal, queue: Queue, hour: Int): QueueStatus =
      statusByTerminalQueueHour.get(terminal)
        .flatMap(_.get(queue).flatMap { statuses => statuses.lift(hour % 24) }).getOrElse(Closed)
  }

  object HourlyStatuses {
    implicit val rw: ReadWriter[HourlyStatuses] = macroRW
  }

  case class FlexibleEGatesForSimulation(eGateOpenHours: Seq[Int]) extends QueueStatusProvider {
    override def statusAt(t: Terminal, queue: Queue, hour: Int): QueueStatus =
      (queue, hour) match {
        case (EGate, hour) if !eGateOpenHours.contains(hour) => Closed
        case _ => Open
      }
  }

  object FlexibleEGatesForSimulation {
    implicit val rw: ReadWriter[FlexibleEGatesForSimulation] = macroRW
  }

}

case class AirportConfig(portCode: PortCode,
                         queuesByTerminal: SortedMap[Terminal, Seq[Queue]],
                         divertedQueues: Map[Queue, Queue] = Map(),
                         flexedQueues: Set[Queue] = Set(),
                         slaByQueue: Map[Queue, Int],
                         timeToChoxMillis: Long = 300000L,
                         firstPaxOffMillis: Long = 180000L,
                         defaultWalkTimeMillis: Map[Terminal, Long],
                         terminalPaxSplits: Map[Terminal, SplitRatios],
                         terminalProcessingTimes: Map[Terminal, Map[PaxTypeAndQueue, Double]],
                         minMaxDesksByTerminalQueue24Hrs: Map[Terminal, Map[Queue, (List[Int], List[Int])]],
                         queueStatusProvider: QueueStatusProvider = QueueStatusProviders.QueuesAlwaysOpen,
                         fixedPointExamples: Seq[String] = Seq(),
                         hasActualDeskStats: Boolean = false,
                         eGateBankSizes: Map[Terminal, Iterable[Int]],
                         minutesToCrunch: Int = 1440,
                         crunchOffsetMinutes: Int = 0,
                         hasEstChox: Boolean = true,
                         forecastExportQueueOrder: List[Queue] = Queues.forecastExportQueueOrderSansFastTrack,
                         desksExportQueueOrder: List[Queue] = Queues.deskExportQueueOrderSansFastTrack,
                         contactEmail: Option[String] = None,
                         outOfHoursContactPhone: Option[String] = None,
                         nationalityBasedProcTimes: Map[String, Double] = ProcessingTimes.nationalityProcessingTimes,
                         role: Role,
                         cloneOfPortCode: Option[PortCode] = None,
                         terminalPaxTypeQueueAllocation: Map[Terminal, Map[PaxType, Seq[(Queue, Double)]]],
                         hasTransfer: Boolean = false,
                         maybeCiriumEstThresholdHours: Option[Int] = None,
                         maybeCiriumTaxiThresholdMinutes: Option[Int] = Option(20),
                         feedSources: Seq[FeedSource],
                         feedSourceMonitorExemptions: Seq[FeedSource] = Seq(),
                         desksByTerminal: Map[Terminal, Int],
                         queuePriority: List[Queue] = List(EeaDesk, NonEeaDesk, QueueDesk, FastTrack, EGate),
                         assumedAdultsPerChild: Double = 1.0
                        ) {
  def assertValid(): Unit = {
    queuesByTerminal.values.flatten.toSet
      .filterNot(_ == Transfer)
      .foreach {
        queue: Queue =>
          assert(slaByQueue.contains(queue), s"Missing sla for $queue @ $portCode")
      }
    queuesByTerminal.foreach {
      case (terminal, tQueues) =>
        assert(minMaxDesksByTerminalQueue24Hrs.contains(terminal), s"Missing min/max desks for terminal $terminal @ $portCode")
        tQueues
          .filterNot(_ == Transfer)
          .foreach {
            tQueue =>
              assert(minMaxDesksByTerminalQueue24Hrs(terminal).contains(tQueue), s"Missing min/max desks for $tQueue for terminal $terminal @ $portCode")
          }
    }
  }

  def minDesksByTerminalAndQueue24Hrs: Map[Terminal, Map[Queue, IndexedSeq[Int]]] = minMaxDesksByTerminalQueue24Hrs.mapValues(_.mapValues(_._1.toIndexedSeq))

  def maxDesksByTerminalAndQueue24Hrs: Map[Terminal, Map[Queue, IndexedSeq[Int]]] = minMaxDesksByTerminalQueue24Hrs.mapValues(_.mapValues(_._2.toIndexedSeq))

  def minDesksForTerminal24Hrs(tn: Terminal): Map[Queue, IndexedSeq[Int]] = minMaxDesksByTerminalQueue24Hrs.getOrElse(tn, Map()).mapValues(_._1.toIndexedSeq)

  def maxDesksForTerminal24Hrs(tn: Terminal): Map[Queue, IndexedSeq[Int]] = minMaxDesksByTerminalQueue24Hrs.getOrElse(tn, Map()).mapValues(_._2.toIndexedSeq)

  val terminals: Iterable[Terminal] = queuesByTerminal.keys

  val terminalSplitQueueTypes: Map[Terminal, Set[Queue]] = terminalPaxSplits.map {
    case (terminal, splitRatios) =>
      (terminal, splitRatios.splits.map(_.paxType.queueType).toSet)
  }

  def queueTypeSplitOrder(terminal: Terminal): List[Queue] = Queues.queueOrder.filter {
    q =>
      terminalSplitQueueTypes.getOrElse(terminal, Set()).contains(q)
  }

  def feedPortCode: PortCode = cloneOfPortCode.getOrElse(portCode)

  def nonTransferQueues(terminalName: Terminal): Seq[Queue] = queuesByTerminal(terminalName).collect {
    case queue if queue != Queues.Transfer => queue
  }
}

object AirportConfig {
  implicit val rwQueues: ReadWriter[SortedMap[Terminal, Seq[Queue]]] = readwriter[Map[Terminal, Seq[Queue]]].bimap[SortedMap[Terminal, Seq[Queue]]](
    sm => Map[Terminal, Seq[Queue]]() ++ sm,
    m => SortedMap[Terminal, Seq[Queue]]() ++ m
  )

  implicit val rw: ReadWriter[AirportConfig] = macroRW

  def desksByTerminalDefault(minMaxDesksByTerminalQueue: Map[Terminal, Map[Queue, (List[Int], List[Int])]])
                            (terminal: Terminal): List[Int] = minMaxDesksByTerminalQueue.getOrElse(terminal, Map())
    .filterKeys(_ != EGate)
    .map { case (_, (_, max)) => max }
    .reduce[List[Int]] {
      case (max1, max2) => max1.zip(max2).map { case (m1, m2) => m1 + m2 }
    }

  val defaultQueueStatusProvider: (Terminal, Queue, MillisSinceEpoch) => QueueStatus = (_, _, _) => Open
}

case class ContactDetails(supportEmail: Option[String], oohPhone: Option[String])

object ContactDetails {
  implicit val rw: ReadWriter[ContactDetails] = macroRW
}

case class OutOfHoursStatus(localTime: String, isOoh: Boolean)

object OutOfHoursStatus {
  implicit val rw: ReadWriter[OutOfHoursStatus] = macroRW
}

trait HasAirportConfig {
  val airportConfig: AirportConfig
}

object PaxTypesAndQueues {
  val eeaMachineReadableToDesk = PaxTypeAndQueue(PaxTypes.EeaMachineReadable, Queues.EeaDesk)
  val eeaChildToDesk = PaxTypeAndQueue(PaxTypes.EeaBelowEGateAge, Queues.EeaDesk)
  val eeaMachineReadableToEGate = PaxTypeAndQueue(PaxTypes.EeaMachineReadable, Queues.EGate)
  val eeaNonMachineReadableToDesk = PaxTypeAndQueue(PaxTypes.EeaNonMachineReadable, Queues.EeaDesk)
  val b5jsskToDesk = PaxTypeAndQueue(PaxTypes.B5JPlusNational, Queues.EeaDesk)
  val b5jsskChildToDesk = PaxTypeAndQueue(PaxTypes.B5JPlusNationalBelowEGateAge, Queues.EeaDesk)
  val b5jsskToEGate = PaxTypeAndQueue(PaxTypes.B5JPlusNational, Queues.EGate)
  val visaNationalToDesk = PaxTypeAndQueue(PaxTypes.VisaNational, Queues.NonEeaDesk)
  val nonVisaNationalToDesk = PaxTypeAndQueue(PaxTypes.NonVisaNational, Queues.NonEeaDesk)
  val visaNationalToFastTrack = PaxTypeAndQueue(PaxTypes.VisaNational, Queues.FastTrack)
  val transitToTransfer = PaxTypeAndQueue(PaxTypes.Transit, Queues.Transfer)
  val nonVisaNationalToFastTrack = PaxTypeAndQueue(PaxTypes.NonVisaNational, Queues.FastTrack)
  val undefinedToEea = PaxTypeAndQueue(PaxTypes.UndefinedPaxType, Queues.EeaDesk)
  val undefinedToNonEea = PaxTypeAndQueue(PaxTypes.UndefinedPaxType, Queues.NonEeaDesk)
  val undefinedToEgate = PaxTypeAndQueue(PaxTypes.UndefinedPaxType, Queues.EGate)
  val undefinedToFastTrack = PaxTypeAndQueue(PaxTypes.UndefinedPaxType, Queues.FastTrack)

  def cedatDisplayName: Map[PaxTypeAndQueue, String] = Map(
    eeaMachineReadableToEGate -> "eGates",
    eeaMachineReadableToDesk -> "EEA (Machine Readable)",
    eeaChildToDesk -> "EEA child to Desk",
    eeaNonMachineReadableToDesk -> "EEA (Non Machine Readable)",
    b5jsskToDesk -> "B5JSSK to Desk",
    b5jsskChildToDesk -> "B5JSSK child to Desk",
    b5jsskToEGate -> "B5JSSK to eGates",
    visaNationalToDesk -> "Non EEA (Visa)",
    nonVisaNationalToDesk -> "Non EEA (Non Visa)",
    visaNationalToFastTrack -> "Fast Track (Visa)",
    nonVisaNationalToFastTrack -> "Fast Track (Non Visa)",
    transitToTransfer -> "Transfer",
    undefinedToEea -> "EEA (Undefined)",
    undefinedToNonEea -> "Non EEA (Undefined)",
    undefinedToEgate -> "eGates (Undefined)",
    undefinedToEgate -> "eGates (Undefined)",
  )

  val inOrder = List(
    eeaMachineReadableToEGate, eeaMachineReadableToDesk, eeaNonMachineReadableToDesk, visaNationalToDesk, nonVisaNationalToDesk, visaNationalToFastTrack, nonVisaNationalToFastTrack)
}

case class PortCode(iata: String) extends Ordered[PortCode] {
  override def toString: String = iata

  override def compare(that: PortCode): Int = iata.compareTo(that.iata)

  def nonEmpty: Boolean = iata.nonEmpty

  lazy val isDomestic: Boolean = Ports.isDomestic(this)
  lazy val isCta: Boolean = Ports.isCta(this)
  lazy val isDomesticOrCta: Boolean = Ports.isDomesticOrCta(this)
}

object PortCode {
  implicit val rw: ReadWriter[PortCode] = macroRW
}

case class CarrierCode(code: String) {
  override def toString: String = code
}

object CarrierCode {
  implicit val rw: ReadWriter[CarrierCode] = macroRW
}

object AirportConfigs {

  import drt.shared.airportconfig._

  val allPorts: List[AirportConfigLike] = List(Bfs, Bhd, Bhx, Brs, Edi, Ema, Gla, Lcy, Lgw, Lhr, Lpl, Ltn, Man, Ncl, Pik, Stn, Test, Test2)
  val testPorts: List[AirportConfigLike] = List(Test, Test2)

  val allPortConfigs: List[AirportConfig] = allPorts.map(_.config)
  val testPortConfigs: List[AirportConfig] = testPorts.map(_.config)

  def portGroups: List[String] = allPortConfigs.filterNot(testPorts.contains).map(_.portCode.toString.toUpperCase).sorted

  val confByPort: Map[PortCode, AirportConfig] = allPortConfigs.map(c => (c.portCode, c)).toMap
}

trait AirportConfigLike {
  val config: AirportConfig
}

object AirportConfigDefaults {
  val defaultSlas: Map[Queue, Int] = Map(
    EeaDesk -> 20,
    EGate -> 25,
    NonEeaDesk -> 45
  )

  import PaxTypesAndQueues._

  val defaultPaxSplits = SplitRatios(
    SplitSources.TerminalAverage,
    SplitRatio(eeaMachineReadableToDesk, 0.1625),
    SplitRatio(eeaMachineReadableToEGate, 0.4875),
    SplitRatio(eeaNonMachineReadableToDesk, 0.1625),
    SplitRatio(visaNationalToDesk, 0.05),
    SplitRatio(nonVisaNationalToDesk, 0.05)
  )

  val defaultQueueRatios: Map[PaxType, Seq[(Queue, Double)]] = Map(
    EeaMachineReadable -> List(Queues.EGate -> 0.8, Queues.EeaDesk -> 0.2),
    EeaBelowEGateAge -> List(Queues.EeaDesk -> 1.0),
    EeaNonMachineReadable -> List(Queues.EeaDesk -> 1.0),
    NonVisaNational -> List(Queues.NonEeaDesk -> 1.0),
    VisaNational -> List(Queues.NonEeaDesk -> 1.0),
    B5JPlusNational -> List(Queues.EGate -> 0.6, Queues.EeaDesk -> 0.4),
    B5JPlusNationalBelowEGateAge -> List(Queues.EeaDesk -> 1)
  )

  val defaultProcessingTimes: Map[PaxTypeAndQueue, Double] = Map(
    eeaMachineReadableToDesk -> 20d / 60,
    eeaMachineReadableToEGate -> 35d / 60,
    eeaNonMachineReadableToDesk -> 50d / 60,
    visaNationalToDesk -> 90d / 60,
    nonVisaNationalToDesk -> 78d / 60
  )
}


When marriage reaches a threatening situation then it's obvious that you may not respond to any sort of help offered to you, to save your marriage. In this condition, ignoring the valuable advice given by the near once is also very common. Ultimately, you and your spouse will feel that our relationship has come to an end and there is no way left to save my marriage.
Couples being through this situation hurt themselves as well as their family. Here family members play a crucial role in saving a marriage; they will guide you towards the right direction. Come on now, let's face it, when spouses become heated you really don't think clearly.
I think family members should support each other, as iron sharpens iron, we all know that there is at least one marriage around you that has made it through the toughest of storms. So why learn from their wisdom? Family members can make you realize that this is not the end of your relationship.
Divorce not only affects the respective couple but also affect their family members. Support and valuable advice provided by parents, relatives and siblings sometimes do some miracle in saving a marriage. Why are we so quick to throw in the towel, divorce is only an option because we make it one.
Now, I am so closed-minded that I don't see that divorce has to be considered for some couples. Physical, mental or emotional abuse should absolutely be possible deal breakers. No one should have to subject themselves to sort of treatment from anyone.
I am talking about the arguments over who does more around the house, who has the better job or how you spend too much time with your friends. You may not be doing anything wrong when you're out. But the time spent out is time away from your family. Thirty minutes with family and 4 hours with the friends is not equal and not fair in my book.
But even this scenario does not mean that you're headed for divorce. Family first is a great rule of thumb to live by, let your family help when they can. It's usual that you may feel angry and disheartened but in this situation if you are hurting your family then ultimately you are hurting yourself, which is even more painful.
Instead, try to remain calm and quiet and handle the situation in a matured way. Family members can play a significant role here. Any of the matured family members can become a sounding board so that hurting couple can share their internal feelings and frustration. An individual who is very close with the couple can perform this role better.
There is nothing wrong with leaning on family but keep a healthy balance, obviously not everything has be shared. Marriage. Gift and Responsibility. Work and Grace. Marriage is one of God's greatest gifts but it is also one of the greatest responsibilities a person will share with his or her spouse.
It requires a great deal of work but at the same time it will be a wonderful source of God's grace. Marriage is one of life's deepest mysteries. How is it that committed relationships become engagements, engagements become marriages, and marriages deepen and bloom into lifelong, sacred bonds of support, honor, friendship, trust, and joy?
Two essential components of a healthy marriage are a committed spiritual life and a steadfast dedication to the growth of the spousal relationship. The couple should also nurture their relationship with God and develop a strong faith, because they will get closer to one another as they get closer to God. Enjoy your marriages and work out the rough edges, even if the rough edge is you.


text:
Viewers won't forget 'Rolling Thunder Revue,' even if Bob Dylan does
Rare exhibit of Jesuit artists' work in China displayed in Washington
Truly understanding Christ can transform Christians, author says
'Chasing the Moon' offers surprises in Apollo 11's story
Book describes 'triumph of beauty' of Catholic art
'Spider-Man: Far From Home' spins a snappy, substantial tale
Sister Imelda Catherine McGrail, O.S.F.
Sister Imelda Catherine McGrail, O.S.F., died on Oct. 21, 2008. She was 87. She was born in Ellengowan, Pa., and later graduated from Edgewood Park College in New York. After college, she worked as a teacher's aide and also worked with the elderly. She served in the Archdiocese of Philadelphia and the dioceses of Allentown and Trenton. In her leisure time she enjoyed reading. She later moved to the Assisi House in Aston, where she served in prayer ministry until her death. A funeral Mass was celebrated on Oct. 24. Burial followed at Our Lady of Angels Cemetery in Aston. She is survived by her sister-in-law, Betty, her niece, Peggy, a nephew, Francis, and her Franciscan family.
PREVIOUS: Deacon John Parker III dies at 74
NEXT: Father William A. Wright dies at age 71


Are you a prospective University of Mississippi premed student? Plan a visit.
Want to learn more about how MedEdits works with University of Mississippi premeds? Sign up for a FREE 15 minute advising session.