legco is an R package to fetch data from the Hong Kong Legislative Council (LegCo) API. It provides easy access to LegCo’s open data in an integrated manner without having to dig deep into the structures and parameters of the API. Each function corresponds to a data endpoint of the API. Data is retrieved in json format and presented in a dataframe.

Installing legco

install.packages("devtools")
devtools::install_github("elgarteo/legco")

And to load it before every use:

Understanding the LegCo API

The LegCo API consists of different databases with separate structures and identifiers. The functions in this package correspond to the various data endpoints of these databases. The databases supported by this package and the associating functions are as follow.

  1. Bills Database

    This database contains key information of all the bills that have been presented in LegCo since 1906. This database is accessible with the following function:

    • all_bills() fetches the information of bills that have gone through LegCo.

    Compared to bills() of the Hansard Database, all_bills() provides much more comprehensive information of bills, including all key dates and the proposer.

    See here for more information of this database.

  2. Hansard Database

    This database contains information on matters discussed in Council meeting since the fifth term of LegCo. Hinting by its name, the database is built upon the PDF hansard files. Relying on the bookmarks and section codes of the hansard files, the data endpoints retrieve data from the files directly. This database is accessible with the following functions/data:

    • hansard() fetches the information of the hansard files.
    • legco_section_type is a data frame that explains that meaning of the section codes used in the hansard files.
    • subjects() fetches the subjects in the hansard files, which are essentially items in the meeting agenda.
    • speakers() fetches the speakers in meetings, including members, government officials and secretariat staff.
    • rundown() fetches the full text of the hansard files.
    • questions() fetches the questions put on the government by the members during Council meetings.
    • bills() fetches bills that have been debated in Council meetings.
    • motions() fetches motions that have been debated in Council meetings.
    • petitions() fetches petitions initiated by members in Council meetings.
    • addresses() fetches addresses made by members or government officials while presenting papers to the Council.
    • statements() fetches statements made by government officials in Council meetings.
    • voting_results() fetches the results of votes conducted in Council meetings.
    • summoning_bells() fetches instances in which the summoning bell have been rung in Council meetings.

    When using in combination, these functions are essentially hansard files crawler.

    See here for more information of this database.

  3. Meeting Attendance Database

    This database contains the attendance record of Council and committee open meetings since the sixth term.

    This database is accessible with the following function:

    • attendance() fetches the attendance of members in Council and committee meetings.

    See here for more information of this database.

  4. Meeting Schedule Database

    This database contains the member list and the meeting schedule of the Council and every committee since the fifth term of LegCo. This database is accessible with the following functions:

    • term() fetches the terms in LegCo.
    • session() fetches the sessions in LegCo.
    • committee() fetches a list of LegCo committees.
    • membership() fetches the members of each committee in the form of Member ID.
    • member() fetches the members in LegCo.
    • member_term() fetches the terms LegCo members have served in.
    • meeting() fetches the meeting schedule of LegCo committees in the form of Meet ID.
    • meeting_committee() fetches which committee holds a meeting.

    While the purpose of member() is similar to speakers() of the Hansard Database, member() returns only LegCo members. Their identifiers, i.e. Speaker ID and Member ID, are unique and not interchangeable.

    See here for more information of this database.

  5. Voting Results Database

    This database contains voting results of the Council, the House Committee and the Finance Committee and its subcomittees starting from the fifth term of LegCo. This database is accessible with the following function:

    • voting_record() fetches the information of votes conducted in the meetings, including the voting record of each member.

    While voting_results() of the Hansard Database returns only the overall result of votes conducted in Council meetings, voting_record() returns much more detailed information of votes conducted in Council and other four committees and subcommittees meetings.

    See here for more information of this database.


A generic function legco_api() is available for access to other databases and endpoints of the LegCo API that are not specified here.

All functions can also be accessed with the prefix legco_, e.g. legco_speakers() and speakers() return the same result.

API Limits

Rate Limit

LegCo API has a rate limit of approximately 1000 requests per IP per hour. Once the limit is reached, you will not be able to retrieve any data for awhile. If you run into the following error message while pretty sure you have entered the correct parameters, you have probably reached the limit:

## Error: The request did not return any data: Invalid search parameters or rate limit exceeded.

Node Count Limit

Another limit is the node count limit which is associated with the setting of the LegCo API server. The limit is at most 100 nodes per request, or approximately 20 filtering conditions in most cases. For instance, the following code contains 21 filtering conditions and thus reach the node count limit:

## Error: Parameters too long. Please shorten your parameters and break down into multiple requests.

If you run into the error message above, you need to break it down to multiple smaller requests, like one of the examples below.

Note that numeric filtering conditions that are sequential are not subjected to this limit:

# A request with sequential numeric filtering conditions
x <- c(1:50)
speakers(speaker_id = x)

The code above will execute just fine without reaching the node count limit even though it effectively contains 50 filtering conditions.

Common Connection Problems

It is common for the connection to the LegCo API to experience SSL error from time to time, especially during repeated requests. This can usually be resolved simply by retrying. This package automatically retries the request once when an SSL error occurs with the following messages:

## Encountered Error in open.connection(con, "rb"): LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to app.legco.gov.hk:443
## Possible common connection problem resolvable by retrying.
## Retrying...

If the same error happens again after retrying, the process will be terminated with an error message. In this case, the cause of the problem is likely to be a genuine SSL error.

Another common problem is that the LegCo API sometimes returns an empty json file when it is not supposed to. Again, this can usually be resolved by retrying. This package automatically retries the request once to make sure that an invalid search query or rate limit is not the cause of the problem. The following messages will be shown if this problem occurs:

If the API returns an empty result again, the process will be terminated with an error message. In this case, the cause is likely to be invalid search parameters or that you have exceeded the rate limit (see here).

Examples

The following code shows all the Council meetings held from May 1, 2018 to May 31, 2018.

hansard(from = "2018-05-01", to = "2018-05-31")
##    HansardID         MeetingDate          AgendaDate isCEQandA isCEQT
## 1       2407 2018-05-02 00:00:00 2018-05-02 00:00:00         0      0
## 2       2526 2018-05-03 00:00:00 2018-05-02 00:00:00         0      0
## 3       2405 2018-05-03 00:00:00 2018-05-03 00:00:00         1      0
## 4       2418 2018-05-09 00:00:00 2018-05-09 00:00:00         0      0
## 5       2419 2018-05-10 00:00:00 2018-05-09 00:00:00         0      0
## 6       2425 2018-05-16 00:00:00 2018-05-16 00:00:00         0      0
## 7       2434 2018-05-17 00:00:00 2018-05-16 00:00:00         0      0
## 8       2443 2018-05-23 00:00:00 2018-05-23 00:00:00         0      1
## 9       2451 2018-05-23 00:00:00 2018-05-23 00:00:00         0      0
## 10      2450 2018-05-24 00:00:00 2018-05-23 00:00:00         0      0
## 11      2541 2018-05-30 00:00:00 2018-05-30 00:00:00         0      0
## 12      2462 2018-05-31 00:00:00 2018-05-30 00:00:00         0      0
##                                                                          HansardFileURL
## 1   https://www.legco.gov.hk/yr17-18/english/counmtg/hansard/cm20180502-translate-e.pdf
## 2   https://www.legco.gov.hk/yr17-18/english/counmtg/hansard/cm20180503-translate-e.pdf
## 3  https://www.legco.gov.hk/yr17-18/english/counmtg/hansard/cm20180503a-translate-e.pdf
## 4   https://www.legco.gov.hk/yr17-18/english/counmtg/hansard/cm20180509-translate-e.pdf
## 5   https://www.legco.gov.hk/yr17-18/english/counmtg/hansard/cm20180510-translate-e.pdf
## 6   https://www.legco.gov.hk/yr17-18/english/counmtg/hansard/cm20180516-translate-e.pdf
## 7   https://www.legco.gov.hk/yr17-18/english/counmtg/hansard/cm20180517-translate-e.pdf
## 8  https://www.legco.gov.hk/yr17-18/english/counmtg/hansard/cm20180523q-translate-e.pdf
## 9   https://www.legco.gov.hk/yr17-18/english/counmtg/hansard/cm20180523-translate-e.pdf
## 10  https://www.legco.gov.hk/yr17-18/english/counmtg/hansard/cm20180524-translate-e.pdf
## 11  https://www.legco.gov.hk/yr17-18/english/counmtg/hansard/cm20180530-translate-e.pdf
## 12  https://www.legco.gov.hk/yr17-18/english/counmtg/hansard/cm20180531-translate-e.pdf

To fetch the items on the agenda of the meeting on May 23, 2018:

subjects(hansard_id = 2451)
##            MeetingDate
## 1  2018-05-23 00:00:00
## 2  2018-05-23 00:00:00
## 3  2018-05-23 00:00:00
## 4  2018-05-23 00:00:00
## 5  2018-05-23 00:00:00
## 6  2018-05-23 00:00:00
## 7  2018-05-23 00:00:00
## 8  2018-05-23 00:00:00
## 9  2018-05-23 00:00:00
## 10 2018-05-23 00:00:00
## 11 2018-05-23 00:00:00
## 12 2018-05-23 00:00:00
## 13 2018-05-23 00:00:00
## 14 2018-05-23 00:00:00
## 15 2018-05-23 00:00:00
## 16 2018-05-23 00:00:00
## 17 2018-05-23 00:00:00
## 18 2018-05-23 00:00:00
## 19 2018-05-23 00:00:00
## 20 2018-05-23 00:00:00
## 21 2018-05-23 00:00:00
## 22 2018-05-23 00:00:00
## 23 2018-05-23 00:00:00
## 24 2018-05-23 00:00:00
## 25 2018-05-23 00:00:00
## 26 2018-05-23 00:00:00
## 27 2018-05-23 00:00:00
## 28 2018-05-23 00:00:00
## 29 2018-05-23 00:00:00
## 30 2018-05-23 00:00:00
## 31 2018-05-23 00:00:00
## 32 2018-05-23 00:00:00
## 33 2018-05-23 00:00:00
## 34 2018-05-23 00:00:00
## 35 2018-05-23 00:00:00
## 36 2018-05-23 00:00:00
##                                                                                        Subject
## 1                                                                            MEETING COMMENCED
## 2                                                                    ORAL ANSWERS TO QUESTIONS
## 3                        Collection of handling charges from persons purchasing tickets online
## 4                                   Measures to improve the reception of visitors to Hong Kong
## 5                       Foreign domestic helpers congregating in public places during holidays
## 6                            Pressure on road traffic brought about by cross-boundary vehicles
## 7                       Assisting local residents in acquiring properties by levying new taxes
## 8                                                    Maternity protection for female employees
## 9                                                                 WRITTEN ANSWERS TO QUESTIONS
## 10                       Lack of berthing spaces at typhoon shelters for small fishing vessels
## 11                                                                Sponsored Visitors Programme
## 12       A large number of Mainland tourists staying overnight in local camp sites and beaches
## 13                  Combating traffic contraventions in New Territories North and Kowloon East
## 14                                  Helping ethnic minority women integrate into the community
## 15                                 Employment of academic staff by post-secondary institutions
## 16                                   Assessments to rates for properties on agricultural lands
## 17                                         Child health assessment and rehabilitation services
## 18                                            Measures to boost the supply of industrial lands
## 19               Development of high-tier data centres and cross-boundary transmission of data
## 20                                 Bogus marriage-related offences involving human trafficking
## 21  Provision of community support services for residents of new public rental housing estates
## 22                                                          Support for single-parent families
## 23                                                                       Trading of shark fins
## 24                                                               Management of water resources
## 25                                              Supply of first-hand private residential units
## 26                                                                             GOVERNMENT BILL
## 27                                                            FIRST READING OF GOVERNMENT BILL
## 28                                                Inland Revenue (Amendment) (No. 4) Bill 2018
## 29                                                           SECOND READING OF GOVERNMENT BILL
## 30                                                Inland Revenue (Amendment) (No. 4) Bill 2018
## 31                                                                            MEMBERS' MOTIONS
## 32 Proposed resolution under section 34(4) of the Interpretation and General Clauses Ordinance
## 33                                         Motion under Rule 49B(1A) of the Rules of Procedure
## 34                                   Report of the Joint Subcommittee on Long-term Care Policy
## 35                                                          Not forgetting the 4 June incident
## 36                                                                       SUSPENSION OF MEETING
##    ResumptionOf SectionCode RundownID HansardID
## 1            NA         mtc    828481      2451
## 2            NA         orq    828485      2451
## 3            NA         orq    828487      2451
## 4            NA         orq    828511      2451
## 5            NA         orq    828541      2451
## 6            NA         orq    828581      2451
## 7            NA         orq    828603      2451
## 8            NA         orq    828643      2451
## 9            NA         wrq    828673      2451
## 10           NA         wrq    828674      2451
## 11           NA         wrq    828677      2451
## 12           NA         wrq    828680      2451
## 13           NA         wrq    828683      2451
## 14           NA         wrq    828686      2451
## 15           NA         wrq    828689      2451
## 16           NA         wrq    828692      2451
## 17           NA         wrq    828695      2451
## 18           NA         wrq    828698      2451
## 19           NA         wrq    828701      2451
## 20           NA         wrq    828704      2451
## 21           NA         wrq    828707      2451
## 22           NA         wrq    828710      2451
## 23           NA         wrq    828713      2451
## 24           NA         wrq    828716      2451
## 25           NA         wrq    828719      2451
## 26           NA         bil    828722      2451
## 27           NA         b1r    828723      2451
## 28           NA         b1r    828725      2451
## 29           NA         b2r    828727      2451
## 30           NA         b2r    828729      2451
## 31           NA         mbm    828732      2451
## 32           NA         mbm    828734      2451
## 33           NA         mbm    828743      2451
## 34           NA         mbm    828747      2451
## 35           NA         mbm    828783      2451
## 36           NA         som    828827      2451

In this example, we will look into the motion Not forgetting the 4 June incident.

The section codes indicate the type of the business. For example, the section code “mbm” of the Not forgetting the 4 June incident means that it is a member’s motion:

legco_section_type[legco_section_type$SectionCode == "mbm", ]
##    SectionCode          NameEng  NameChi
## 44         mbm Members' motions 議員議案

The RundownID indicates the location of the first paragraph of the matter concerned in the hansard file. In other words, paragraphs of RundownID between 828783 and 828826 (one RundownID prior to the next item on the agenda) are the records of the matter the Not forgetting the 4 June incident during the meeting. The full text of these paragraphs can be fetched by:

w <- rundown(rundown_id = 828783:828826)
# Order by RundownID, i.e. chronological order
w <- w[order(w$RundownID), ]
rownames(w) <- 1:nrow(w)
# Some two paragraphs of the hansard relevant to the discussion of the motion
w$Content[41:42]
## [1] "PRESIDENT (in Cantonese): Will Members please proceed to vote."                                                  
## [2] "PRESIDENT (in Cantonese): Mr Abraham SHEK, do you wish to cast your vote?(Mr Abraham SHEK did not cast any vote)"

To check which members have spoken about the motion and to look up some of their names:

x <- unique(w$SpeakerID[!is.na(w$SpeakerID)])
speakers(speaker_id = x)
## Error: Parameters too long. Please shorten your parameters and break down into multiple requests.

The code above produces 27 filtering conditions which exceed the node count limit. If you need have parameters longer than that, break them down into multiple requests:

y1 <- speakers(speaker_id = x[1:19])
y2 <- speakers(speaker_id = x[20:27])
y <- rbind(y1, y2)
# Show members who have spoken about this motion
head(y[y$Type == "MB", ])
##   SpeakerID NameChi         NameEng Type Initial  FirstName LastName
## 2       138  林卓廷  LAM CHEUK-TING   MB     LCT Cheuk-ting      LAM
## 3       148  許智峯    HUI CHI-FUNG   MB     HCF   Chi-fung      HUI
## 4       115  張超雄 FERNANDO CHEUNG   MB     CCH  Chiu-hung   CHEUNG
## 5        99  胡志偉      WU CHI-WAI   MB     WCW    Chi-wai       WU
## 6       141  邵家臻    SHIU KA-CHUN   MB     SKC    Ka-chun     SHIU
## 7       109  梁繼昌   KENNETH LEUNG   MB      KL Kai-cheong    LEUNG

To find out the voting results of the motion:

v <- voting_results(from = w$MeetingDate[1], to = w$MeetingDate[1], section_code = "mbm")
v[v$Subject == "Not forgetting the 4 June incident", ]
##           MeetingDate                            Subject VoteResult SectionCode
## 3 2018-05-23 00:00:00 Not forgetting the 4 June incident  Negatived         mbm
##   RundownID HansardID
## 3    828826      2451
##                                                                                                 HansardFileURL
## 3 https://www.legco.gov.hk/yr17-18/english/counmtg/hansard/cm20180523-translate-e.pdf#nameddest=EV_VOTED_00349

It is possible to fetch the detailed voting record of each member on this motion. To get a list of members who voted yes:

v <- voting_record(from = w$MeetingDate[1], to = w$MeetingDate[1])
v[v$Vote == "Yes", 32:33]
##    NameCh             NameEn
## 2  涂謹申           James TO
## 3  梁耀忠    LEUNG Yiu-chung
## 6  李國麟    Prof Joseph LEE
## 16 毛孟靜         Claudia MO
## 20 胡志偉         WU Chi-wai
## 23 莫乃光  Charles Peter MOK
## 24 陳志全     CHAN Chi-chuen
## 27 梁繼昌      Kenneth LEUNG
## 29 郭家麒      Dr KWOK Ka-ki
## 31 郭榮鏗        Dennis KWOK
## 33 張超雄 Dr Fernando CHEUNG
## 34 黃碧雲     Dr Helena WONG
## 35 葉建源        IP Kin-yuen
## 42 楊岳橋        Alvin YEUNG
## 43 尹兆堅         Andrew WAN
## 44 朱凱廸       CHU Hoi-dick
## 48 林卓廷     LAM Cheuk-ting
## 51 邵家臻       SHIU Ka-chun
## 56 陳淑莊         Tanya CHAN
## 58 許智峯       HUI Chi-fung
## 63 鄺俊宇      KWONG Chun-yu
## 64 譚文豪         Jeremy TAM
## 65 范國威           Gary FAN
## 66 區諾軒         AU Nok-hin

To check the attendance of this meeting:

# Find out MeetID of the Council meeting on May 23, 2018
meeting(from = w$MeetingDate[1], to = w$MeetingDate[1])
##   SlotID MeetID
## 1 174096 131473
## 2 169121 126590
## 3 172136 129529
## 4 169842 127310
## 5 174121 131498
##                                                                                                             SubjectEng
## 1                                            Meeting of Bills Committee on Inland Revenue (Amendment)(No. 6) Bill 2017
## 2 Council meeting (Regular meeting)\n(or to be held immediately after the meeting for Chief Executive’s Question Time)
## 3                                                                Council meeting (The Chief Executive's Question Time)
## 4                                                                                 Meeting of Public Works Subcommittee
## 5                      Meeting of Subcommittee on Medical Council (Election and Appointment of Lay Members) Regulation
##                                                    SubjectChi
## 1               《2017年稅務(修訂)(第6號)條例草案》委員會會議
## 2 立法會會議 (例行會議)\n(或緊接行政長官質詢時間的會議後開始)
## 3                               立法會會議 (行政長官質詢時間)
## 4                                          工務小組委員會會議
## 5        《醫務委員會(選舉和委任業外委員)規例》小組委員會會議
##         StartDateTime MeetingTypeEng MeetingTypeChi VenueCode      VenueNameEng
## 1 2018-05-23 08:30:00           Open       公開會議      Rm 3 Conference Room 3
## 2 2018-05-23 11:30:00           Open       公開會議   Chamber           Chamber
## 3 2018-05-23 11:00:00           Open       公開會議   Chamber           Chamber
## 4 2018-05-23 08:30:00           Open       公開會議      Rm 1 Conference Room 1
## 5 2018-05-23 08:30:00           Open       公開會議      Rm 2 Conference Room 2
##   VenueNameChi TermID
## 1      會議室3      5
## 2       會議廳      5
## 3       會議廳      5
## 4      會議室1      5
## 5      會議室2      5
##                                                                      AgendaUrlEng
## 1         http://www.legco.gov.hk/yr17-18/english/bc/bc02/agenda/bc0220180523.htm
## 2           http://www.legco.gov.hk/yr17-18/english/counmtg/agenda/cm20180523.htm
## 3          http://www.legco.gov.hk/yr17-18/english/counmtg/agenda/cm20180523q.htm
## 4         http://www.legco.gov.hk/yr17-18/english/fc/pwsc/agenda/pwsc20180523.htm
## 5 http://www.legco.gov.hk/yr17-18/english/hc/sub_leg/sc58/agenda/sc5820180523.htm
##                                                                      AgendaUrlChi
## 1         http://www.legco.gov.hk/yr17-18/chinese/bc/bc02/agenda/bc0220180523.htm
## 2           http://www.legco.gov.hk/yr17-18/chinese/counmtg/agenda/cm20180523.htm
## 3          http://www.legco.gov.hk/yr17-18/chinese/counmtg/agenda/cm20180523q.htm
## 4         http://www.legco.gov.hk/yr17-18/chinese/fc/pwsc/agenda/pwsc20180523.htm
## 5 http://www.legco.gov.hk/yr17-18/chinese/hc/sub_leg/sc58/agenda/sc5820180523.htm
z <- attendance(meet_id = 126590)
# Show members who were present
z[z$PresentAbsent == "Present", 7:9] 
##                         MemberNameEnglish MemberNameChinese PresentAbsent
## 1  Hon Andrew LEUNG Kwan-yuen (President) 梁君彥議員 (主席)       Present
## 2                    Hon James TO Kun-sun        涂謹申議員       Present
## 3                     Hon LEUNG Yiu-chung        梁耀忠議員       Present
## 4                Hon Abraham SHEK Lai-him        石禮謙議員       Present
## 5                 Hon Tommy CHEUNG Yu-yan        張宇人議員       Present
## 6            Prof Hon Joseph LEE Kok-long        李國麟議員       Present
## 7                Hon Jeffrey LAM Kin-fung        林健鋒議員       Present
## 8                     Hon WONG Ting-kwong        黃定光議員       Present
## 9                 Hon Starry LEE Wai-king        李慧琼議員       Present
## 10                       Hon CHAN Hak-kan        陳克勤議員       Present
## 11                       Hon CHAN Kin-por        陳健波議員       Present
## 12         Dr Hon Priscilla LEUNG Mei-fun        梁美芬議員       Present
## 13                      Hon WONG Kwok-kin        黃國健議員       Present
## 14          Hon Mrs Regina IP LAU Suk-yee      葉劉淑儀議員       Present
## 15                  Hon Paul TSE Wai-chun        謝偉俊議員       Present
## 16                         Hon Claudia MO        毛孟靜議員       Present
## 17               Hon Michael TIEN Puk-sun        田北辰議員       Present
## 18                 Hon Steven HO Chun-yin        何俊賢議員       Present
## 19              Hon Frankie YICK Chi-ming        易志明議員       Present
## 20                         Hon WU Chi-wai        胡志偉議員       Present
## 21                        Hon YIU Si-wing        姚思榮議員       Present
## 22                       Hon MA Fung-kwok        馬逢國議員       Present
## 23                  Hon Charles Peter MOK        莫乃光議員       Present
## 24                     Hon CHAN Chi-chuen        陳志全議員       Present
## 25                       Hon CHAN Han-pan        陳恒鑌議員       Present
## 26                   Hon LEUNG Che-cheung        梁志祥議員       Present
## 27                      Hon Kenneth LEUNG        梁繼昌議員       Present
## 28                 Hon Alice MAK Mei-kuen        麥美娟議員       Present
## 29                      Dr Hon KWOK Ka-ki        郭家麒議員       Present
## 30                     Hon KWOK Wai-keung        郭偉强議員       Present
## 31              Hon Dennis KWOK Wing-hang        郭榮鏗議員       Present
## 32        Hon Christopher CHEUNG Wah-fung        張華峰議員       Present
## 33       Dr Hon Fernando CHEUNG Chiu-hung        張超雄議員       Present
## 34             Dr Hon Helena WONG Pik-wan        黃碧雲議員       Present
## 35                        Hon IP Kin-yuen        葉建源議員       Present
## 36                     Hon Elizabeth QUAT        葛珮帆議員       Present
## 37            Hon Martin LIAO Cheung-kong        廖長江議員       Present
## 38                      Hon POON Siu-ping        潘兆平議員       Present
## 39                  Dr Hon CHIANG Lai-wan        蔣麗芸議員       Present
## 40                  Ir Dr Hon LO Wai-kwok        盧偉國議員       Present
## 41                     Hon CHUNG Kwok-pan        鍾國斌議員       Present
## 42                        Hon Alvin YEUNG        楊岳橋議員       Present
## 43                 Hon Andrew WAN Siu-kin        尹兆堅議員       Present
## 44                       Hon CHU Hoi-dick        朱凱廸議員       Present
## 45                   Hon Jimmy NG Wing-ka        吳永嘉議員       Present
## 46              Dr Hon Junius HO Kwan-yiu        何君堯議員       Present
## 47                        Hon HO Kai-ming        何啟明議員       Present
## 48                     Hon LAM Cheuk-ting        林卓廷議員       Present
## 49                Hon Holden CHOW Ho-ding        周浩鼎議員       Present
## 50                        Hon SHIU Ka-fai        邵家輝議員       Present
## 51                       Hon SHIU Ka-chun        邵家臻議員       Present
## 52              Hon Wilson OR Chong-shing        柯創盛議員       Present
## 53                       Hon YUNG Hoi-yan        容海恩議員       Present
## 54                     Dr Hon Pierre CHAN        陳沛然議員       Present
## 55                     Hon CHAN Chun-ying        陳振英議員       Present
## 56                         Hon Tanya CHAN        陳淑莊議員       Present
## 57                   Hon CHEUNG Kwok-kwan        張國鈞議員       Present
## 58                       Hon HUI Chi-fung        許智峯議員       Present
## 59                     Hon LUK Chung-hung        陸頌雄議員       Present
## 60                       Hon LAU Kwok-fan        劉國勳議員       Present
## 61               Hon Kenneth LAU Ip-keung        劉業強議員       Present
## 62                 Dr Hon CHENG Chung-tai        鄭松泰議員       Present
## 63                      Hon KWONG Chun-yu        鄺俊宇議員       Present
## 64                  Hon Jeremy TAM Man-ho        譚文豪議員       Present
## 65            Hon Vincent CHENG Wing-shun        鄭泳舜議員       Present
## 66                 Hon Tony TSE Wai-chuen        謝偉銓議員       Present