text:
Prevalence and location of L. monocytogenes contamination on beef carcasses after slaughter in Belgian slaughterhouses
Niels Demaître, Lieven De Zutter, Koen De Reu, Geertrui Rasschaert, Inge Van Damme, Annemie Geeraerd
Onderzoeksoutput: Bijdrage aan congres › C3: Congres - Meeting abstract
Introduction Despite the efforts already made by the sector, beef slaughterhouses are still confronted with the foodborne pathogen Listeria monocytogenes in the production environment and on carcasses. The presence of the pathogen on carcasses may result in contaminations of the meat which may lead to economic losses and a potential risk for public health. The bacterial contamination occurs as a result of pathogen transfer from the environment, human handlings (cutting) and/or contact with the skin. This study on the prevalence and location of L. monocytogenes on beef carcasses after slaughter should be the basis for a better understanding of the complex introduction, persistence and variable contamination sources and routes of this pathogen. In addition, the possibility of using an indicator organism for L. monocytogenes contamination was investigated. Material and methods Sampling of 60 carcasses was carried out in two beef slaughterhouses. Carcass locations assumed to have an increased risk for contamination based on literature knowledge were swabbed just after slaughter and before cooling. The following carcass locations (400 cm2 each) were sampled: pelvic duct, split surface of neck, inside throat region, hind leg, flank (medial side), brisket center, inside foreleg and shoulder region. Listeria spp. and L. monocytogenes were detected and enumerated according to ISO11290-1 and 2. Moreover, total aerobic bacteria and Enterobacteriaceae were quantified. Results Listeria spp. and L. monocytogenes were detected in 46% (219/480) and 14% (68/480) of the swab samples respectively. Sixty-two percent (95% confidence interval from 43% to 80%) of the carcasses were found L. monocytogenes positive for at least one of the eight locations; more specifically the figures were 73% and 50% for the two slaughterhouses. Among the different locations, the brisket center line and the inside throat region represented the highest frequencies (20% and 17% respectively) for L. monocytogenes contamination. The shoulder showed the lowest contamination frequency (8%). However, the contamination rate at the sampled locations was not significantly different (P>0.05). Across all samples, 4% had counts for Listeria spp. between -1.30 and -0.30 log10 CFU/cm2. In five samples, L. monocytogenes numbers exceeded the limit of enumeration (above -1.3 log10 CFU/cm2). Combining the results of three carcass sites (chest, inside throat region and split surface of neck) resulted in the detection of 73% of the L. monocytogenes positive carcasses. Statistical analysis showed that detection of L. monocytogenes was significantly correlated with the total aerobic bacteria (P<0.01). Discussion Our results indicate a much higher prevalence of L. monocytogenes on carcasses in the investigated Belgian abattoirs (62%) compared to other studies (1-3%). A possible explanation is the fact of sampling eight sample sites on the carcass, which increases detection while classically only one location is sampled. The high prevalence of this pathogen in Belgian beef plants highlights the need of identifying contamination sources and routes. Characterization of the pathogen, environmental sampling and a follow-up of the slaughter operations from single carcasses will be carried out for a better understanding of the contamination.
Gepubliceerd - 21-sep-2017
22nd Conference on Food Microbiology - Brussel, Brussel, België
Duur: 21-sep-2017 → 22-sep-2017
http://www.bsfm.be/Portals/56/Documents/2017_V06.pdf?ver=2017-05-22-090543-277
http://www.bsfm.be/
22nd Conference on Food Microbiology
Verkorte titel
BSFM
Internet adres
BSFM_poster_5!!Final published version, 1,34 MB
Demaître, N., De Zutter, L., De Reu, K., Rasschaert, G., Van Damme, I., & Geeraerd, A. (2017). Prevalence and location of L. monocytogenes contamination on beef carcasses after slaughter in Belgian slaughterhouses. 22nd Conference on Food Microbiology, Brussel, België.
Demaître, Niels ; De Zutter, Lieven ; De Reu, Koen ; Rasschaert, Geertrui ; Van Damme, Inge ; Geeraerd, Annemie. / Prevalence and location of L. monocytogenes contamination on beef carcasses after slaughter in Belgian slaughterhouses. 22nd Conference on Food Microbiology, Brussel, België.1 blz.
@conference{6273bb376b2f4935a0b96ea7e33b955c,
title = "Prevalence and location of L. monocytogenes contamination on beef carcasses after slaughter in Belgian slaughterhouses",
abstract = "Introduction Despite the efforts already made by the sector, beef slaughterhouses are still confronted with the foodborne pathogen Listeria monocytogenes in the production environment and on carcasses. The presence of the pathogen on carcasses may result in contaminations of the meat which may lead to economic losses and a potential risk for public health. The bacterial contamination occurs as a result of pathogen transfer from the environment, human handlings (cutting) and/or contact with the skin. This study on the prevalence and location of L. monocytogenes on beef carcasses after slaughter should be the basis for a better understanding of the complex introduction, persistence and variable contamination sources and routes of this pathogen. In addition, the possibility of using an indicator organism for L. monocytogenes contamination was investigated. Material and methods Sampling of 60 carcasses was carried out in two beef slaughterhouses. Carcass locations assumed to have an increased risk for contamination based on literature knowledge were swabbed just after slaughter and before cooling. The following carcass locations (400 cm2 each) were sampled: pelvic duct, split surface of neck, inside throat region, hind leg, flank (medial side), brisket center, inside foreleg and shoulder region. Listeria spp. and L. monocytogenes were detected and enumerated according to ISO11290-1 and 2. Moreover, total aerobic bacteria and Enterobacteriaceae were quantified. Results Listeria spp. and L. monocytogenes were detected in 46% (219/480) and 14% (68/480) of the swab samples respectively. Sixty-two percent (95% confidence interval from 43% to 80%) of the carcasses were found L. monocytogenes positive for at least one of the eight locations; more specifically the figures were 73% and 50% for the two slaughterhouses. Among the different locations, the brisket center line and the inside throat region represented the highest frequencies (20% and 17% respectively) for L. monocytogenes contamination. The shoulder showed the lowest contamination frequency (8%). However, the contamination rate at the sampled locations was not significantly different (P>0.05). Across all samples, 4% had counts for Listeria spp. between -1.30 and -0.30 log10 CFU/cm2. In five samples, L. monocytogenes numbers exceeded the limit of enumeration (above -1.3 log10 CFU/cm2). Combining the results of three carcass sites (chest, inside throat region and split surface of neck) resulted in the detection of 73% of the L. monocytogenes positive carcasses. Statistical analysis showed that detection of L. monocytogenes was significantly correlated with the total aerobic bacteria (P<0.01). Discussion Our results indicate a much higher prevalence of L. monocytogenes on carcasses in the investigated Belgian abattoirs (62%) compared to other studies (1-3%). A possible explanation is the fact of sampling eight sample sites on the carcass, which increases detection while classically only one location is sampled. The high prevalence of this pathogen in Belgian beef plants highlights the need of identifying contamination sources and routes. Characterization of the pathogen, environmental sampling and a follow-up of the slaughter operations from single carcasses will be carried out for a better understanding of the contamination. ",
author = "Niels Dema{\^i}tre and {De Zutter}, Lieven and {De Reu}, Koen and Geertrui Rasschaert and {Van Damme}, Inge and Annemie Geeraerd",
url = "http://www.bsfm.be/Portals/56/Documents/2017_V06.pdf?ver=2017-05-22-090543-277, http://www.bsfm.be/, http://www.bsfm.be/",
Demaître, N, De Zutter, L, De Reu, K, Rasschaert, G, Van Damme, I & Geeraerd, A 2017, 'Prevalence and location of L. monocytogenes contamination on beef carcasses after slaughter in Belgian slaughterhouses', 22nd Conference on Food Microbiology, Brussel, België, 21/09/17 - 22/09/17.
Prevalence and location of L. monocytogenes contamination on beef carcasses after slaughter in Belgian slaughterhouses. / Demaître, Niels; De Zutter, Lieven; De Reu, Koen; Rasschaert, Geertrui; Van Damme, Inge; Geeraerd, Annemie.
2017. 22nd Conference on Food Microbiology, Brussel, België.
T1 - Prevalence and location of L. monocytogenes contamination on beef carcasses after slaughter in Belgian slaughterhouses
AU - Demaître, Niels
AU - De Zutter, Lieven
AU - De Reu, Koen
AU - Rasschaert, Geertrui
AU - Van Damme, Inge
AU - Geeraerd, Annemie
N2 - Introduction Despite the efforts already made by the sector, beef slaughterhouses are still confronted with the foodborne pathogen Listeria monocytogenes in the production environment and on carcasses. The presence of the pathogen on carcasses may result in contaminations of the meat which may lead to economic losses and a potential risk for public health. The bacterial contamination occurs as a result of pathogen transfer from the environment, human handlings (cutting) and/or contact with the skin. This study on the prevalence and location of L. monocytogenes on beef carcasses after slaughter should be the basis for a better understanding of the complex introduction, persistence and variable contamination sources and routes of this pathogen. In addition, the possibility of using an indicator organism for L. monocytogenes contamination was investigated. Material and methods Sampling of 60 carcasses was carried out in two beef slaughterhouses. Carcass locations assumed to have an increased risk for contamination based on literature knowledge were swabbed just after slaughter and before cooling. The following carcass locations (400 cm2 each) were sampled: pelvic duct, split surface of neck, inside throat region, hind leg, flank (medial side), brisket center, inside foreleg and shoulder region. Listeria spp. and L. monocytogenes were detected and enumerated according to ISO11290-1 and 2. Moreover, total aerobic bacteria and Enterobacteriaceae were quantified. Results Listeria spp. and L. monocytogenes were detected in 46% (219/480) and 14% (68/480) of the swab samples respectively. Sixty-two percent (95% confidence interval from 43% to 80%) of the carcasses were found L. monocytogenes positive for at least one of the eight locations; more specifically the figures were 73% and 50% for the two slaughterhouses. Among the different locations, the brisket center line and the inside throat region represented the highest frequencies (20% and 17% respectively) for L. monocytogenes contamination. The shoulder showed the lowest contamination frequency (8%). However, the contamination rate at the sampled locations was not significantly different (P>0.05). Across all samples, 4% had counts for Listeria spp. between -1.30 and -0.30 log10 CFU/cm2. In five samples, L. monocytogenes numbers exceeded the limit of enumeration (above -1.3 log10 CFU/cm2). Combining the results of three carcass sites (chest, inside throat region and split surface of neck) resulted in the detection of 73% of the L. monocytogenes positive carcasses. Statistical analysis showed that detection of L. monocytogenes was significantly correlated with the total aerobic bacteria (P<0.01). Discussion Our results indicate a much higher prevalence of L. monocytogenes on carcasses in the investigated Belgian abattoirs (62%) compared to other studies (1-3%). A possible explanation is the fact of sampling eight sample sites on the carcass, which increases detection while classically only one location is sampled. The high prevalence of this pathogen in Belgian beef plants highlights the need of identifying contamination sources and routes. Characterization of the pathogen, environmental sampling and a follow-up of the slaughter operations from single carcasses will be carried out for a better understanding of the contamination.
AB - Introduction Despite the efforts already made by the sector, beef slaughterhouses are still confronted with the foodborne pathogen Listeria monocytogenes in the production environment and on carcasses. The presence of the pathogen on carcasses may result in contaminations of the meat which may lead to economic losses and a potential risk for public health. The bacterial contamination occurs as a result of pathogen transfer from the environment, human handlings (cutting) and/or contact with the skin. This study on the prevalence and location of L. monocytogenes on beef carcasses after slaughter should be the basis for a better understanding of the complex introduction, persistence and variable contamination sources and routes of this pathogen. In addition, the possibility of using an indicator organism for L. monocytogenes contamination was investigated. Material and methods Sampling of 60 carcasses was carried out in two beef slaughterhouses. Carcass locations assumed to have an increased risk for contamination based on literature knowledge were swabbed just after slaughter and before cooling. The following carcass locations (400 cm2 each) were sampled: pelvic duct, split surface of neck, inside throat region, hind leg, flank (medial side), brisket center, inside foreleg and shoulder region. Listeria spp. and L. monocytogenes were detected and enumerated according to ISO11290-1 and 2. Moreover, total aerobic bacteria and Enterobacteriaceae were quantified. Results Listeria spp. and L. monocytogenes were detected in 46% (219/480) and 14% (68/480) of the swab samples respectively. Sixty-two percent (95% confidence interval from 43% to 80%) of the carcasses were found L. monocytogenes positive for at least one of the eight locations; more specifically the figures were 73% and 50% for the two slaughterhouses. Among the different locations, the brisket center line and the inside throat region represented the highest frequencies (20% and 17% respectively) for L. monocytogenes contamination. The shoulder showed the lowest contamination frequency (8%). However, the contamination rate at the sampled locations was not significantly different (P>0.05). Across all samples, 4% had counts for Listeria spp. between -1.30 and -0.30 log10 CFU/cm2. In five samples, L. monocytogenes numbers exceeded the limit of enumeration (above -1.3 log10 CFU/cm2). Combining the results of three carcass sites (chest, inside throat region and split surface of neck) resulted in the detection of 73% of the L. monocytogenes positive carcasses. Statistical analysis showed that detection of L. monocytogenes was significantly correlated with the total aerobic bacteria (P<0.01). Discussion Our results indicate a much higher prevalence of L. monocytogenes on carcasses in the investigated Belgian abattoirs (62%) compared to other studies (1-3%). A possible explanation is the fact of sampling eight sample sites on the carcass, which increases detection while classically only one location is sampled. The high prevalence of this pathogen in Belgian beef plants highlights the need of identifying contamination sources and routes. Characterization of the pathogen, environmental sampling and a follow-up of the slaughter operations from single carcasses will be carried out for a better understanding of the contamination.
M3 - C3: Conference - meeting abstract
Demaître N, De Zutter L, De Reu K, Rasschaert G, Van Damme I, Geeraerd A. Prevalence and location of L. monocytogenes contamination on beef carcasses after slaughter in Belgian slaughterhouses. 2017. 22nd Conference on Food Microbiology, Brussel, België.

redpajama_set_name: RedPajamaCommonCrawl


text:
Home / CD / Brother Ali - Us, CD
Brother Ali - Us, CD
Default - $ 11.98
SKU: RSE0113-2CD
Brother Ali's last album, the critically acclaimed, The Undisputed Truth, was a landmark in hip-hop, an album that carried weight equally with critics and fans alike, an album of bold statements and bolder beats, politically and socially aware without being preachy. His new album, Us (Rhymesayers Entertainment), is a progression that will make Brother Ali one of the most enduring figures in hip-hop; while still aware, Ali has turned his gaze inward, and started examining the human condition from the outside in. A profound personal glimpse into a vulnerability seldom seen or heard in music, Us touches on the strengths and flaws of the human condition, exploring drug abuse, divorce, homophobia and many more topics that most people are scared to touch in their own lives, much less on an album for the world to see.
As with previous endeavors, the beats here are courtesy of Ant, whose production work seems to be getting more soulful and lush by the minute. The guest appearances only accentuate Brother Ali's strengths, with Chuck D, Freeway, Joell Ortiz and Stokley Williams of Mint Condition making strong appearances.
1. Brothers and Sisters (feat. Chuck D / Stokley Williams)
2. The Preacher
3. Crown Jewel
4. House Keys
5. Fresh Air
6. Tight Rope
7. Breakin' Dawn
8. The Travelers
9. Babygirl
10. Round Here
11. Bad Fufucker Pt. II
12. Best At It (feat. Freeway / Joell Ortiz)
13. Games
14. Slippin' Away
15. You Say (Puppy Love)


text:
[Update: Not live] Android Auto redesign with dark theme begins rolling out
- Jun. 25th 2019 1:55 pm PT
Just before I/O 2019, Google unveiled a complete overhaul of Android in cars. Featuring a dark theme, persistent media controls, and new navigation bar, the Android Auto redesign is already live for some.
Google promised the revamp was coming this summer, with the Android Auto redesign live for one UK user today. According to Reddit (via Android Police), the mobile companion app received an update to version 4.4.592344. After being prompted to unplug/replug from the car, the new look launched.
Many users have sideloaded the new version, but it does not automatically enable the new look. Our previous APK Insights, noted a "Try the new Android Auto" prompt that should turn on the design.
Update 6/26: In a statement to AP, Google says the Android Auto redesign is not live. However, it's still scheduled for this summer.
The new Android Auto starts with a revamped navigation bar that features a home button at the very left. Depending on the context, media controls, turn-by-turn directions, or incoming call buttons appear next.
Next/last buttons for songs can be swapped out with forward/rewind in the case of podcasts and audiobooks, while play/pause is at the center. A shortcut at the left allows you to jump into the application to browse media. When navigating, turn directions appear along with distance remaining and street name.
Rounding out the nav bar is an Assistant microphone for voice commands and a bell icon. The latter opens a new notification center that lists past calls and messages, while big alerts pop-up from the top with buttons to take action.
One of the biggest improvements is a new dark theme with colorful accents and easier to read fonts. Helping improve visibility, it more closely matches your car's interior. Elsewhere, there is a new launcher with recents up top, and all other applications below in a standard grid. Upon start-up, Android Auto can resume media playback and show your preferred navigation client.
On vehicles with wider screens, the new Auto maximizes your display to show directions, music controls, and ongoing calls at the same time. This Android Auto redesign will be live on all compatible vehicles.
Android Auto is an extension of the Android platform which is highly optimized for use in a moving vehicle. The system is designed to cut down on the number of interactions you'll have with your smartphone so you can keep your eyes on the road.


So I decided to do a sponge pastel because I haven't been able to use my random bag of cosmetics sponges for a mani for quite some time. The last time I sponged was on Halloween for my Lindsey Lohan costume. Anyway, I like doing this and my technique that I engineered came back fairly quickly. I sponged the colors and then once I was done, I went back and re-sponged the areas that were light or missing color. This is also the third installment of my pastel art for the Nail Challenge Collaborative group that I participate in! I also must say that I absolutely love Kristen as a pastel!!
So I have also been playing around with different lighting settings. The picture above I used a different light setting. I think it's too harsh for me. I put 2 comparison pics below. Which one do you like the best? Let me know what you think!!


text:
DYING WITH DIGNITY
Man investigated for murder after 'helping sick wife die' 23 years ago
The ex-army nurse says he will deal with 'whatever comes up' as a result of spouse's decision to end her life
Tony Allen-Mills
Sunday January 09 2022, 12.01am, The Sunday Times
Christine and Douglas Laing: the pain from cancer became too much to bear
A former army nurse who claimed to have helped his cancer-stricken wife to die 23 years ago is at the heart of a murder inquiry by Devon and Cornwall police.
The investigation began after Douglas Laing, 71, wrote to The Sunday Times in October describing how he injected his wife, Christine, also a qualified nurse, with a lethal combination of drugs in 1998. She told her husband that she was ready to die when the pain of her ovarian cancer, which was terminal, became too much to bear.
In a letter published on October 31, Laing, from Exeter, wrote: "I'm in tears as I recall that conversation. I have struggled with what I did and only recently spoken to close family about it. I


text:
Invalid/wrong e-mail address, password or captcha
Sign in with Facebook account Sign in with Google account
Please provide the 6 digit two factor authentication code!
To generate a new password, please provide the email address with which you have registered to our portal before.
After clicking the "Send" button, we will send the information about generating a new password to the specified email address.
Please check your inbox! We have sent the information necessary for generating a new password to the specified email address.
An error has occured. There is no user in the system with the specified e-mail address.
Please provide the email address with which you have registered to our portal before.
Two-factor reset email successfully sent.
Failed to send the reset email.
Equity indices
Mortgage Bond Indices
Corporate Bond Indices
Cash Market
ETF-s
Compensation note
Derivatives market
Stock and stock index futures
Currency futures
Interest rate futures
Stock and stock index options
Grain futures
Grain options
Spot grain market
BETa Market
Search certificates
Search derivative instrument
Budapest Commodity Exchange historical trading data
Market Making
MiFID II DATA
Products by Markets
Indices (BUX, BUMIX, CETOP, BMBX Indices, BSECB Indices)
Debt Securities Section
Derivatives Section
Commodities Section
Equities Section
BSE Rules
Key information documents (KID)
Clearing and settlement
Trading information
Trading calendar 2022
Volatility parameters
BSE news and releases
Services for medium sized companies
BÉT50 - Fifty Prosperous Hungarian Companies
BÉT50 Club
National Stock Exchange Development Fund
BSE Xbond
BSE Xtend - Stock exchange for medium-sized companies
Research on BSE issuers
Issuers News
Corporate Governance Recommendations
Corporate knowledge center
Traders and Brokers
Guide to Membership
General Terms of Membership
Acquiring exchange membership and trading licence
Membership application procedure
Traders registration
Research by members
Turnover by Members
Fees Related to Exchange Membership
T7 Trading system
Vendor Knowledge Center
Technical Guidelines
For investors, end-users
Data services - FAQ
Data services - contacts
MiFID II. compliance
About Budapest Stock Exchange
BSE Strategy 2016-2020
History of the Exchange
Best of BSE
BSE logo
V4+CEE Capital Markets Conference 2019
BSE ESG
ESG Guide
ESG Consultation 2020
Hidden treasures of the Hungarian economy - 50 interesting and successful companies in 2017
The fifty companies - Analysis
BÉT50 companies - 2017
BÉT50 - Fifty Prosperous Hungarian Companies - 2017
Launched into brand building - Detki Keksz Llc.
Detki biscuits have been produced in Halmajugra for thirty years. The revenues generated and their volume have been increasing continuously.
All of the owners contributed some "ingredients" to help launch Detki Keksz in 1983: the Sweets Industry Company donated an old machine, the Detki agricultural cooperative gave them the lot, while the Heves County Baking Industry Company provided them with money and staff. The first manager of the original factory, which produced 3000 tons of biscuits a year, was Kálmán Koósa, who as a jack-of-all-trades, lead the company for nine years. When the economic association was turned into a limited liability company in 1992, he passed the torch to his wife, Olga Pavlova. They met in Moscow, where both were studying food industry mechanical engineering. Pavlova maintains that all she has is the degree, as over the years, she mostly focused on management and commercial aspects. Detki Keksz is now owned in equal shares by three families, who meet once a month. Currently, 95% of the 10,000 tons of biscuits produced annually on average are sold on the Hungarian market. With this, the company produces a great part of the national amount of approximately 24,000 tons.
The company's first major equipment purchase was in 1999. In 2007, they won a grant to set up their company governance system, which is when Péter Koósa, son of the Russian CEO, joined the company as a project manager. "Since then, he has learned about all aspects of the company and has introduced many innovations", explains Olga Pavlova. Today, the company is managed by mother and son together. "What moves the company forward is know-how, dynamism and dedication, as well as achievements. It is great to see my son proving himself in more and more ways and always setting new goals." Péter Koósa says that he wraps up each day with reviewing the positives, the negatives and potential improvements.
Although they launched into intensive brand building last year, they are defending themselves against cheap foreign products flooding the market by introducing "B" brands and broadening their product range. In addition to products aimed at children, they are also developing sugar-free and gluten-fee products as well as high added-value products. A plain biscuit is an-all time favourite in Hungary, accounting for 65% of total production, with 30% sold in a ground-up form. This was the first product of Detki Keksz which was copied by its largest rival, a multinational company. "Now I regret not having registered it back then", notes the company owner. In all their simplicity, plain biscuits are a Hungarian specialty and are ideal for young children or for digestive problems. The company first produced house-brand household biscuits for the Profi food store chain, which has since gone out of business.
They were hesitant about entering this market, but they did not want to lose the potential turnover from this segment. Looking back, they made the right decision: today house brands make up 38% of the total sweet biscuit production, produced in a large part by Detki. As part of their brand building efforts, they switched to lilac as a colour for the packaging of their branded products, because it was a colour none of their competitors were using. They tripled their marketing expenditures and added a marketing specialist to their team. Meanwhile, the size of their plant was expanded by 3400 square metres in 2012. Though it also meant a significant increase in their warehousing capacities, this has since proven to be insufficient, and thus they have been forced to rent a warehouse again since 2013. In the same year, they bought a 1.3 million EUR oven, three packaging machines and one dipping machine. Over the last seven years, they have made HUF 3.2 billion of investments, of which 680 million was obtained through EU funding. "It was in the year 2012 that we decided that the company had enough capital to launch a series of investments. Our aim is to invest all of our profit", stated Péter Koósa. More developments followed in the plant equipped with new machinery (they only have one old oven that still needs to be replaced):
In 2014, they launched an innovative product, cracker chips, which uses a new technology – surface flavouring – to give them a pleasant taste despite a low salt content. Last year, processes were further mechanised to the point where even boxing is partly automatized. A related innovation of theirs, which can be used to reduce the fluctuations in volume of the finished product, was funded from own capital and credit. The HUF 500-600 million developments planned over the next year and a half are designed to increase efficiency and automatization. Because of their strong financial position, they will rely mostly on grants and only to a small degree on credit.
Detki Keksz also aims to strengthen their employer brand. As Péter Koósa puts it, "In addition to a competitive salary, we also have an incentive system based on quality and performance, as well as a good benefits and bonus package – even so, it is hard to find good staff, people who are willing to give their best, like in the old days". Currently, they have a staff of around 150, and most of them are shuttled by a company bus over a distance of up to 60 or 70 kilometres.
Despite the 3% growth of the entire biscuit market last year, the company's good revenues were offset by an increase in wages, the prices of ingredients and packaging materials, as wells as a drop in consumer prices, as reflected by their 2016 figures. However, solid growth is anticipated this year in both volume and revenues.
Labels: BÉT502017Detki Keksz
See our Twitter
BUX, BUMIX in real-time, other data delayed by 15 minutes!
© Budapest Stock Exchange 2019
Read our policy here


Need help with #iMessage that is not working, showing errors, or having some trouble with iMessage activation on your #Apple iPhone 6s (#iPhone6s)? If so, then this content might be able to help. Read on to learn why iMessage will encounter errors or is not working as it should on your iPhone and what needs to be done in order to get it fixed. For starters, iMessage is a popular messaging platform patented by Apple for use on various types of iOS devices like iPhones and iPads.
You can use Messages to send texts, photos, videos, and audio messages with your iPhone or other iDevices. With the latest iOS 10 platform, you can personalize your messages with animated effects, iMessages apps, and other cool new features within the Messages app. But that is if and only if everything works well with both the Messages app and the iMessage. Just like other apps, the Messages app might show some random errors or experience down times due to certain factors. During these times, you would encounter problems like unable to send or receive messages, cannot forward a message, or use any other features within the messaging application. And so you might ask, why do these things happen or what could possibly cause iMessage to encounter errors or problems on your iPhone 6s?
There are many factors that can adversely affect the advanced messaging functions of your iPhone, including iMessage.
Majority of the reported issues were tied to a network problem. In order to use iMessage, your iPhone has to have an active and stable Wi-Fi or cellular data connection. That being said, messaging features including iMessage will not work as it should with the presence of network problems like no connectivity. Network problems can occur for several reasons including account issues, scheduled network maintenance, network system outages, as well as improper network settings configuration on your device. In this case, you will need to deal with the transpiring network issue(s) first in order to get iMessage back up and running flawlessly on your iPhone 6s.
Software glitches, corrupted apps or files can also cause problems to occur while using iMessage on your iPhone. This is usually the case when you happened to download or install new apps that contain some bugs or added some corrupted files or contents into your device.
There are also other cases where users have encountered problems or errors with iMessage following an implementation of minor or major software update on their iPhone. Apparently in this case, the software update is to blame. Post-update issues including those affecting the iMessage functions on the iPhone can be rectified by some temporary workarounds while waiting for Apple to release an official fix patch.
Meanwhile, some users who have encountered problems with iMessage activation as manifested with the 'Waiting for activation' prompt were able to fix it by correcting the date and time settings on their device. It turns out that incorrect date and time can hinder the completion of iMessage activation process. So if you are seeing the same alert message while attempting to activate iMessage on your iPhone 6s, you might as well consider checking the date and time settings and ensure that everything is configured correctly.
In worst case scenarios, iMessage may not be working properly due to existing hardware problems on the iPhone. For example, if certain components on your iPhone 6s, particularly those parts that are responsible for keeping up the iPhone's network functions are damaged. As a result, iPhone features that require network to function might as well be affected.
You should consider seeking for professional aid especially if the symptoms started to show after an incident of dropping or exposure to liquid occurred on your device. There is a higher chance that your iPhone has accumulated some damage to certain components and thereby affecting its messaging functions.
For iMessage problems or errors that are software-related, you can try performing some recommended workarounds and potential solutions enumerated below. Be sure to test iMessage on your iPhone 6s after completing each step to see if the problem is already fixed. Otherwise, proceed to the next applicable workaround(s) or solutions available.
If necessary, update your iPhone to the latest version of iOS wirelessly or using iTunes. Software updates are offered to optimize device functions. The latest iOS version contains several enhancements to your iPhone features including iMessage. So in the case where some iMessage features are not properly working, a software upgrade might just be the thing you need.
To check for available software updates, head over to your iPhone Settings-> General-> Software Update. Should you opt to continue and update your iPhone wirelessly, plug your device into power and connect to the Internet via Wi-Fi so as to proceed with the iOS download and installation. After updating iOS, check and see if iMessage is already working fine on your iPhone 6s.
There are times when some features of your iPhone like the iMessage will not work properly as carrier settings needed some updates. To check and update your carrier settings on your iPhone 6s, head over to Settings-> General-> About, and then look next to Carrier section, to check the current version of carrier settings. You will also see an option to update your carrier settings if an update is available. Make sure your iPhone is connected to a Wi-Fi or cellular network to proceed with carriers settings update download and installation. In case you changed or inserted a new SIM card into your iPhone like when you switch between carriers, you would need to download the carrier settings for your new carrier.
A cellular data or Wi-Fi connection is necessary for you to send a message as iMessage or MMS. Thus, you should ensure no connectivity problems are transpiring on your device beforehand. Otherwise, you will have to deal with the network issue so as to get iMessage working fine on your device afterwards. Also ensure that the type of message you are trying to send like MMS or SMS is supported by your carrier. In case you are attempting to send group MMS messages on your iPhone 6s, you will need to turn on the MMS Messaging feature or Group Messaging option on your iPhone. Contact your carrier if you are not seeing this option on your iPhone 6s.
Sometimes, you won't be able to send a message simply because the recipient's details are incorrect or invalid.
Errors and problems can occur while using iMessage due to incorrect set up of the iMessage feature on the phone. To check and ensure everything is properly set, go to your iPhone Settings-> Messages, and if necessary, toggle the iMessage switch to enable the feature.
In order for iMessage to work properly, you also have to make sure that the Apple ID or phone number set up for your device is listed in the Send & Receive section on the Messages app settings.
Navigate to Settings-> Messages-> Send & Receive.
Tap the option to Use Your Apple ID for iMessage.
If necessary, enter or select your current phone number and Apple ID under the You Can Be Reached By iMessage At section.
Toggle the iMessage switch to disable or turn it off.
Reset network settings by going to Settings-> General-> Reset-> Reset Network Settings. Please note though that this process will erase your current network settings including network password and other credentials. That being said, be sure to backup all essential information before you begin.
Wait for the network settings reset to complete and then reboot your iPhone.
Once everything is done with the network reset, go to Settings-> Messages, and then toggle the iMessage switch to enable it again.
Perform a test message with iMessage and see what happens. Hopefully, you'll get everything working with your iPhone 6s iMessage after completing the steps.
Below are potential solutions you can use to specific instances when iMessage issues occur on your iPhone 6s. Just select which methods are most likely applicable to your current situation.
Turn on the option to Set Automatically. This will automatically set your date and time based on your time zone.
Alternatively, you can change each setting instead of using the Set Automatically option. To do so, head over to Settings-> General-> Date & Time-> turn off Set Automatically-> change the time zone or date and time manually.
To change the time zone, tap Time Zone and enter a city with the time zone that you need.
To change the date and time on your iPhone 6s, tap the date icon.
To check if your iPhone is showing the correct time zone, head over to Settings-> General-> Date & Time-> Time Zone menu.
Manual adjustments to time settings to change app behaviour like game timers are not recommended.
On the Message screen, toggle the iMessage switch to turn it OFF and then back ON.
Now create a test message using iMessage to see if it is already working fine. Otherwise, try other applicable solutions.
Tap on the red exclamation point.
Tap the option to Try Again.
Wait for your iPhone to resend the message.
If you still cannot send the message, tap the red exclamation point again, and then tap the option to Send as Text Message instead. Please note though that selecting this option may cost you some extra messaging rates. For more information, contact your carrier first.
Locate the conversation or group conversation you want to delete.
Swipe left over the desired conversation, and then tap the option to Delete.
Once the conversation has been deleted, start a new one.
Enter the phone number or email addresses of your contacts (recipients).
Compose a new message and then tap Send.
You will no longer be able to recover a conversation once you have deleted it. That being said, you can take a screenshot of the parts of a conversation you want to save.
To save an attachment in a conversation, touch and hold the attachment, tap More, and then tap Save.
Navigate to Settings-> General-> Keyboard menus of your iPhone 6s.
Tap the option to Add New Keyboard.
Tap Emoji to enable emoji keyboard on your iPhone.
Now open the Messages app and see if the emoji keyboard is already available.
If you keep getting unwanted iMessages on your iPhone 6s, blocking the sender's phone number or filtering messages on your iPhone can help. Your iPhone's iOS allows you to block unwanted contacts and phone numbers as well as filter iMessages from unknown senders. You can also report iMessages that look like spam or junk, whenever needed.
Blocking a phone number or contact will not affect the entire voicemail function of your iPhone. This denotes that the person you blocked can still leave a voicemail but you won't get a notification. Messages will not be delivered and the contact will also not receive a notification that the call or message was blocked.
Scroll to and toggle the switch next to Filter Unknown Senders.
After that, you will see a new tab for Unknown Senders in Messages but you won't get notifications for these iMessages.
If none of these methods is able to fix your iPhone 6s iMessage problem or errors, then it's time to contact your carrier or Apple Support to escalate the problem and seek further support or other recommendations.


Stephen Gallacher heaped praise on his 18-year-old son and caddie Jack after claiming a first European Tour win in five years with a dramatic victory in the Hero Indian Open.
The 44-year-old looked to have killed off his title hopes after running up a quadruple-bogey 8 at the seventh hole on the notoriously-difficult Gary Player-designed course at DLF Golf & Country Club in New Delhi.
However, he regrouped to cover the remaining 11 holes in a brilliant five-under-par for a closing 71 and a nine-under-par 279 total.
After finishing birdie-birdie, Gallacher won by a shot from Japan's Masahiro Kawamura, with Spaniard Jorge Campillo one further back after a closing 67.
American Julian Suri, the overnight leader, ended up in joint-fourth on six-under after he took an 8 at the par-4 14th when he was three shots clear of the field.
It is Gallacher's fourth European Tour title triumph but first since he successfully defended the Omega Dubai Desert Classic in 2014, a win that helped him play in the Ryder Cup later that year at Gleneagles.
"I got off to a ropey start and then took 5 off the tee at seven, where I just hit two poor shots, but I stood on the eighth tee and I thought, 'I am only five behind here'," he told Sky Sports Golf.
Birdies at the ninth, 10th, 11th 12th and 15th helped repair that damage from the seventh and he was tied for the lead with three holes to play.
He then made a solid par at the short 16th, hit a brilliant approach at the 17th then followed a peach of a drive following a lengthy wait on the last tee with an equally impressive iron shot into the par-5 18th.
"I finished it off great," added Gallacher, smiling. "It was not until I saw the board on 16 that I saw that I was tied for the lead.
"At 16, the wind comes off the right and you're just trying to get it pin-high to the left, which I did, then my second second into 17 was probably the best shot I've for years.
"I was right in between clubs and I just gripped down a little 7-iron and managed to put it to six feet.
Jack, a mad-keen golfer himself, started caddying for his dad last season and Gallacher admitted it had been a special day having him at his side in the heat of battle.
"It was brilliant having Jack on the bag and he's great, as well," he said. "He's a good caddie. A top lad. He's quite chilled, so nothing really bothers him.


text:
Rooms for rent Greece
Rooms for rent Corfu
Rooms for rent Palaiokastritsa
Rooms for Rent in Palaiokastritsa
Rooms for Rent Palaiokastritsa, ads of Rooms for Rent Palaiokastritsa with reviews and photos, contact owners direct, rooms for students, expats and professionals. Advertise for free!.
Othonoi Premium Land for sale Othonoi, Othonoi, Corfu
m² 2400
Othonoi Premium Land for sale. Land Area: 2400 m2 Can I built there? : Yes, up to 400m2 Location: 200 meters from the sea and the village center View: panoramic view Its own road.
Stavros Apartments stavros apartments kontokali, Corfu, Corfu
Stavros Apartments. About Us: Stavros Apartments is a small family run business where you can feel just like home. Set amidst a pleasant surrounding, the apartments are located in Kontokali, next to the famous Marina of Gouvia, in the northern part of Corfu, just 7 km away from the town.
Kitchen fully equiped
500sq.m land, 2 km from the beach, 12 km from Town Kato Korakiana, Feakon, Corfu
500sq.m land, 2 km from the beach, 12 km from Town. A land of 500 sq.m. in the village of Agia Eleni - Kato Korakiana, 2 km from Dassia beach and 12 km from Corfu town. Within the building plot there is currently a very old, traditional, two storey stone house of 70 square meters, which carries the old family coat of arms. It can either be renovated or demolished and build a new home.


In a recent report, it is was stated that Researchers have finally identified a compound which disables the sperm's ability to swim, ergo limiting the fertility without causing any physical side effects.
The compound called EP055 affects the mobility of sperm, and was successful in tests with monkeys, suggesting a "male contraceptive pill" could be on the way.
In a study with monkeys, researchers found EP055 binds to sperm proteins and slows their mobility. The findings were published on Friday in the journal PLOS ONE.
Currently, condoms and surgical vasectomy are the only safe forms of birth control currently available for men.
There are hormonal drugs in clinical trials that target the production of sperm, but these affect the natural hormones in men much like female contraceptives affect hormones in women.
During the study, 30 hours following a high-dose intravenous infusion of EP055 in male monkeys, the researchers found no indication of normal sperm motility. Further, no physical side effects were observed.
"At 18 days post-infusion, all macaques showed signs of complete recovery," said study co-investigator Mary Zelinski from Oregon National Primate Research Center at Oregon Health and Science University in the US.
"Simply put, the compound turns-off the sperm's ability to swim, significantly limiting fertilization capabilities," said lead investigator Michael O'Rand, a retired professor in University of North Carolina at Chapel Hill School of Medicine and President/CEO of Eppin Pharma Inc.
"This makes EP055 an ideal candidate for non-hormonal male contraception," O'Rand added.


text:
Q: How to evolve an ASP.NET Core Minimal APIs to a full controller model My teacher told today that Minimal API allow start with minimal code and evolve the application with time in a way you end having a Controller folder and automatic routing as an traditional ASP.NET Coree MVC app/API.
I loved the idea of fast starting development with a simple file mapping all routes in so simple way but would like a way to convert it to a full routing when it becomes cluttered or when development becomes more serious or client/teacher ask for it without coding everything from scratch again.
Initially I just want a simple way to have Postgres Migrations, my connection string in appsettings.json, Swagger, JWT+SocialLogin and would be great have my models on a separate project too.
I was searching about and just found a Microsoft article, but nothing about turning  routing in the traditional way.
It pops-up here too: Controllers and Endpoints in Net 6 Minimal API

A: Hi , When you use Minimal Api in .Net 6 , There is no builder.Services.AddControllers() and
app.MapControllers() in Program,cs .
But , If you want to evolve an ASP.NET Core Minimal APIs to a full controller model , You need to add builder.Services.AddControllers() and
app.MapControllers() in Program.cs by yourself
Attention: there is some Differences between minimal APIs and APIs with controllers , you can read this document to learn more details

redpajama_set_name: RedPajamaStackExchange


text:
START_ATF_NAMESPACE
    #pragma pack(push, 2)
    struct  _sel_char_result_zone
    {
        char byRetCode;
        char bySlotIndex;
        unsigned int dwWorldSerial;
        unsigned int dwDalant;
        unsigned int dwGold;
    public:
        int size();
    };
    #pragma pack(pop)
    static_assert(ATF::checkSize<_sel_char_result_zone, 14>(), "_sel_char_result_zone");
END_ATF_NAMESPACE

redpajama_set_name: RedPajamaGithub


text:
package de.mrapp.android.preference;

import android.annotation.TargetApi;
import android.content.Context;
import android.content.res.Resources;
import android.content.res.Resources.NotFoundException;
import android.content.res.TypedArray;
import android.os.Build;
import android.os.Parcel;
import android.os.Parcelable;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;

import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.text.NumberFormat;

import androidx.annotation.ArrayRes;
import androidx.annotation.AttrRes;
import androidx.annotation.CallSuper;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.annotation.StyleRes;
import de.mrapp.android.dialog.AbstractButtonBarDialog;
import de.mrapp.android.dialog.builder.AbstractButtonBarDialogBuilder;
import de.mrapp.android.preference.view.SeekBar;
import de.mrapp.android.util.view.AbstractSavedState;
import de.mrapp.util.Condition;

/**
 * A preference, which allows to select a value from a continuous range via a seek bar. When
 * interacting with the preference, the seek bar is shown within a dialog. The chosen value will
 * only be persisted, if confirmed by the user. The preference can be used to select floating point
 * values if a specific number of decimals or integer values. Furthermore it is possible to
 * customize the appearance of the dialog and to set a step size, the currently chosen value is
 * increased or decreased by, when moving the seek bar.
 *
 * @author Michael Rapp
 * @since 1.0.0
 */
public class SeekBarPreference extends DialogPreference {

    /**
     * A data structure, which allows to save the internal state of a {@link SeekBarPreference}.
     */
    public static class SavedState extends AbstractSavedState {

        /**
         * A creator, which allows to create instances of the class {@link SeekBarPreference} from
         * parcels.
         */
        public static final Parcelable.Creator<SavedState> CREATOR =
                new Parcelable.Creator<SavedState>() {

                    @Override
                    public SavedState createFromParcel(final Parcel in) {
                        return new SavedState(in);
                    }

                    @Override
                    public SavedState[] newArray(final int size) {
                        return new SavedState[size];
                    }
                };

        /**
         * The saved value of the attribute "value".
         */
        public float value;

        /**
         * The saved value of the attribute "currentValue".
         */
        public float currentValue;

        /**
         * Creates a new data structure, which allows to store the internal state of a {@link
         * SeekBarPreference}. This constructor is called by derived classes when saving their
         * states.
         *
         * @param superState
         *         The state of the superclass of this view, as an instance of the type {@link
         *         Parcelable}. The state may not be null
         */
        public SavedState(@NonNull final Parcelable superState) {
            super(superState);
        }

        /**
         * Creates a new data structure, which allows to store the internal state of a {@link
         * SeekBarPreference}. This constructor is used when reading from a parcel. It reads the
         * state of the superclass.
         *
         * @param source
         *         The parcel to read read from as a instance of the class {@link Parcel}. The
         *         parcel may not be null
         */
        public SavedState(@NonNull final Parcel source) {
            super(source);
            value = source.readFloat();
            currentValue = source.readFloat();
        }

        @Override
        public final void writeToParcel(final Parcel destination, final int flags) {
            super.writeToParcel(destination, flags);
            destination.writeFloat(value);
            destination.writeFloat(currentValue);
        }

    }

    /**
     * The numeric system, which is used.
     */
    private static final double NUMERIC_SYSTEM = 10.0d;

    /**
     * The currently persisted value.
     */
    private float value;

    /**
     * The current value of the seek bar.
     */
    private float currentValue;

    /**
     * The maximum value of the seek bar.
     */
    private int minValue;

    /**
     * The minimum value of the seek bar.
     */
    private int maxValue;

    /**
     * The step size, the value is increased or decreased by when moving the seek bar.
     */
    private int stepSize;

    /**
     * The number of decimal numbers of the floating point numbers, the preference allows to
     * choose.
     */
    private int decimals;

    /**
     * The unit, which is used for textual representation of the preference's value.
     */
    private CharSequence unit;

    /**
     * The separator, which is used to show floating point values.
     */
    private CharSequence floatingPointSeparator;

    /**
     * An array, which contains the summaries, which should be shown depending on the currently
     * persisted value.
     */
    private CharSequence[] summaries;

    /**
     * True, if the progress of the seek bar should be shown, false otherwise.
     */
    private boolean showProgress;

    /**
     * Initializes the preference.
     *
     * @param attributeSet
     *         The attribute set, the attributes should be obtained from, as an instance of the type
     *         {@link AttributeSet} or null, if no attributes should be obtained
     * @param defaultStyle
     *         The default style to apply to this preference. If 0, no style will be applied (beyond
     *         what is included in the theme). This may either be an attribute resource, whose value
     *         will be retrieved from the current theme, or an explicit style resource
     * @param defaultStyleResource
     *         A resource identifier of a style resource that supplies default values for the
     *         preference, used only if the default style is 0 or can not be found in the theme. Can
     *         be 0 to not look for defaults
     */
    private void initialize(@Nullable final AttributeSet attributeSet,
                            @AttrRes final int defaultStyle,
                            @StyleRes final int defaultStyleResource) {
        obtainStyledAttributes(attributeSet, defaultStyle, defaultStyleResource);
        setPositiveButtonText(android.R.string.ok);
        setNegativeButtonText(android.R.string.cancel);
    }

    /**
     * Obtains all attributes from a specific attribute set.
     *
     * @param attributeSet
     *         The attribute set, the attributes should be obtained from, as an instance of the type
     *         {@link AttributeSet} or null, if no attributes should be obtained
     * @param defaultStyle
     *         The default style to apply to this preference. If 0, no style will be applied (beyond
     *         what is included in the theme). This may either be an attribute resource, whose value
     *         will be retrieved from the current theme, or an explicit style resource
     * @param defaultStyleResource
     *         A resource identifier of a style resource that supplies default values for the
     *         preference, used only if the default style is 0 or can not be found in the theme. Can
     *         be 0 to not look for defaults
     */
    private void obtainStyledAttributes(@Nullable final AttributeSet attributeSet,
                                        @AttrRes final int defaultStyle,
                                        @StyleRes final int defaultStyleResource) {
        TypedArray seekBarTypedArray = getContext()
                .obtainStyledAttributes(attributeSet, R.styleable.SeekBarPreference, defaultStyle,
                        defaultStyleResource);
        TypedArray unitTypedArray = getContext()
                .obtainStyledAttributes(attributeSet, R.styleable.AbstractUnitPreference,
                        defaultStyle, defaultStyleResource);
        TypedArray numericTypedArray = getContext()
                .obtainStyledAttributes(attributeSet, R.styleable.AbstractNumericPreference,
                        defaultStyle, defaultStyleResource);

        try {
            obtainDecimals(seekBarTypedArray);
            obtainMaxValue(numericTypedArray);
            obtainMinValue(numericTypedArray);
            obtainStepSize(numericTypedArray);
            obtainUnit(unitTypedArray);
            obtainFloatingPointSeparator(seekBarTypedArray);
            obtainShowProgress(seekBarTypedArray);
            obtainSummaries(seekBarTypedArray);
        } finally {
            seekBarTypedArray.recycle();
        }
    }

    /**
     * Obtains the number of decimals of the floating point numbers, the preference allows to
     * choose, from a specific typed array.
     *
     * @param typedArray
     *         The typed array, the number of decimals should be obtained from, as an instance of
     *         the class {@link TypedArray}. The typed array may not be null
     */
    private void obtainDecimals(@NonNull final TypedArray typedArray) {
        int defaultValue = getContext().getResources()
                .getInteger(R.integer.seek_bar_preference_default_decimals);
        setDecimals(typedArray.getInteger(R.styleable.SeekBarPreference_decimals, defaultValue));
    }

    /**
     * Obtains the minimum value, the preference allows to choose, from a specific typed array.
     *
     * @param typedArray
     *         The typed array, the minimum value should be obtained from, as an instance of the
     *         class {@link TypedArray}. The typed array may not be null
     */
    private void obtainMinValue(@NonNull final TypedArray typedArray) {
        int defaultValue = getContext().getResources()
                .getInteger(R.integer.seek_bar_preference_default_min_value);
        setMinValue(typedArray.getInteger(R.styleable.AbstractNumericPreference_min, defaultValue));
    }

    /**
     * Obtains the maximum value, the preference allows to choose, from a specific typed array.
     *
     * @param typedArray
     *         The typed array, the maximum value should be obtained from, as an instance of the
     *         class {@link TypedArray}. The typed array may not be null
     */
    private void obtainMaxValue(@NonNull final TypedArray typedArray) {
        int defaultValue = getContext().getResources()
                .getInteger(R.integer.seek_bar_preference_default_max_value);
        setMaxValue(typedArray
                .getInteger(R.styleable.AbstractNumericPreference_android_max, defaultValue));
    }

    /**
     * Obtains the step size, the value is increased or decreased by when moving the seek bar, from
     * a specific typed array.
     *
     * @param typedArray
     *         The typed array, the step size should be obtained from, as an instance of the class
     *         {@link TypedArray}. The typed array may not be null
     */
    private void obtainStepSize(@NonNull final TypedArray typedArray) {
        int defaultValue = getContext().getResources()
                .getInteger(R.integer.seek_bar_preference_default_step_size);
        setStepSize(typedArray
                .getInteger(R.styleable.AbstractNumericPreference_stepSize, defaultValue));
    }

    /**
     * Obtains the unit, which is used for textual representation of the preference's value, from a
     * specific typed array.
     *
     * @param typedArray
     *         The typed array, the unit should be obtained from, as an instance of the class {@link
     *         TypedArray}. The typed array may not be null
     */
    private void obtainUnit(@NonNull final TypedArray typedArray) {
        setUnit(typedArray.getText(R.styleable.AbstractUnitPreference_unit));
    }

    /**
     * Obtains the symbol, which is used to separate floating point numbers for textual
     * representation, from a specific typed array.
     *
     * @param typedArray
     *         The typed array, the symbol should be obtained from, as an instance of the class
     *         {@link TypedArray}. The typed array may not be null
     */
    private void obtainFloatingPointSeparator(@NonNull final TypedArray typedArray) {
        setFloatingPointSeparator(
                typedArray.getText(R.styleable.SeekBarPreference_floatingPointSeparator));
    }

    /**
     * Obtains the boolean value, which specifies whether the progress of the seek bar should be
     * shown, from a specific typed array.
     *
     * @param typedArray
     *         The typed array, the boolean value should be obtained from, as an instance of the
     *         class {@link TypedArray}. The typed array may not be null
     */
    private void obtainShowProgress(@NonNull final TypedArray typedArray) {
        boolean defaultValue = getContext().getResources()
                .getBoolean(R.bool.seek_bar_preference_default_show_progress);
        showProgress(
                typedArray.getBoolean(R.styleable.SeekBarPreference_showProgress, defaultValue));
    }

    /**
     * Obtains the summaries, which are shown depending on the currently persisted value, from a
     * specific typed array.
     *
     * @param typedArray
     *         The typed array, the summaries should be obtained from, as an instance of the class
     *         {@link TypedArray}. The typed array may not be null
     */
    private void obtainSummaries(@NonNull final TypedArray typedArray) {
        try {
            setSummaries(typedArray.getTextArray(R.styleable.SeekBarPreference_android_summary));
        } catch (Resources.NotFoundException e) {
            setSummaries(null);
        }
    }

    /**
     * Rounds a specific value to the number of decimals, which are currently set.
     *
     * @param value
     *         The value, which should be rounded, as a {@link Float} value
     * @return The rounded value as a {@link Float} value
     */
    private float roundToDecimals(final float value) {
        return Math.round(getMultiplier() * value) / (float) getMultiplier();
    }

    /**
     * Returns the value, a floating point value has to be multiplied with to transform it to an
     * integer value which is able to encode all of its decimals. By dividing such an integer value
     * by the return value of this method, the integer value can be transformed back to the original
     * floating point value.
     *
     * @return The multiplier as an {@link Integer} value
     */
    private int getMultiplier() {
        return (int) Math.pow(NUMERIC_SYSTEM, getDecimals());
    }

    /**
     * Creates and returns a listener, which allows to display the currently chosen value of the
     * pereference's seek bar. The current value is internally stored, but it will not become
     * persisted, until the user's confirmation.
     *
     * @param progressTextView
     *         The text view, which should be used to display the currently chosen value, as an
     *         instance of the class {@link TextView}. The text view may not be null
     * @return The listener, which has been created, as an instance of the type {@link
     * OnSeekBarChangeListener}
     */
    private OnSeekBarChangeListener createSeekBarListener(
            @NonNull final TextView progressTextView) {
        return new OnSeekBarChangeListener() {

            @Override
            public void onStopTrackingTouch(final android.widget.SeekBar seekBar) {

            }

            @Override
            public void onStartTrackingTouch(final android.widget.SeekBar seekBar) {

            }

            @Override
            public void onProgressChanged(final android.widget.SeekBar seekBar, final int progress,
                                          final boolean fromUser) {
                currentValue = (float) getMinValue() + (float) progress / (float) getMultiplier();
                currentValue = adaptToStepSize(currentValue);
                progressTextView.setText(getProgressText(currentValue));
            }

        };
    }

    /**
     * Adapts a specific value to the step size, which is currently set. The value will be decreased
     * or increased to the numerically closest value, which matches the step size.
     *
     * @param value
     *         The value, which should be adapted to the step size, as a {@link Float} value
     * @return The adapted value as a {@link Float} value
     */
    private float adaptToStepSize(final float value) {
        if (getStepSize() > 0) {
            float offset = value - getMinValue();
            float mod = offset % getStepSize();
            float halfStepSize = (float) getStepSize() / 2.0f;
            float result = ((mod > halfStepSize) ? offset + getStepSize() - mod : offset - mod) +
                    getMinValue();
            return Math.min(result, getMaxValue());
        }

        return value;
    }

    /**
     * Returns a textual representation of a specific value. The text is formatted depending on the
     * decimal separator, which is currently set and contains the unit, if currently set.
     *
     * @param value
     *         The value, whose textual representation should be returned, as a {@link Float} value
     * @return A textual representation of the given value as a {@link String}
     */
    private String getProgressText(final float value) {
        NumberFormat numberFormat = NumberFormat.getInstance();

        if (getFloatingPointSeparator() != null && numberFormat instanceof DecimalFormat) {
            DecimalFormatSymbols decimalFormatSymbols = new DecimalFormatSymbols();
            decimalFormatSymbols.setDecimalSeparator(getFloatingPointSeparator().charAt(0));
            ((DecimalFormat) numberFormat).setDecimalFormatSymbols(decimalFormatSymbols);
        }

        numberFormat.setMinimumFractionDigits(getDecimals());
        numberFormat.setMaximumFractionDigits(getDecimals());
        String valueString = numberFormat.format(value);

        if (!TextUtils.isEmpty(getUnit())) {
            return valueString + " " + getUnit();
        }

        return valueString;
    }

    /**
     * Returns the current value of the seek bar.
     *
     * @return The current value of the seek bar as a {@link Float} value
     */
    protected final float getCurrentValue() {
        return currentValue;
    }

    /**
     * Creates a new preference, which allows to select a value from a continuous range via a seek
     * bar.
     *
     * @param context
     *         The context in which to store the preference's value as an instance of the class
     *         {@link Context}. The context may not be null
     */
    public SeekBarPreference(@NonNull final Context context) {
        this(context, null);
    }

    /**
     * Creates a new preference, which allows to select a value from a continuous range via a seek
     * bar. This constructor is called when a preference is being constructed from an XML file,
     * supplying attributes that were specified in the XML file. This version uses a default style
     * of 0, so the only attribute values applied are those in the context's theme and the given
     * attribute set.
     *
     * @param context
     *         The Context this preference is associated with and through which it can access the
     *         current theme, resources, SharedPreferences, etc, as an instance of the class {@link
     *         Context}. The context may not be null
     * @param attributeSet
     *         The attributes of the XML tag that is inflating the preference, as an instance of the
     *         type {@link AttributeSet} or null, if no attributes are available
     */
    public SeekBarPreference(@NonNull final Context context,
                             @Nullable final AttributeSet attributeSet) {
        this(context, attributeSet, R.attr.dialogPreferenceStyle);
    }

    /**
     * Creates a new preference, which allows to select a value from a continuous range via a seek
     * bar. This constructor allows subclasses to use their own base style when they are inflating.
     *
     * @param context
     *         The context in which to store Preference value as an instance of the class {@link
     *         Context}. The context may not be null
     * @param attributeSet
     *         The attribute set, the preference's attributes should be obtained from, as an
     *         instance of the type {@link AttributeSet} or null, if no attributes are available
     * @param defaultStyle
     *         The default style to apply to this preference. If 0, no style will be applied (beyond
     *         what is included in the theme). This may either be an attribute resource, whose value
     *         will be retrieved from the current theme, or an explicit style resource
     */
    public SeekBarPreference(@NonNull final Context context,
                             @Nullable final AttributeSet attributeSet,
                             @AttrRes final int defaultStyle) {
        super(context, attributeSet, defaultStyle);
        initialize(attributeSet, defaultStyle, 0);
    }

    /**
     * Creates a new preference, which allows to select a value from a continuous range via a seek
     * bar. This constructor allows subclasses to use their own base style when they are inflating.
     *
     * @param context
     *         The context in which to store Preference value as an instance of the class {@link
     *         Context}. The context may not be null
     * @param attributeSet
     *         The attribute set, the preference's attributes should be obtained from, as an
     *         instance of the type {@link AttributeSet} or null, if no attributes are available
     * @param defaultStyle
     *         The default style to apply to this preference. If 0, no style will be applied (beyond
     *         what is included in the theme). This may either be an attribute resource, whose value
     *         will be retrieved from the current theme, or an explicit style resource
     * @param defaultStyleResource
     *         A resource identifier of a style resource that supplies default values for the
     *         preference, used only if the default style is 0 or can not be found in the theme. Can
     *         be 0 to not look for defaults
     */
    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    public SeekBarPreference(@NonNull final Context context,
                             @Nullable final AttributeSet attributeSet,
                             @AttrRes final int defaultStyle,
                             @StyleRes final int defaultStyleResource) {
        super(context, attributeSet, defaultStyle, defaultStyleResource);
        initialize(attributeSet, defaultStyle, defaultStyleResource);
    }

    /**
     * Returns the currently persisted value of the preference.
     *
     * @return The currently persisted value as a {@link Float} value
     */
    public final float getValue() {
        return value;
    }

    /**
     * Sets the current value of the preference. By setting a value, it will be persisted.
     *
     * @param value
     *         The value, which should be set, as a {@link Float} value. The value must be between
     *         the minimum and the maximum value, the preference allows to select
     */
    public final void setValue(final Float value) {
        Condition.INSTANCE.ensureAtLeast(value, getMinValue(),
                "The value must be at least the minimum value");
        Condition.INSTANCE.ensureAtMaximum(value, getMaxValue(),
                "The value must be at maximum the maximum value");
        float roundedValue = adaptToStepSize(roundToDecimals(value));

        if (this.value != roundedValue) {
            this.value = roundedValue;
            this.currentValue = roundedValue;
            persistFloat(roundedValue);
            notifyChanged();
        }
    }

    /**
     * Returns the minimum value, the preference allows to choose.
     *
     * @return The minimum value, the preference allows to choose, as an {@link Integer} value
     */
    public final int getMinValue() {
        return minValue;
    }

    /**
     * Sets the minimum value, the preference should allow to choose.
     *
     * @param minValue
     *         The minimum value, which should be set, as an {@link Integer} value. The value must
     *         be less than the maximum value, the preference allows to choose
     */
    public final void setMinValue(final int minValue) {
        Condition.INSTANCE.ensureSmaller(minValue, getMaxValue(),
                "The minimum value must be less than the maximum value");
        this.minValue = minValue;
        setValue(Math.max(getValue(), minValue));
    }

    /**
     * Returns the maximum value, the preference allows to choose.
     *
     * @return The maximum value, the preference allows to choose, as an {@link Integer} value
     */
    public final int getMaxValue() {
        return maxValue;
    }

    /**
     * Sets the maximum value, the preference should allow to choose.
     *
     * @param maxValue
     *         The maximum value, which should be set, as an {@link Integer} value. The value must
     *         be greater than the minimum value, that preference allows to choose
     */
    public final void setMaxValue(final int maxValue) {
        Condition.INSTANCE.ensureGreater(maxValue, getMinValue(),
                "The maximum value must be greater than the minimum value");
        this.maxValue = maxValue;
        setValue(Math.min(getValue(), maxValue));
    }

    /**
     * Returns the range of values, the preference allows to choose from.
     *
     * @return The range of values, the preference allows to choose from, as an {@link Integer}
     * value
     */
    public final int getRange() {
        return maxValue - minValue;
    }

    /**
     * Returns the step size, the value is increased or decreased by, when moving the seek bar.
     *
     * @return The step size, the value is increased or decreased by, when moving the seek bar, as
     * an {@link Integer} value
     */
    public final int getStepSize() {
        return stepSize;
    }

    /**
     * Sets the step size, the value should be increased or decreased by, when moving the seek bar.
     *
     * @param stepSize
     *         The step size, which should be set, as an {@link Integer} value. The value must be at
     *         least 1 and at maximum the value of the method <code>getRange():int</code> or -1, if
     *         the preference should allow to select a value from a continuous range
     */
    public final void setStepSize(final int stepSize) {
        if (stepSize != -1) {
            Condition.INSTANCE.ensureAtLeast(stepSize, 1, "The step size must be at least 1");
            Condition.INSTANCE.ensureAtMaximum(stepSize, getRange(),
                    "The step size must be at maximum the range");
        }

        this.stepSize = stepSize;
        setValue(adaptToStepSize(getValue()));
    }

    /**
     * Returns the number of decimals of the floating point numbers, the preference allows to
     * choose. If the number of decimals is set to 0, the preference only allows to choose integer
     * values.
     *
     * @return The number of decimals of the floating point numbers, the preference allows to
     * choose, as an {@link Integer} value
     */
    public final int getDecimals() {
        return decimals;
    }

    /**
     * Sets the number of decimals of the floating point numbers, the preference should allow to
     * choose. If the number of decimals is set to 0, the preference will only allow to choose
     * integer values.
     *
     * @param decimals
     *         The number of decimals, which should be set, as an {@link Integer} value. The value
     *         must be at least 0. If the value is set to 0, the preference will only allow to
     *         choose integer values
     */
    public final void setDecimals(final int decimals) {
        Condition.INSTANCE.ensureAtLeast(decimals, 0, "The decimals must be at least 0");
        this.decimals = decimals;
        setValue(roundToDecimals(getValue()));
    }

    /**
     * Returns the unit, which is used for textual representation of the preference's value.
     *
     * @return The unit, which is used for textual representation of the preference's value, as an
     * instance of the type {@link CharSequence} or null, if no unit is used
     */
    public final CharSequence getUnit() {
        return unit;
    }

    /**
     * Sets the unit, which should be used for textual representation of the preference's value.
     *
     * @param unit
     *         The unit, which should be set, as an instance of the type {@link CharSequence} or
     *         null, if no unit should be used
     */
    public final void setUnit(@Nullable final CharSequence unit) {
        this.unit = unit;
    }

    /**
     * Sets the unit, which should be used for textual representation of the preference's value.
     *
     * @param resourceId
     *         The resource id of the unit, which should be set, as an {@link Integer} value. The
     *         resource id must correspond to a valid string resource
     */
    public final void setUnit(@StringRes final int resourceId) {
        setUnit(getContext().getText(resourceId));
    }

    /**
     * Returns the symbol, which is used to separate floating point numbers for textual
     * representation.
     *
     * @return The symbol, which is used to separate floating point numbers for textual
     * representation, as an instance of the type {@link Character} or null, if the default symbol
     * is used
     */
    public final CharSequence getFloatingPointSeparator() {
        return floatingPointSeparator;
    }

    /**
     * Sets the symbol, which should be used to separate floating point numbers for textual
     * representation.
     *
     * @param floatingPointSeparator
     *         The symbol, which should be set, as an instance of the type {@link CharSequence} or
     *         null, if the default symbol should be used. The length of the symbol must be 1
     */
    public final void setFloatingPointSeparator(
            @Nullable final CharSequence floatingPointSeparator) {
        if (floatingPointSeparator != null) {
            Condition.INSTANCE.ensureAtMaximum(floatingPointSeparator.length(), 1,
                    "The floating point separator's length must be 1");
        }
        this.floatingPointSeparator = floatingPointSeparator;
    }

    /**
     * Sets the symbol, which should be used to separate floating point numbers for textual
     * representation.
     *
     * @param resourceId
     *         The resource id of the symbol, which should be set, as an {@link Integer} value. The
     *         resource id must correspond to a valid string resource
     */
    public final void setFloatingPointSeparator(@StringRes final int resourceId) {
        setFloatingPointSeparator(getContext().getResources().getText(resourceId));
    }

    /**
     * Returns, whether the currently selected value of the seek bar is shown, or not.
     *
     * @return True, if the currently selected value of the seek bar is shown, false otherwise
     */
    public final boolean isProgressShown() {
        return showProgress;
    }

    /**
     * Sets, whether the currently selected value of the seek bar should be shown, or not.
     *
     * @param showProgress
     *         True, if the currently selected value of the seek bar should be shown, false
     *         otherwise
     */
    public final void showProgress(final boolean showProgress) {
        this.showProgress = showProgress;
    }

    /**
     * Returns the summaries, which are shown depending on the currently persisted value.
     *
     * @return The summaries, which are shown depending on the currently persisted value, as an
     * array of the type {@link CharSequence} or null, if no summaries are shown depending on the
     * currently persisted value
     */
    public final CharSequence[] getSummaries() {
        return summaries;
    }

    /**
     * Sets the summaries, which should be shown depending on the currently persisted value.
     *
     * @param summaries
     *         The summaries, which should be set, as an array of the type {@link CharSequence} or
     *         null, if no summaries should be shown depending on the currently persisted value
     */
    public final void setSummaries(@Nullable final CharSequence[] summaries) {
        this.summaries = summaries;
    }

    @Override
    public final CharSequence getSummary() {
        if (isValueShownAsSummary()) {
            return getProgressText(getValue());
        } else if (getSummaries() != null && getSummaries().length > 0) {
            float interval = (float) getRange() / (float) getSummaries().length;
            int index = (int) Math.floor((getValue() - getMinValue()) / interval);
            index = Math.min(index, getSummaries().length - 1);
            return getSummaries()[index];
        } else {
            return super.getSummary();
        }
    }

    @Override
    public final void setSummary(final CharSequence summary) {
        super.setSummary(summary);
        this.summaries = null;
    }

    @SuppressWarnings("ResourceType")
    @Override
    public final void setSummary(@ArrayRes final int resourceId) {
        try {
            setSummaries(getContext().getResources().getStringArray(resourceId));
        } catch (NotFoundException e) {
            super.setSummary(resourceId);
        }
    }

    @Override
    protected final Object onGetDefaultValue(final TypedArray a, final int index) {
        return a.getFloat(index, 0);
    }

    @Override
    protected final void onSetInitialValue(final Object defaultValue) {
        setValue(defaultValue == null ? getPersistedFloat(getValue()) : (float) defaultValue);
    }

    @CallSuper
    @Override
    protected void onPrepareDialog(
            @NonNull final AbstractButtonBarDialogBuilder<?, ?> dialogBuilder) {
        View layout = View.inflate(dialogBuilder.getContext(), R.layout.seek_bar, null);
        layout.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.WRAP_CONTENT));

        TextView progressTextView = layout.findViewById(R.id.progress_text);
        progressTextView.setText(getProgressText(getCurrentValue()));
        progressTextView.setVisibility(isProgressShown() ? View.VISIBLE : View.GONE);

        SeekBar seekBar = layout.findViewById(R.id.seek_bar);
        seekBar.setMax(getRange() * getMultiplier());
        seekBar.setProgress(Math.round((getCurrentValue() - getMinValue()) * getMultiplier()));
        seekBar.setOnSeekBarChangeListener(createSeekBarListener(progressTextView));

        dialogBuilder.setView(layout);
    }

    @CallSuper
    @Override
    protected void onDialogClosed(@NonNull final AbstractButtonBarDialog dialog,
                                  final boolean positiveResult) {
        if (positiveResult && callChangeListener(getCurrentValue())) {
            setValue(getCurrentValue());
        } else {
            currentValue = getValue();
        }
    }

    @CallSuper
    @Override
    protected Parcelable onSaveInstanceState() {
        Parcelable superState = super.onSaveInstanceState();
        SavedState savedState = new SavedState(superState);
        savedState.currentValue = getCurrentValue();

        if (!isPersistent()) {
            savedState.value = getValue();
        } else {
            savedState.value = -1;
        }

        return savedState;
    }

    @CallSuper
    @Override
    protected void onRestoreInstanceState(final Parcelable state) {
        if (state instanceof SavedState) {
            SavedState savedState = (SavedState) state;
            currentValue = savedState.currentValue;

            if (savedState.value != -1) {
                setValue(savedState.value);
            }

            super.onRestoreInstanceState(savedState.getSuperState());
        } else {
            super.onRestoreInstanceState(state);
        }
    }

}


We all knew Hyatt was in the mood for a major acquisition. (NH Hotel Group or Starwood, anyone?) And now we have a much better idea of what its plans are for Two Roads, as well as other acquisitions down the line.
It's a well-known fact that in today's highly competitive and increasingly consolidated hospitality industry that relatively smaller public hotel companies like Hyatt are seeking ways to add more scale.
So with just 750 hotels in its global portfolio, Hyatt's proposed purchase of Two Roads Hospitality on October 8 wasn't really a surprise within the industry or that it wanted to add to its portfolio. By comparison, Marriott International has more than 6,700 hotels and Hilton has more than 5,500 hotels.
On a conference call to discuss third quarter earnings on Wednesday, Hyatt CEO Mark Hoplamazian and outgoing chief financial officer Patrick Grismer offered more details and insights into Hyatt's reasoning for buying Two Roads, and what it intends to do with its brands.
Hyatt said it intends to formally close its acquisition of Two Roads for a base price of $480 million within the next two to three weeks, with the option of investing up to an additional $120 million related to hotel management contracts and conversions.
Hyatt is financing this acquisition with the proceeds of the sale of a number of real estate assets from the past year, allowing it to fund the initial transaction in cash.
Two Roads will eventually add nearly 17,000 employees, 14,000 hotel rooms, and a total of five new luxury and lifestyle brands to Hyatt, giving Hyatt an eventual portfolio of 19 brands and more than 800 properties. It will also add 20 new markets for Hyatt, and CEO Hoplamazian reiterated that Hyatt has no plans to remove or consolidate any of Two Roads' brands.
Within three years after the deal close, by 2021, Hyatt expects that the purchase of Two Roads will yield an implied multiple of approximately 12 to 13 times adjusted earnings before interest, taxes, depreciation, and amortization.
Hyatt anticipates spending anywhere from $25 million to $30 million in transaction related integration costs that will cover reorganization (relocating employees and paying severance); transitional services; information-technology related costs for bringing Two Roads properties onto Hyatt's systems; and some selected brand conversion costs.
In other words, there's a chance there may be some unhappy Two Roads hotel owners who may not want to be a part of the Hyatt portfolio, or whose properties may be converted to other brands. However, Hoplamazian stressed that those owners will be able to "leverage our sales organization, revenue management systems," as well as benefit from the World of Hyatt loyalty program, and the fact that both companies share a similar customer base. The added scale of both companies combined will also help those owners benefit from lower online travel agency commission costs and, hopefully, see more direct bookings.
Relatedly, Hoplamazian said that the number of World of Hyatt members booking room nights increased 250 basis points on a year-to-date basis, or approximately 37 percent. New member enrollments in the program are also up 35 percent over 2017.
The loyalty program partnership between Hyatt and Small Luxury Hotels of the World (SLH), a marketing consortium of independent luxury properties, will also officially launch in mid-November, allowing World of Hyatt members to earn and redeem points at participating SLH properties.
Looking ahead, Two Roads is just one of many acquisitions or investments we can expect to see from Hyatt. Prior to Two Roads, Hyatt purchase two wellness and well being companies — Miraval Group and Exhale — and it invested in, and then sold off its stake, in homesharing platform, Oasis.
Hyatt had a relatively strong third quarter that either beat or met most analysts' estimates.
The company reported net income of $237 million, or approximately $2.09 per diluted share, compared to $18 million, or 14 cents per diluted share in the same period last year.
The boost in net income was driven by the company's property sales, part of its larger "asset lighter" strategy to own less real estate but maintain Hyatt's traditional asset recycling plans.
Adjusted net income for the third quarter was $37 million, compared to last year's $29 million.
Revenue per available room (RevPAR) was up 2.8 percent across the entire Hyatt portfolio. In the U.S., RevPAR was up 1.4 percent, with full-service properties seeing a jump of 2.5 percent and select service hotels seeing a decrease of 1.1 percent.
Net room growth was 7.6 percent in the third quarter.
Shares of Hyatt were trading up in the hours following its third quarter earnings call by approximately $3 a share.


Booster Juice is the biggest fresh juice and smoothie chain in North York. We serve nutritious and tasty smoothies made of pure juices, fruit sorbet, vanilla frozen yogurt, frozen fruit, and fresh yogurt. Come visit Booster Juice while you shop at CF Fairview Mall.


2. Download the plugin from SiteAdmin > Plugins > Get More Plugins > Vietbando and click Install.
3. Go to SiteAdmin > Maps > Vietbando.
Enter your Vietbando Key in the field.
5. Go to SiteAdmin > Applications > (click in your application name) Privileges and Features > Maps > _UseMapPlugin and enable Vietbando.


Speech given at the Resolution Foundation, London.
The jobless rate is down to 4.8% and the number of vacancies is around a record high, but pay growth has repeatedly undershot forecasts, with little sign of significantly higher growth in 2017.
In this talk, Michael examines the labour market, and in particular why the response of wage growth to falling unemployment has been limited.


A letter from a reader revealed a situation that confronts many every day.
Dear Randy, I am married and have two grown sons. I am the only one in my family who lives as a Christian. There are so many times when I just don't know what God would have me do, though I believe He wants me to stay in the marriage (we've been married 33 years). I joined the church four years ago. My husband also joined, but almost as soon as he did, he started falling away. It's almost like Satan roped him in and will not let go. He wants me to go to a New Year's Day party—football and fish fry. There will be drinking. I feel that I will be uncomfortable there, and I'm not sure what God wants me to do.
How are conflicts like this resolved? Can we go to the Word of God and find practical guidelines on how to live with an unbelieving spouse? I believe we can. God's Word "is useful for teaching, rebuking, correcting and training in righteousness."1 We can trust it to be a source of wisdom regarding the problems we face in life.
Before we look at what God's Word says, however, let me state that I am not a marriage counselor. Never having gone through what the letter writer describes, I wanted the pointers in this chapter to be credible and to represent the viewpoint of someone who has "been there." So in preparing my response I consulted with a dear friend who lived in a spiritually divided marriage for many years. Her counsel is reflected in some of the tips I will share.
1. Stay in the marriage.
The writer of the letter says that she believes God wants her to stay in the marriage. The apostle Paul supports her belief.
God is not in the business of breaking up families. The letter writer was married some 29 years before joining the church—a decision she and her husband made together. One partner remained strong in the Lord; the other has drifted back into the old lifestyle. This is definitely not a case of a believer deliberately entering into the "unequally yoked" situation that Paul instructed Christians to avoid.3 But even if it were, Paul upheld the sanctity of the marriage commitment and saw the possibility of redemption for the unbelieving spouse through the spouse who is following Christ.
If you're in this situation and your spouse is willing to remain married, do not consider divorce an option. Stay in the marriage, and show your spouse the love of God.
2. Pick your battles prayerfully.
Don't be a martyr on every point of conflict that arises in your marriage. Pray first and then ask "What would Jesus do?" In the case of the New Year's party, consider going with your husband--but don't drink! You don't have to compromise principle to make your husband happy, and both are important.
Many Christians think that they must isolate themselves from those who are living a different lifestyle than theirs. They feel that all their friends must be Christians like themselves so they can avoid coming into contact with "sin." But what was our Lord's example?
Non-Christian social gatherings may be exactly where God wants to use you to represent the Christian lifestyle.6 Your abstinence from alcohol, foul language, questionable jokes, etc., may elicit a comment or question from someone at the party, giving you an opportunity to witness for your Lord.
In the meantime, your presence at the party says to your mate, "I'm here because of you. This event is important to you, therefore it is important to me." Your spouse already knows that you'd rather not be there. But your willingness to put his or her needs ahead of your own comfort will be appreciated. And perhaps if you do this for your spouse, your spouse will go with you to church from time to time.
Remember—the more things you can do to help strengthen the marriage, the better. Your unbelieving spouse is watching everything you—the Christian—do. It is vitally important that your spouse see that your commitment to God makes you a better wife or husband.
3. Develop a support group.
Surround yourself with Christian friends who will provide the spiritual nurture and encouragement you're not getting at home. If your spouse doesn't object, invite your Christian friends over and have potluck dinners in your home. Don't force your spouse to join, but make sure he or she is welcomed in the group. This type of gathering will provide opportunities for your spouse to associate with believers and to ask questions. And the strength you derive from those who share your faith will buoy your spirits during those times when you battle loneliness.
Some Christians feel that the way to "save" their unbelieving spouses is to nag them into the kingdom of heaven. They're at the church every time the door opens. They leave Christian literature around the house, preach at their spouses about their failure to come with them to church, and lay heavy guilt trips on them about their smoking, drinking, gaming, etc. This is not the way Jesus won people's hearts.
Again, Paul said, "Do not allow what you consider good to be spoken of as evil," and "If it is possible, as far as it depends on you, live at peace with everyone."7 Don't use your church attendance or prayer life as a club with which to beat your spouse. If you do, your Christianity will become loathsome to your spouse. Do your best to live at peace with your spouse, and let the Holy Spirit do the convicting. He's better at it than you are.
Use that principle of out-serving your spouse. Make a conscious effort to put your spouse's needs first, and pray that God will soften your spouse's heart as he or she reaps the benefit of your commitment to Christ.
Living in a spiritually divided marriage isn't easy. You will have challenges to face. But it need not be an intolerable situation either. If you will follow your Master's example, you, too, may bring to your spouse the water of life.
1. 2 Timothy 3:16. 2. 2 Corinthians 7:13, 15. 3. See 2 Corinthians 6:14. 4. Luke 5:30-32.
5. Ellen G. White, The Desire of Ages (Nampa, Idaho: Pacific Press, 1940), 274.
6. See Matthew 5:14. 7. Romans 14:16; 12:18. 8. See 1 Corinthians 7:15. 9. Verse 16.
This article is adapted from Randy Maxwell's book, 5 Steps to Christlike Living, Pacific Press Publishing Association, Nampa, ID, 83687, 2001, pp. 77-81. Used by the author.


A vulnerability in the TCP throttling process of Cisco Prime Network could allow an unauthenticated, remote attacker to cause a denial of service (DoS) condition on an affected device. The vulnerability is due to insufficient rate limiting protection for TCP listening ports. An attacker could exploit this vulnerability by sending the affected device a high rate of TCP SYN packets to the local IP address of the targeted application. A successful exploit could allow the attacker to cause the device to consume a high amount of memory and become slow, or to stop accepting new TCP connections to the application. Cisco Bug IDs: CSCvg48152.